名称:密码锁设计Verilog代码Quartus? DE10-lite开发板
软件:Quartus
语言:Verilog
代码功能:
一个密码锁设计,能够设置和重置密码,正确/错误输入会有对应的提示,最好能设置输入次数(输入三次就不能输入了 只能重置)。
开发板DE10-LITE
Quartus20.1 verilog
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE10-lite开发板验证,DE10-lite开发板如下,其他开发板可以修改管脚适配:
设计文档:
1. 工程文件
2. 程序文件
3. 管脚分配
4. 程序编译
5. RTL图
6. Testbench
7. 仿真图
仿真图
默认密码1234,下图输入1234后按下确认键后开锁,led_open高电平表示开锁,此时按下modify按键进行密码修改,输入新密码后,按下确认键,将密码修改为2537。
修改完密码按下lock_up键,锁定,此时led_open变为低电平
输入原密码1234无法打开,连续输入三次密码错误后报警,alarm信号拉高
按下reset信号关闭报警,才能再次密码,关闭报警后输入新密码2537,将锁打开。
注:按键按下均为低电平。
部分代码展示:
//密码输入模块 module?mima_input( input?clk, input?key_0, input?key_1, input?key_2, input?key_3, input?key_4, input?key_5, input?key_6, input?key_7, input?key_8, input?key_9, input?[2:0]?current_state,//密码锁当前状态 output?[15:0]?password//输入密码 ); reg?key_0_buf1=0; reg?key_1_buf1=0; reg?key_2_buf1=0; reg?key_3_buf1=0; reg?key_4_buf1=0; reg?key_5_buf1=0; reg?key_6_buf1=0; reg?key_7_buf1=0; reg?key_8_buf1=0; reg?key_9_buf1=0; reg?key_0_buf2=0; reg?key_1_buf2=0; reg?key_2_buf2=0; reg?key_3_buf2=0; reg?key_4_buf2=0; reg?key_5_buf2=0; reg?key_6_buf2=0; reg?key_7_buf2=0; reg?key_8_buf2=0; reg?key_9_buf2=0; wire?key_0_rise; wire?key_1_rise; wire?key_2_rise; wire?key_3_rise; wire?key_4_rise; wire?key_5_rise; wire?key_6_rise; wire?key_7_rise; wire?key_8_rise; wire?key_9_rise; always@(posedge?clk) begin key_0_buf1<=key_0; key_1_buf1<=key_1; key_2_buf1<=key_2; key_3_buf1<=key_3; key_4_buf1<=key_4; key_5_buf1<=key_5; key_6_buf1<=key_6; key_7_buf1<=key_7; key_8_buf1<=key_8; key_9_buf1<=key_9; key_0_buf2<=key_0_buf1; key_1_buf2<=key_1_buf1; key_2_buf2<=key_2_buf1; key_3_buf2<=key_3_buf1; key_4_buf2<=key_4_buf1; key_5_buf2<=key_5_buf1; key_6_buf2<=key_6_buf1; key_7_buf2<=key_7_buf1; key_8_buf2<=key_8_buf1; key_9_buf2<=key_9_buf1; end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1051
381