• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

4位密码锁控制basys2开发板verilog密码修改四位密码锁

05/23 13:32
1023
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-231106230JG19.doc

共1个文件

名称:4位密码锁控制basys2开发板verilog密码修改四位密码锁(代码在文末下载)

软件:ISE

语言:Verilog

代码功能:

4位密码锁控制器

1)数码输入:每输入一组4位二进制数,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。

2)数码清除:按下此键可清除前面输入值。

3)密码更改:按下此键时会将目前的数字设定成新的密码。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在Basys2开发板验证,开发板如下,其他开发板可以修改管脚适配:

basys2.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 管脚约束

4. 程序编译

5. RTL图

整体框图

模块连接图

单模块

6. Testbench

7. 仿真图

密码输入方式:先将key_0、key_1、key_2、key_3拨到对应电平代表的二进制数,再按下key_en键输入到数码管显示。

testbench仿真激励文件功能:密码锁上电默认密码1234,首先模拟输入数字3,然后通过清除按键清除3,再依次输入1234,按确认键(confirm)开锁,此时可以看到led_open拉高,表示开锁,然后按下修改按键(modify),再依次输入3723将密码修改为3723。再按关锁键(lock_up)关锁。最后再依次输入3723将密码锁打开。

7.1 整体仿真图

7.2 mima_input模块

7.3 mimasuo_ctrl模块

7.4 reset_password模块

7.5 display模块

部分代码展示:

//1)数码输入:每输入一组4位二进制数,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。
//2)数码清除:按下此键可清除前面输入值。
//3)密码更改:按下此键时会将目前的数字设定成新的密码。
module mimasuo(
input clk,//50M时钟
//每输入一组4位二进制数
input key_0,
input key_1,
input key_2,
input key_3,
input key_en,//将4位二进制数输入
input reset_key,//密码清除
input confirm,//确认
input modify,//修改密码
input lock_up,//关锁
output led_open,//开锁指示灯
output [3:0] smg_wei,//位选,高电平亮
output [7:0] smg_duan//段选,高电平亮
);
wire [2:0] current_state;
wire [15:0] password;
wire [15:0] correct_password;
//密码输入模块
mima_input i_mima_input(
. clk(clk),
//每输入一组4位二进制数
. key_0(key_0),
. key_1(key_1),
. key_2(key_2),
. key_3(key_3),
. key_en(key_en),//将4位二进制数输入
. reset_key(reset_key),//密码清除
. current_state(current_state),//状态机状态
. password(password)//输入的密码
);
//密码锁控制模块
mimasuo_ctrl i_mimasuo_ctrl(
. clk(clk),
. password(password),//输入的密码
. correct_password(correct_password),//正确的密码
. confirm(confirm),//确认
. modify(modify),//修改密码
. lock_up(lock_up),//关锁
. led_open(led_open),//开锁指示灯
. current_state(current_state)//状态机状态
);
//显示模块
display i_display
(
. clk(clk),
. password(password),//输入的密码
. smg_wei(smg_wei),//位选,高电平亮
. smg_duan(smg_duan)//段选,高电平亮
);
//密码修改模块
reset_password i_reset_password(
. clk(clk),
. password(password),//输入的密码
. correct_password(correct_password),//正确的密码
. confirm(confirm),//确认
. current_state(current_state)//状态机状态
);
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=268

  • 1-231106230JG19.doc
    下载

相关推荐