名稱:排隊叫號電路系統(tǒng)verilog代碼Basys3開發(fā)板驗證(代碼在文末下載)
軟件:VIVADO
語言:Verilog
代碼功能:
設(shè)計一個排隊叫號系統(tǒng):
1.進隊,離隊兩個信號作為輸入,當(dāng)前服務(wù)號碼和隊長各由兩個數(shù)碼管顯示。
2.初始隊長0,進隊號碼由1順序遞增,輸出編號。
3.有人入隊長度加,有人出隊長度減。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Basys3開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
排隊叫號仿真
1. 工程文件
2. 程序文件
3. 約束文件
4. 程序編譯
5. RTL圖
6. Testbench
7. 仿真圖
整體仿真
按鍵模塊仿真
排隊控制模塊
顯示模塊
時序仿真與功能仿真類似,只需要編譯綜合后點擊下圖時序仿真即可,參考視頻的步驟仿真
部分代碼展示:
module?paidui_top( input?clk, input?rst,//按下為高電平 input?in_duilie,//按下為高電平 input?out_duilie,//按下高低電平 output?[3:0]?bit_select,//數(shù)碼管位選 output?[7:0]?lednum_select//數(shù)碼管段選 ); wire?in_duilie_P; wire?out_duilie_P; wire?[7:0]?long_num_O;//隊列長度 wire?[7:0]?current_num_O;//當(dāng)前叫號 //按鍵消抖模塊 key_jitter?i1_key_jitter( ?????.?clkin(clk), ?????.?key_in(in_duilie),//輸入 ?.?key_posedge(in_duilie_P)//消抖后按鍵上升沿 ); //按鍵消抖模塊 key_jitter?i2_key_jitter( ?????.?clkin(clk), ?????.?key_in(out_duilie),//輸入 ?.?key_posedge(out_duilie_P)//消抖后按鍵上升沿 ); //排隊控制模塊 paidui?i_paidui( .?clk(clk), .?rst(rst),//按下為高電平 .?in_duilie_P(in_duilie_P),//入隊 .?out_duilie_P(out_duilie_P),//離隊 .?long_num_O(long_num_O),//隊列長度 .?current_num_O(current_num_O)//當(dāng)前叫號 ); //顯示模塊 display_num?i_display_num( .?clk(clk), .?long_num_O(long_num_O),//隊列長度 .?current_num_O(current_num_O),//當(dāng)前叫號 .?bit_select(bit_select),//數(shù)碼管位選 .?lednum_select(lednum_select)//數(shù)碼管段選 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=294
閱讀全文