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