• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

數(shù)字密碼鎖Verilog代碼vivado ego1開發(fā)板

06/13 13:28
505
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-231229160450b8.doc

共1個文件

名稱:數(shù)字密碼鎖Verilog代碼vivado? ego1開發(fā)板

軟件:vivado

語言:Verilog

代碼功能:

數(shù)字密碼鎖:

1、有改密碼功能;

2、密碼錯誤三次報警燈閃爍;

3、通過按鍵輸入密碼。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在ego1開發(fā)板驗證,ego1開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

ego1開發(fā)板.png

演示視頻:

設計文檔:

Testbench

仿真圖

整體仿真

按鍵模塊

密碼輸入模塊

控制模塊

顯示模塊

報警模塊

修改密碼模塊

部分代碼展示:

//密碼鎖控制模塊
module?mimasuo_ctrl(
input?clk,
input?[15:0]?password,//輸入的密碼
input?[15:0]?correct_password,//正確的密碼
input?confirm,//確認
input?reset,//清楚報警
input?modify,//修改密碼
input?lock_up,//上鎖
output?led_open,//開鎖指示燈
output?[2:0]?current_state//當前狀態(tài)
);
//定義6個狀態(tài)
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;
//狀態(tài)機控制
always@(posedge?clk)
case(state)
s_lock://鎖定狀態(tài)
if(confirm==1)
state<=s_compare;
else
state<=s_lock;
s_compare://比對密碼狀態(tài)
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'd2)
state<=s_alarm;//錯誤3次報警
else
state<=s_lock;//繼續(xù)鎖定
s_alarm://報警
if(reset==1)//清除報警
state<=s_lock;//繼續(xù)鎖定
else
state<=s_alarm;//報警
s_modify://修改密碼
if(confirm==1)
state<=s_pass;//返回開鎖狀態(tài)
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;//輸入錯誤密碼次數(shù)計數(shù)
reg?led_open_buf=0;
always@(posedge?clk)
if(state==s_modify?||?state==s_pass)//pass?和?modify狀態(tài)下都是開鎖狀態(tài)
led_open_buf<=1;//開鎖
else
led_open_buf<=0;//關鎖
assign?led_open=led_open_buf;
endmodule

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=450

  • 2-231229160450b8.doc
    下載

相關推薦