名稱:數(shù)字密碼啟動器設(shè)計Verilog代碼VIVADO PYNQ開發(fā)板
軟件:VIVADO
語言:Verilog
代碼功能:
數(shù)字密碼啟動器
數(shù)字密碼啟動器具體設(shè)計要求:
1、數(shù)子密碼啟動器采用4個十進制數(shù),輸入密碼時通過數(shù)碼管顯示當(dāng)前輸入的數(shù)字。
2、當(dāng)4位密碼輸入正確后(初始密碼為可自定義4位十進制數(shù),報告中請寫明),系統(tǒng)可以正確啟動裝置;當(dāng)密碼輸入錯誤(多一位、少一位或錯誤)時,系統(tǒng)給岀警報。
3、系統(tǒng)復(fù)位后處于等待狀態(tài),按下 Ready鍵后,準(zhǔn)備就緒,可以輸入密碼。
4、密碼輸入正確后,可以啟動。
5、密碼輸入錯誤時,系統(tǒng)給岀警報,紅燈閃爍,蜂鳴器響,此時 Ready和 Wait t無效,必須由安保人員重新設(shè)置到等待狀態(tài)。
6、啟動事件發(fā)生后,系統(tǒng)應(yīng)重新回到等待狀態(tài)。
7、十個數(shù)字鍵作為密碼輸入。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在PYNQ開發(fā)板驗證,PYNQ開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1、工程文件
2、程序文件
3、程序編譯
4、RTL圖
5、管腳分配
部分代碼展示:
//數(shù)字密碼啟動器具體設(shè)計要求: //1、 數(shù)子密碼啟動器采用 4 個十進制數(shù),輸入密碼時通過數(shù)碼管顯示當(dāng)前輸入的數(shù)字 //2、 當(dāng) 4 位密碼輸入正確后(初始密碼為可自定義 4 位十進制數(shù),報告中請寫明),系統(tǒng)可 //以正確啟動啟動裝置;當(dāng)密碼輸入錯誤(多一位、少一位或錯誤)時,系統(tǒng)給出警報 //3、 系統(tǒng)復(fù)位后處于等待狀態(tài),按下 Ready 鍵后,準(zhǔn)備就緒,可以輸入密碼。 //4、 密碼輸入正確后,可以啟動 //5、 密碼輸入錯誤時,系統(tǒng)給出警報,紅燈閃爍,蜂鳴器響,此時 Ready 和 Wait_t 無效,必 //須由安保人員重新設(shè)置到等待狀態(tài) //6、 啟動事件發(fā)生后,系統(tǒng)應(yīng)重新回到等待狀態(tài) //7、 十個數(shù)字鍵作為密碼輸入 module bomb_control( input Clk,//標(biāo)準(zhǔn)時鐘信號 500Hz input Rst,//核心板撥碼SW0,復(fù)位后出于等待狀態(tài),低有效 input Wait_t,//核心板撥碼SW1,進入密碼輸入狀態(tài)時,在密碼輸入完畢確認(rèn)前,可通過 Wait_t 回到等待狀態(tài),密碼確認(rèn)后,該按鍵無效 input Sure,//撥碼擴展板撥碼SW6。密碼輸入完畢,確認(rèn) input Setup,//按鍵btn0,錯誤重建信號,密碼輸入錯誤時,系統(tǒng)給出警報,紅燈閃爍,蜂鳴器響,此時 Ready 和 Wait_t 無效,必須由安保人員重新設(shè)置到等待狀態(tài) input Ready,//按鍵btn1,就緒后可輸入密碼 input Fire,//按鍵btn2,且僅當(dāng)密碼輸入正確時有效,其余情況按下該按鍵進入警報 input Confirem,//btn3,確認(rèn)按鍵,輸入4位撥碼對應(yīng)的值 input [3:0] key_value,//密碼輸入按鍵 //input A0,//密碼輸入按鍵 //input A1,//密碼輸入按鍵 //input A2,//密碼輸入按鍵 //input A3,//密碼輸入按鍵 //input A4,//密碼輸入按鍵 //input A5,//密碼輸入按鍵 //input A6,//密碼輸入按鍵 //input A7,//密碼輸入按鍵 //input A8,//密碼輸入按鍵 //input A9,//密碼輸入按鍵 output [3:0] state, output LT,//led0,密碼輸入正確,綠燈亮,高有效 output BT,//led1,啟動成功,黃燈亮,高有效 output RT,//led2,密碼輸入錯誤,紅燈以 1hz 頻率閃爍 output LB,//led3,密碼錯誤,蜂鳴器響 output [15:0] M_disp//當(dāng)前輸入數(shù)字 ); parameter mima=16'h5643;//定義初始密碼為5643 //定義4個寄存器儲存輸入密碼 reg [15:0] number_mima=16'd0;