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

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

软件:ISE

语言:Verilog

代码功能:

4位密码锁控制器

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

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

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

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

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

basys2.png

代码下载:4位密码锁控制basys2开发板verilog密码修改四位密码锁(代码在文末下载)软件:ISE语言:Verilog代码功能:4位密码锁控制器1)数码输入:每输入一组4位二进制数,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。2)数码清除:按下此键可清除前面输入值。3)密码更改:按下此键时会将目前的数字设定成新的密码。FPGA代码Verilog/VHDL名称:4位密码锁控制basys2开发板verilog密码修改四位密码锁(代码在文末下载)软件:ISE语言:Verilog代码功能:4位密码锁控制器1)数码输入:每输入一组4位二进制数,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。2)数码清除:按下此键可清除前面输入值。3)密码更改:按下此键时会将目前的数字设定成新的密码。FPGA代码Verilog/VHDLicon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=268

设计文档:

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值