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

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

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-231229160450b8.doc

共1個(gè)文件

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

軟件:vivado

語(yǔ)言:Verilog

代碼功能:

數(shù)字密碼鎖:

1、有改密碼功能;

2、密碼錯(cuò)誤三次報(bào)警燈閃爍;

3、通過(guò)按鍵輸入密碼。

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

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

ego1開(kāi)發(fā)板.png

演示視頻:

設(shè)計(jì)文檔:

Testbench

仿真圖

整體仿真

按鍵模塊

密碼輸入模塊

控制模塊

顯示模塊

報(bào)警模塊

修改密碼模塊

部分代碼展示:

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

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

  • 2-231229160450b8.doc
    下載

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!

本站代碼庫(kù)擁有大量 Verilog/VHDL的FPGA代碼資源:hdlcode.com。代碼有詳細(xì)注釋、演示視頻、仿真圖等資料,適合入門(mén)學(xué)習(xí)

微信公眾號(hào)