名称:密码锁设计Verilog代码Quartus? DE2-70开发板
软件:Quartus
语言:Verilog
代码功能:
设计目的:
(1)了解DE2-70开发板的硬件构成;
(2)熟悉开发板可用资源的硬件电路
(3)掌握EDA开发流程;
(4)熟悉 Quartus II开发环境;
(5)掌握 Verilog基本语法;
(6)熟练掌握在 Quartus I环境下进行软件仿真的方法。
设计内容及基本要求:
设计一个电子密码锁,实现设置修改密码和开锁的功能
(1)基本功能
①可设置并保存四位密码数字,并在数码管中显示111
②先按开锁键,之后开始输入密码,并显示;若三次输入错误,则锁定,需要按解锁键,并输入解锁密码(固定为0)后再次尝试;
③密码输入错误和密码输λ正确均有相应的提醒信息(如LED亮或蜂鸣器发声等);
④可删除输入的数字,删除的是最后输入的数字。
(2)扩展功能
当前输入的数字在最右侧数码管显示,前面输入的数字自动左移一个数字位置。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-70开发板验证,DE2-70开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?管脚分配
6.?仿真图
密码输入模块仿真
状态机控制模块仿真
数码管显示模块仿真
部分代码展示:
//密码按键输入模块 module?enter_num( input?clk,//时钟 //按键0到9 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?delete,//删除键 input?[2:0]?current_state,//密码锁当前状态 output?reg?[15:0]?secretcode//输入的密码 ); //定义信号 reg?key_0_temp0=0; reg?key_1_temp0=0; reg?key_2_temp0=0; reg?key_3_temp0=0; reg?key_4_temp0=0; reg?key_5_temp0=0; reg?key_6_temp0=0; reg?key_7_temp0=0; reg?key_8_temp0=0; reg?key_9_temp0=0; reg?key_0_temp1=0; reg?key_1_temp1=0; reg?key_2_temp1=0; reg?key_3_temp1=0; reg?key_4_temp1=0; reg?key_5_temp1=0; reg?key_6_temp1=0; reg?key_7_temp1=0; reg?key_8_temp1=0; reg?key_9_temp1=0; reg?delete_temp0=0; reg?delete_temp1=0; wire?key_0_en; wire?key_1_en; wire?key_2_en; wire?key_3_en; wire?key_4_en; wire?key_5_en; wire?key_6_en; wire?key_7_en; wire?key_8_en; wire?key_9_en; wire?delete_en;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1200