• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于FPGA的3位十进制密码锁VHDL代码Quartus仿真

07/19 08:06
341
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240304152346213.doc

共1个文件

名称:基于FPGA的3位十进制密码锁VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

借助EDA工具和设计方法,学习硬件描述语言VHDL用编程的方法来设计电路,在QUARTUSⅡ软件环境中,进行电路的测试和仿真分析。

系统功能要求:

1.采用3位十进制数字作为内置密码,修改密码必须重置逻辑;

2.系统通电后必须关上密码锁门,如果输入密码正确,密码器将启动开启装置,用绿色LED灯表示;

3.如果密码错误,则红色LED灯报警;

4.如果按错号码,可在开锁前按启动键消除输入而重新输入密码;

5.等事务处理完毕后,按上锁键使系统进入安锁等待状态。

6.系统分为控制器和受控电路两部分,受控电路由消抖电路、编码器比较器数据选择器(密码预置)、触发器等模块组成。

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;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=685

  • 2-240304152346213.doc
    下载

相关推荐