基于FPGA的3位十进制密码锁VHDL代码Quartus仿真
名称:基于FPGA的3位十进制密码锁VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
借助EDA工具和设计方法,学习硬件描述语言VHDL用编程的方法来设计电路,在QUARTUSⅡ软件环境中,进行电路的测试和仿真分析。
系统功能要求:采用3位十进制数字作为内置密码,修改密码必须重置逻辑;系统通电后必须关上密码锁门,如果输入密码正确,密码器将启动开启装置,用绿色LED灯表示;如果密码错误,则红色LED灯报警;如果按错号码,可在开锁前按启动键消除输入而重新输入密码;等事务处理完毕后,按上锁键使系统进入安锁等待状态。系统分为控制器和受控电路两部分,受控电路由消抖电路、编码器、比较器、数据选择器(密码预置)、触发器等模块组成
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件

2. 程序文件


3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图
整体仿真图


显示模块

密码输入模块

密码锁控制模块

密码修改模块

部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; --顶层模块 ENTITY mimasuo IS PORT ( clk_in : IN STD_LOGIC;--50MHz key_0 : IN STD_LOGIC;--按键输入0 key_1 : IN STD_LOGIC;--按键输入1 key_2 : IN STD_LOGIC;--按键输入2 key_3 : IN STD_LOGIC;--按键输入3 key_4 : IN STD_LOGIC;--按键输入4 key_5 : IN STD_LOGIC;--按键输入5 key_6 : IN STD_LOGIC;--按键输入6 key_7 : IN STD_LOGIC;--按键输入7 key_8 : IN STD_LOGIC;--按键输入8 key_9 : IN STD_LOGIC;--按键输入9 confirm : IN STD_LOGIC;--确认键(开锁) modify : IN STD_LOGIC;--修改键(更改) lock_up : IN STD_LOGIC;--锁住键(上锁) delect : IN STD_LOGIC;--删除键(清除) led_open : OUT STD_LOGIC;--绿灯,开锁指示信号,高电平表示开锁,低电平表示锁住 led_red : OUT STD_LOGIC;--红灯 HEX0 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX1 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)--数码管显示密码 ); END mimasuo; ARCHITECTURE trans OF mimasuo IS --分频模块 COMPONENT CLOCK IS-- Divide 50MHz to 100Hz --GENERIC(D : INTEGER := 50);--仿真时改小为50加快仿真速度,实际上板验证时改为500000 GENERIC(D : INTEGER := 500000);--仿真时改小为50加快仿真速度,实际上板验证时改为500000 PORT(CLK: IN STD_LOGIC; DAV: OUT STD_LOGIC); END COMPONENT; --例化重置模块 COMPONENT reset_password IS PORT ( clk : IN STD_LOGIC; password : IN STD_LOGIC_VECTOR(11 DOWNTO 0); correct_password : OUT STD_LOGIC_VECTOR(11 DOWNTO 0); confirm : IN STD_LOGIC; current_state : IN STD_LOGIC_VECTOR(2 DOWNTO 0) ); END COMPONENT; --例化显示模块 COMPONENT display IS PORT ( clk : IN STD_LOGIC; password : IN STD_LOGIC_VECTOR(11 DOWNTO 0);--当前输入密码 HEX0 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX1 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)--数码管显示密码 ); END COMPONENT; --例化密码输入模块 COMPONENT mima_input IS PORT ( clk : IN STD_LOGIC; key_0 : IN STD_LOGIC; key_1 : IN STD_LOGIC; key_2 : IN STD_LOGIC; key_3 : IN STD_LOGIC; key_4 : IN STD_LOGIC; key_5 : IN STD_LOGIC; key_6 : IN STD_LOGIC; key_7 : IN STD_LOGIC; key_8 : IN STD_LOGIC; key_9 : IN STD_LOGIC; delect : IN STD_LOGIC;--删除键 current_state : IN STD_LOGIC_VECTOR(2 DOWNTO 0); password : OUT STD_LOGIC_VECTOR(11 DOWNTO 0) ); END COMPONENT; --例化密码锁控制模块 COMPONENT mimasuo_ctrl IS PORT ( clk : IN STD_LOGIC; password : IN STD_LOGIC_VECTOR(11 DOWNTO 0); correct_password : IN STD_LOGIC_VECTOR(11 DOWNTO 0); confirm : IN STD_LOGIC; modify : IN STD_LOGIC; lock_up : IN STD_LOGIC; led_open : OUT STD_LOGIC; current_state : OUT STD_LOGIC_VECTOR(2 DOWNTO 0) ); END COMPONENT;
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于FPGA的3位十进制密码锁VHDL代码Quartus仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于FPGA的3位十进制密码锁VHDL代码Quartus仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm