名称:电子密码锁设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
电子密码锁
设计要求:
设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;
在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;
从第一个按钮触动后的5秒内若未将锁打开则电路自动复位并进入自锁状态,使之无法再打开,并发出报警信号。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testebnch
6. 仿真图
整体仿真图
默认密码3210
先输入453210开锁,关锁后输入5678,超时5秒报警
按键检测模块
检测按键按下,产生下降沿信号
密码输入模块
控制模块
报警模块
根据状态输出报警信号
显示模块
部分代码展示:
//?$Header:?/devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v?1.14?2010/10/28?20:44:00?fphillip?Exp?$ `ifndef?GLBL `define?GLBL `timescale??1?ps?/?1?ps module?glbl?(); ????parameter?ROC_WIDTH?=?100000; ????parameter?TOC_WIDTH?=?0; //--------???STARTUP?Globals?-------------- ????wire?GSR; ????wire?GTS; ????wire?GWE; ????wire?PRLD; ????tri1?p_up_tmp; ????tri?(weak1,?strong0)?PLL_LOCKG?=?p_up_tmp; ????wire?PROGB_GLBL; ????wire?CCLKO_GLBL; ????wire?FCSBO_GLBL; ????wire?[3:0]?DO_GLBL; ????wire?[3:0]?DI_GLBL; ??? ????reg?GSR_int; ????reg?GTS_int; ????reg?PRLD_int; //--------???JTAG?Globals?-------------- ????wire?JTAG_TDO_GLBL; ????wire?JTAG_TCK_GLBL; ????wire?JTAG_TDI_GLBL; ????wire?JTAG_TMS_GLBL; ????wire?JTAG_TRST_GLBL; ????reg?JTAG_CAPTURE_GLBL; ????reg?JTAG_RESET_GLBL; ????reg?JTAG_SHIFT_GLBL; ????reg?JTAG_UPDATE_GLBL; ????reg?JTAG_RUNTEST_GLBL; ????reg?JTAG_SEL1_GLBL?=?0; ????reg?JTAG_SEL2_GLBL?=?0?; ????reg?JTAG_SEL3_GLBL?=?0; ????reg?JTAG_SEL4_GLBL?=?0; ????reg?JTAG_USER_TDO1_GLBL?=?1'bz;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=965
474