名称:密码锁设计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
824