名稱:學號滾動顯示verilog代碼vivado軟件ego1開發(fā)板(代碼在文末下載)
軟件:VIVADO
語言:Verilog
代碼功能:
學號滾動顯示 Course Outline實驗要求:
>用EGO1實驗板卡上的8個7段數碼管滾動顯示你的學號;
>例如:李佳一(LJY)學號2019040509;
>滾動顯示16個字符為: HEULJY2019040509HEULJY201904.
>實驗提示
>學號中的數碼被存儲在一個64位的寄存器msg_ array[0:63]中;
>在時鐘上升沿,把msg_aray[0:63]中的內容向左循環(huán)移動4位,即 msg_ array[0:3]的內容移到msg_ array[60:63]中(注意: msg array數組中的0位為高位),之后在每個時鐘上升沿時進行循環(huán)移位;
>用頻率3Hz的時鐘在7段數碼管上移動字符;
>SW7為暫停信號,SW7為1時暫停移動;S0為復位信號,按下后重新開始移動
>姓名拼音字母的7段編碼見下頁;若姓名為陳晨,則擴展為陳晨晨。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在ego1開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
工程文件:
程序文件:
程序編譯:
RTL圖:
管腳分配:
部分代碼展示:
`timescale?1ns?/?1ps module?TOP( ????input?sys_clk,//時鐘 ????input?sys_rst,//復位S0 ????input?SW_en,//使能SW7 ????//兩個數碼管段選位選 ????output?[7:0]?segment_strobe_1, ????output?[3:0]?bit_strobe_1,?? ????output?[7:0]?segment_strobe_2, ????output?[3:0]?bit_strobe_2 ????); wire?clk_3Hz; wire?[31:0]?data_in;//輸入8位數據 //分頻模塊,分頻到3Hz clk_div?i_clk_div( .?clk_in(sys_clk),//時鐘 .?reset(sys_rst),//復位 .?clk_3Hz(clk_3Hz)//分頻到3Hz ); //數字移位顯示模塊 Numeric_Display?i_Numeric_Display( .?clk(sys_clk),//標準時鐘,100MHz .?reset(sys_rst),//復位信號 .?SW_en(SW_en),//使能 .?shift_key_p(clk_3Hz),//移位信號 .?segment_strobe_1(segment_strobe_1), .?bit_strobe_1(bit_strobe_1),?? .?segment_strobe_2(segment_strobe_2), .?bit_strobe_2(bit_strobe_2)//高電平點亮,高電平選通 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=318