名称:基于FPGA的数字密码锁设计Verilog代码Quartus? EPM240-CPLD开发板
软件:Quartus
语言:Verilog
代码功能:
设计一个数字密码锁,用户可输入4位数密码(用4个按键分别代表4个不同的数字),连续输入3次不正确则报警。开锁密码预先设定。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在EPM240-CPLD开发板验证,EPM240-CPLD开发板如下,其他开发板可以修改管脚适配:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
部分代码展示:
module?mimasuo( input?clk,//时钟 input?reset,//复位,按下低电平 input?key_0_in,//数字按键0~3 input?key_1_in,//数字按键0~3 input?key_2_in,//数字按键0~3 input?key_3_in,//数字按键0~3 input?confirm_key,//确认按键,代表密码输入完成 output?led,//显示密码正确与否 output?bell,//低电平响 //输入的密码在8?array?7segment中显示,段选位选低电平亮 output?[7:0]?seg_select,//数码管位选 output?[3:0]?bit_select//数码管段选 ); wire?key_0; wire?key_1; wire?key_2; wire?key_3; wire?confirm; wire?pass_or_not;//1表示正确,0表示错误 wire?[15:0]?password; assign?led=~pass_or_not;//led低电平亮 //输入按键消抖 key_jitter?i0_key_jitter( .?clkin(clk),????? .?key_in(key_0_in),//输入 .?key_negedge(key_0)//消抖后按键 ); key_jitter?i1_key_jitter( .?clkin(clk),????? .?key_in(key_1_in),//输入 .?key_negedge(key_1)//消抖后按键 ); key_jitter?i2_key_jitter( .?clkin(clk),????? .?key_in(key_2_in),//输入 .?key_negedge(key_2)//消抖后按键 ); key_jitter?i3_key_jitter( .?clkin(clk),????? .?key_in(key_3_in),//输入 .?key_negedge(key_3)//消抖后按键 ); key_jitter?i4_key_jitter( .?clkin(clk),????? .?key_in(confirm_key),//输入 .?key_negedge(confirm)//消抖后按键 ); //密码输入及判断模块 mima_input?i_mima_input( .?clk(clk), .?key_0(key_0), .?key_1(key_1), .?key_2(key_2), .?key_3(key_3), .?bell(bell), .?confirm(confirm),//代表密码输入完成 .?reset(reset),//复位 .?pass_or_not(pass_or_not),//1表示正确,0表示错误 .?password(password) ); display?i_display?( .?clk(clk), .?password(password), .?bit_select(bit_select),//数码管位选 .?seg_select(seg_select)//数码管段选 ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=684
阅读全文
502