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

五位二進(jìn)制簡(jiǎn)易密碼鎖verilog代碼ego1開發(fā)板vivado軟件

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

1-231124214004X9.doc

共1個(gè)文件

名稱:五位二進(jìn)制簡(jiǎn)易密碼鎖verilog代碼ego1開發(fā)板vivado軟件(代碼在文末下載)

軟件:VIVADO

語(yǔ)言:Verilog

代碼功能:

1、設(shè)計(jì)五位二進(jìn)制簡(jiǎn)易密碼鎖,密碼用五位二進(jìn)制數(shù)組成;

2、用按鍵預(yù)設(shè)置密碼和改動(dòng)密碼;

3、輸入密碼如果與設(shè)置密碼一致,則用一個(gè)LED燈表示輸入正確,否則用一個(gè)LED燈顯示輸入錯(cuò)誤。

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

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

ego1開發(fā)板.png

演示視頻:

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

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 管腳分配

6. Testbench

7. 仿真圖

整體仿真圖

圖中仿真了原始密碼為11111時(shí)嗎,輸入10111,密碼錯(cuò)誤,然后再次輸入11111,按下確認(rèn)鍵后,密碼鎖打開(LED1亮),次數(shù)按下修改密碼按鍵,輸入10111,將密碼修改為10111,然后關(guān)鎖,再次輸入10111,密碼鎖打開。

按鍵消抖模塊(上升沿檢測(cè))

密碼輸入模塊

圖中仿真了輸入10111,密碼錯(cuò)誤,然后再次輸入11111,輸入10111,將密碼修改為10111,然后關(guān)鎖,再次輸入10111

密碼鎖控制模塊

圖中仿真了原始密碼為11111時(shí),輸入10111,密碼錯(cuò)誤,然后再次輸入11111,按下確認(rèn)鍵后,密碼鎖打開(LED1亮),次數(shù)按下修改密碼按鍵,輸入10111,將密碼修改為10111,然后關(guān)鎖,再次輸入10111,密碼鎖打開。

數(shù)碼管顯示模塊

密碼重置模塊

圖中仿真了原始密碼為11111時(shí),將密碼修改為10111的過(guò)程。

部分代碼展示:

//密碼鎖控制模塊
module?mimasuo_ctrl(
input?clk,
input?[19:0]?password,//輸入的密碼
input?[19:0]?correct_password,//正確的密碼
input?confirm,//確認(rèn)
input?reset,//清楚報(bào)警
input?modify,//修改密碼
input?lock_up,//上鎖
output?led_open,//開鎖指示燈
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ò)誤
state<=s_lock;//繼續(xù)鎖定
s_modify://修改密碼
if(confirm==1)
state<=s_pass;//返回開鎖狀態(tài)
else
state<=s_modify;
default:state<=s_lock;
endcase
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;//關(guān)鎖
assign?led_open=led_open_buf;
endmodule

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

  • 1-231124214004X9.doc
    下載

相關(guān)推薦