名稱(chēng):數(shù)碼管移位循環(huán)顯示數(shù)字verilog代碼ego1開(kāi)發(fā)板(代碼在文末下載)
軟件:VIVADO
語(yǔ)言:Verilog
代碼功能:
采用EGO1中的兩組數(shù)碼管,讓該8個(gè)數(shù)碼管循環(huán)顯示:01234567,12345678,23456789....
電路的輸入信號(hào)en進(jìn)行啟動(dòng)或暫停;用按鍵控制循環(huán),按一下顯示下一組數(shù)。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在ego1開(kāi)發(fā)板驗(yàn)證,開(kāi)發(fā)板如下,其他開(kāi)發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. Testbench
7. 仿真圖
整體仿真圖
按鍵消抖模塊
顯示模塊
部分代碼展示:
module?Numeric_Display( input?clk,//標(biāo)準(zhǔn)時(shí)鐘,100MHz input?reset,//復(fù)位信號(hào),低有效? input?SW_en,//使能 input?shift_key_p,//移位 output?reg?[7:0]?segment_strobe_1, output?reg?[3:0]?bit_strobe_1,??//高電平點(diǎn)亮,高電平選通 output?reg?[7:0]?segment_strobe_2, output?reg?[3:0]?bit_strobe_2//高電平點(diǎn)亮,高電平選通 ); reg?[39:0]?data_in;//輸入8位數(shù)據(jù) ???always?@(posedge?clk?or?negedge?reset)?? ???if(reset==0) ?????????data_in<=40'h0123456789; ???else?if(SW_en==1)begin//使能 ??????if?(shift_key_p)//按下移位 ?????????data_in<={data_in[35:0],data_in[39:36]};//移位 ???end ???reg?[15:0]?counter=16'd0;??? ???always?@(posedge?clk)????? ??????begin ?????????if?(counter?==?16'hffff) ????????????counter?<=?16'h0000; ?????????else ????????????counter?<=?counter?+?1;//計(jì)數(shù) ??????end ?????? reg?[3:0]?display_data_1;? reg?[3:0]?display_data_2;? //數(shù)碼管1位選控制 ???always?@(posedge?clk) ??????case?(counter[15:14]) ?????????2'd0?:?begin ????????????display_data_1?<=?data_in[31:28]; ????????????bit_strobe_1?<=4'b1000; ????????????end ?????????2'd1?:begin ????????????display_data_1?<=?data_in[27:24]; ????????????bit_strobe_1?<=4'b0100; ????????????end ?????????2'd2?:begin ????????????display_data_1?<=?data_in[23:20]; ????????????bit_strobe_1?<=4'b0010;??????? ????????????end ?????????2'd3?:begin ????????????display_data_1?<=?data_in[19:16]; ????????????bit_strobe_1?<=4'b0001;???????????? ????????????end ??????endcase
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=312