8位数字密码锁设计Verilog代码VIVADO仿真

名称:8位数字密码锁设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

1、储存8位数字密码,输入正确密码开锁,实现开锁。

2、第一次输入密码错误后可输入第二次,两次错误之后密码锁警报并锁住,必须系统操作员解除(复位)

3、密码输入成功后可按下改密键修改密码。


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


设计文档:

设计文档.doc

1. 工程文件


2. 程序文件


3. 程序编译


4. RTL图


5. Testbench

Testbench模拟按键输入过程,默认密码为12345678:

先输入12345678将密码锁打开,再按下修改按键,修改密码为87654321,然后上锁,再次输入12345678,密码错误,再次输入12348765,密码再次错误,此时密码锁被锁住,需要按下复位按键,然后再输入新密码87654321,将锁打开

6. 仿真图

整体仿真图



按键检测模块


密码输入模块

密码控制模块



显示模块


报警模块


修改密码模块




部分代码展示:

//密码锁控制模块
module mimasuo_ctrl(
input clk,
input [31:0] password,//输入的密码
input [31:0] correct_password,//正确的密码
input confirm,//确认
input reset,//清楚报警
input modify,//修改密码
input lock_up,//上锁
output led_open,//开锁指示灯
output [2:0] current_state//当前状态
);
//定义6个状态
parameter s_lock=3'd0;
parameter s_compare=3'd1;
parameter s_pass=3'd2;
parameter s_error=3'd3;
parameter s_modify=3'd4;
parameter s_alarm=3'd5;
reg [2:0] state=3'd0;
assign current_state=state;
reg [2:0] error_cnt=3'd0;
//状态机控制
always@(posedge clk)
case(state)
s_lock://锁定状态
if(confirm==1)
state<=s_compare;
else
state<=s_lock;
s_compare://比对密码状态
if(correct_password==password)
state<=s_pass;
else
state<=s_error;
s_pass://密码正确
if(modify==1)
state<=s_modify;//修改密码
else if(lock_up==1)
   state<=s_lock;//上锁
else
state<=s_pass;
s_error://密码错误
if(error_cnt>=3'd1)
state<=s_alarm;//错误2次报警
else
state<=s_lock;//继续锁定
s_alarm://报警
if(reset==1)//清除报警
state<=s_lock;//继续锁定
else
state<=s_alarm;//报警
s_modify://修改密码
if(confirm==1)
state<=s_pass;//返回开锁状态
else
state<=s_modify;
default:state<=s_lock;
endcase
always@(posedge clk)
if(reset==1)
error_cnt<=3'd0;
else
if(state==s_error)
error_cnt<=error_cnt+3'd1;//输入错误密码次数计数
reg led_open_buf=0;
always@(posedge clk)
if(state==s_modify || state==s_pass)//pass 和 modify状态下都是开锁状态
led_open_buf<=1;//开锁
else
led_open_buf<=0;//关锁
assign led_open=led_open_buf;
endmodule

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 8位数字密码锁设计Verilog代码VIVADO仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员