名稱:Quartus電子密碼鎖Verilog代碼遠程云端平臺
軟件:Quartus
語言:Verilog
代碼功能:
電子密碼鎖:
密碼有四位(為二進制),有個能隨機產生四位二進制數的程序作為密碼,按一個按鍵就可以產生這個隨機密碼,利用另外四個按鍵開鎖,有5次機會,都輸入錯誤后蜂鳴器報警。有五個顯示管,一個顯示剩余輸入密碼的次數,另外四個顯示輸入的密碼。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在遠程云端平臺驗證,遠程云端平臺如下,其他遠程云端平臺可以修改管腳適配:
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. 仿真文件
7. 仿真圖
整體仿真圖
下圖生成的隨機密碼為0111,先后輸入4次密碼,第一次輸入0101,按確認鍵后錯誤,剩余次數變?yōu)?,隨后輸入0010、1010都錯誤,剩余次數也變?yōu)?,最后輸入0111,密碼正確,可輸入密碼次數回到5次。
部分代碼展示:
module?mimasuo( input?clk, input?reset,//復位 input?random_key,//隨機密碼按鍵 input?key_0,//輸入二進制0 input?key_1,//輸入二進制1 input?confirm_key,//確認鍵,輸入完成后按下確認鍵 input?lock_up,//關鎖按鍵 output?[3:0]?correct_password_led,//隨機密碼指示燈 output?led_open,//開鎖指示燈 output?alarm_beep,//報警蜂鳴器 output?[7:0]?segment,//數碼管段選顯示 output?[3:0]?select,?//數碼管位選顯示 output?[7:0]?HEX//數碼管段選顯示 ); wire?[3:0]?correct_password;//隨機密碼 wire?[3:0]?password_in;//顯示輸入密碼 wire?[2:0]?errorcnt;//顯示剩余次數計數 //m序列產生隨機密碼 m_code?i_m_code( .?clk(clk), .?rst(reset), .?random_key(random_key),//隨機密碼按鍵 .?dout(correct_password)//輸出隨機密碼 ????); //控制模塊 mimasuo_ctrl?i_mimasuo_ctrl( .?clk(clk), .?reset(reset),//復位 .?key_0(key_0),//輸入二進制0 .?key_1(key_1),//輸入二進制1 .?confirm_key(confirm_key),//確認鍵,輸入完成后按下確認鍵 .?lock_up(lock_up),//關鎖按鍵 .?correct_password(correct_password),//隨機密碼 .?correct_password_led(correct_password_led),//隨機密碼指示燈 .?led_open(led_open),//開鎖指示燈 .?alarm_beep(alarm_beep),//報警蜂鳴器 .?password_in(password_in),//顯示輸入密碼 .?errorcnt(errorcnt)//顯示剩余次數計數 ); //數碼管顯示模塊 display?i_display( .?clk(clk),// .?password_in(password_in),//輸入密碼 .?errorcnt(errorcnt),//剩余次數計數 .?segment(segment),//數碼管段選顯示 .?select(select),?//數碼管位選顯示 .?HEX(HEX)//數碼管段選顯示 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=354
閱讀全文