名稱(chēng):VIVADO顯示模塊verilog代碼Nexys4開(kāi)發(fā)板
軟件:VIVADO
語(yǔ)言:Verilog
代碼功能:
顯示模塊,撥動(dòng)右邊的 8 個(gè)開(kāi)關(guān),右邊的四個(gè)數(shù)碼管可以顯示。
8 位二進(jìn)制對(duì)應(yīng)的十進(jìn)制數(shù),這里的二進(jìn)制要求是補(bǔ)碼(最高為是 1 的話會(huì)輸出負(fù)數(shù))。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Nexys4開(kāi)發(fā)板驗(yàn)證,Nexys4開(kāi)發(fā)板如下,其他開(kāi)發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. Xdc約束文件
部分代碼展示:
//顯示模塊 //撥動(dòng)右邊的?8?個(gè)開(kāi)關(guān),右邊的四個(gè)數(shù)碼管可以顯示 //8?位二進(jìn)制對(duì)應(yīng)的十進(jìn)制數(shù),這里的二進(jìn)制要求是補(bǔ)碼(最高為是?1?的話會(huì)輸出負(fù)數(shù))。 module?display ( input?clk, input?[7:0]?SW,//右邊的?8?個(gè)開(kāi)關(guān) output?reg?[7:0]?bit_select,//數(shù)碼管位選 output?reg?[7:0]?seg_select//數(shù)碼管段選 ); //二進(jìn)制轉(zhuǎn)十進(jìn)制 wire?[3:0]signed_flag;//負(fù)號(hào)指示 assign?signed_flag=(SW[7])??4'hA?:?4'hF;//負(fù)號(hào) wire?[7:0]?data; assign?data=(SW[7]==0)??SW?:?~(SW?-?1);//正數(shù)是本身,負(fù)數(shù)減1再取反 wire?[3:0]?data_hun;//百位 wire?[3:0]?data_ten;//十位 wire?[3:0]?data_one;//個(gè)位 assign?data_hun=data/100;//百位 assign?data_ten=data/10%10;//十位 assign?data_one=data%10;//個(gè)位 reg?[31:0]?count_num=32'd0; ////////////////////////////////////////////位選//////////////////////////////////////////////// always?@(posedge?clk?)??//掃描頻率 begin if(count_num?==?32'd99_999)?? begin count_num?<=?32'd0;? end? else?begin count_num?<=count_num?+1'd1;?//掃描頻率計(jì)時(shí)數(shù)字 end end reg?[2:0]?shumaguan_num=3'd0; always?@(posedge?clk?)?? begin if(count_num?==?32'd99_999) begin if(shumaguan_num?==?3'd3) begin shumaguan_num?<=?3'd0;//計(jì)數(shù)0~3,共4個(gè)數(shù)碼管顯示 end else?begin shumaguan_num?<=?shumaguan_num?+?1'd1;????//掃描那個(gè)管子的指示位 end end end
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=371
閱讀全文