名稱:在7段數(shù)碼管上顯示自己的最后三位學(xué)號(hào)數(shù)字Verilog代碼Vivado仿真
軟件:Vivado
語言:Verilog
代碼功能:
在7段數(shù)碼管上顯示自己的最后三位學(xué)號(hào)數(shù)字
1.實(shí)驗(yàn)任務(wù)
要求將自己的最后三位學(xué)號(hào)數(shù)字在數(shù)碼管上顯示。
2、實(shí)驗(yàn)現(xiàn)象與結(jié)果
應(yīng)能看見自己學(xué)號(hào)穩(wěn)定的在數(shù)碼管上顯示,并用手機(jī)拍攝記錄下來。
3、實(shí)驗(yàn)報(bào)告
(1)簡(jiǎn)單陳述在數(shù)碼管上顯示數(shù)字的原理。
(2)畫出編寫 Verilog程序的功能框圖。
(3)說明改變掃描頻率的軟件方法,及對(duì)顯示的影響。
(4)附上 Verilog實(shí)驗(yàn)源程序,并對(duì)關(guān)鍵或重要的程序語句給出簡(jiǎn)要的注釋和說明。
(5)將顯示的學(xué)號(hào)截圖附上。
(6)如果調(diào)試過程遇到了問題,應(yīng)將問題截圖,并給出解決問題的辦法和對(duì)應(yīng)的截圖。
設(shè)計(jì)文檔:
1. 學(xué)號(hào)顯示
工程文件
程序文件
程序編譯
Testbench
仿真圖
部分代碼展示:
`timescale?1ns?/?1ps //顯示學(xué)號(hào)后三位122 module?display_num( input?clk,//時(shí)鐘 output?reg?[3:0]?bit_select,??//數(shù)碼管位控制信號(hào) output?reg?[7:0]?lednum_select//數(shù)碼管段控制信號(hào) ); reg[15:0]counter='d0; always@(posedge?clk) begin ????counter<=counter+16'd1;//掃描頻率控制計(jì)數(shù)器 end reg?[3:0]?display_data=4'd0; always@(posedge?clk) begin//counter[5:4]表示掃描頻率,若值越大,頻率越低,最大可以設(shè)置為counter[15:14] case(counter[5:4])//學(xué)號(hào)122 2'd1:display_data<=4'd1;//學(xué)號(hào)1?? 2'd2:display_data<=4'd2;//學(xué)號(hào)2 2'd3:display_data<=4'd2;//學(xué)號(hào)2 ??????default:; endcase end always@(posedge?clk) begin//counter[5:4]表示掃描頻率,若值越大,頻率越低,最大可以設(shè)置為counter[15:14] ????case(counter[5:4])//數(shù)碼管位控制信號(hào)低電平有效 ????????2'd1:?bit_select<=4'b1011;//顯示第1個(gè)數(shù)碼管 ????????2'd2:?bit_select<=4'b1101;//顯示第2個(gè)數(shù)碼管 ????????2'd3:?bit_select<=4'b1110;//顯示第3個(gè)數(shù)碼管 ????????default:bit_select<=4'b1111;//不顯示 ????endcase case(display_data)//數(shù)碼管段控制信號(hào)低電平有效 0?:?lednum_select=?8'hc0;?//顯示0 1?:?lednum_select=?8'hf9;?//顯示1 2?:?lednum_select=?8'ha4;?//顯示2 3?:?lednum_select=?8'hb0;?//顯示3 4?:?lednum_select=?8'h99;?//顯示4 5?:?lednum_select=?8'h92;?//顯示5 6?:?lednum_select=?8'h82;?//顯示6 7?:?lednum_select=?8'hf8;?//顯示7 8?:?lednum_select=?8'h80;?//顯示8 9?:?lednum_select=?8'h90;?//顯示9 endcase end endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=502