电子密码锁设计Verilog代码Quartus仿真
名称:电子密码锁设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
I、题目:电子密码锁设计
II、课题任务
用VerilogHDL语言编写程序,设计一个电子密码锁控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作。密码锁控制电路中存储一个可修改的6位代码,当输入的代码等于存储的代码时,开锁。从第一位代码输入后5秒内未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并发出持续20秒的报警信号。允许有三次输错的机会,三次输入错误,电路自动复位并进入自锁状态,无法再打开。
III、具体设计内容:
1、设计任务
密码锁整体结构如图1所示,其中FPGA编程是本课程设计任务,通过按键产生控制信号输入给FPGA芯片,FPGA对按键信号进行处理,并输出信号给执行机构对密码锁进行操作。FPGA的输入时钟频率为1MHz。

图1 密码锁整体系统
开始开锁信号为外部输入信号,当该信号为高电平时,开始输入密码,密码为按键形式,每次按键会先发送一个高脉冲信号,即按键中断信号,然后将该按键对应的数字送出,具体时序如图2所示,FPGA接收到开始开锁信号后开始检测按键中断信号,如果按键中断有上跳沿跳变,便读取4位键值数据,然后与存储的代码匹配,如果匹配成功则输出4位二进制数0001,如果匹配不成功,需要重新输入,则输出二进制数0010,如果要复位自锁输出0011,同时将警报输出信号置高电平,高电平持续20秒时间再置成低电平,不进行任何操作时输出0000,电子密码锁按键时序如下图2所示:

图2 电子密码锁按键信号时序图
2、工作内容
(1)软件安装
从网络上下载、安装EDA开发软件,Altera的QuartusII或Xilinx的Vivado,
课程设计报告简要描述软件安装过程。
(2)总体方案设计
总体方案设计包括设计原理,设计思路,设计流程(要画流程图),划分系统模块,明确模块输入和输出,以及模块间接口和数据传输。
(3)密码锁软件编写
◆ 编写各个模块Verilog程序并调试
◆ 整合各个模块,并进行调试
在课程设计报告中要详细描述各模块的功能、设计,与其他模块的关系。(注意:不要在设计报告正文贴代码)。
(4)仿真软件编写和系统测试
◆ 编写仿真程序,产生测试数据;
◆ 例化仿真程序和密码锁程序,进行仿真测试验证。
课程设计报告中要详细描述仿真过程,包括仿真时间和该时间产生的仿真输入数据和输出结果,要有仿真图形,仿真图中的变量含义要有说明,仿真图要清晰,准确。
3、要求与注意事项
(1)代码中每个功能模块要有注释,描述代码功能和端口定义。
(2)每个仿真波形要叙述仿真过程,包括波形中的变量含义,设置的变量值和设置的时间等。
(3)仿真图要清晰,要表达正确的仿真意图。
(4)课程设计报告要严格按标准格式书写,有封面(标准样式),目录等;
(5)课程设计报告包括设计任务,方案设计,功能模块设计与仿真,系统仿真,要有设计流程图。
(6)课程设计报告正文不能粘贴源代码,源码以附件的形式放在课程设计报告后面,分密码锁系统设计源码和仿真源码。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1、工程文件

2、程序文件


3、程序编译

4、RTL图

5、Testbench

6、仿真图
整体仿真图



分频模块


按键上升沿检测模块


控制模块


上图前半段为输入正确密码654321,开锁,输出0001;后半段为连续输入错误3次(error_cnt加到3),alearm信号报警20秒

上图为连续输入错误3次(error_cnt加到3),alearm信号报警20秒

上图为开始输入密码后5秒内未开锁,输出0011,报警20秒
部分代码展示:
//数字密码锁 module mimasuo( input clk,//时钟 input RST,//复位 input SW_0,//开始开锁信号,高电平 input [3:0] key_num,//4位值(键值) input key1,//确认按键中断 output alarm,//报警 output [3:0] lock_signals//4位执行机构信号--匹配成功则输出4位二进制数0001,如果匹配不成功,需要重新输入,则输出二进制数0010,如果要复位自锁输出0011 ); wire key1_posedge; wire second_en;//秒计时信号脉冲 //按键上升沿检测模块 key_posedge i1_key_posedge( . clk(clk),//时钟 . key_in(key1),//输入按键 . key_posedge(key1_posedge) //按键上升沿 ); //分频到1Hz信号,用于秒倒计时 div_1Hz i_div_1Hz( . clk(clk),//1KHz . second_en(second_en)//秒信号 );
代码文件(付费下载):
![]()
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 电子密码锁设计Verilog代码Quartus仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm