名稱(chēng):BCD碼計(jì)數(shù)器Verilog代碼vivado仿真
軟件:vivado
語(yǔ)言:Verilog
代碼功能:
(BCD碼計(jì)數(shù)器)設(shè)計(jì)一個(gè)模60的BCD碼加法計(jì)數(shù)器。提示:可將個(gè)位和十位分別進(jìn)行描述,當(dāng)個(gè)位為9時(shí),則個(gè)位清零,同時(shí)十位加1;當(dāng)十位為5和個(gè)位9時(shí),十位和個(gè)位同時(shí)清零,其它時(shí)候個(gè)位在ck上升沿觸發(fā)下加1。
任務(wù)2:使用任務(wù)1中計(jì)數(shù)器,記錄秒脈沖的個(gè)數(shù)(秒脈沖信號(hào)作為計(jì)數(shù)器使能信號(hào)),輸出為8位BCD碼,輸出驅(qū)動(dòng)開(kāi)發(fā)板上8個(gè)LED指示燈,顯示計(jì)數(shù)結(jié)果。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. Testbench
5. 仿真圖
任務(wù)2仿真圖(秒脈沖計(jì)數(shù)器)
任務(wù)1仿真圖(BCD碼計(jì)數(shù)器)
部分代碼展示:
//任務(wù)1,BCD碼計(jì)數(shù)器 module?BCD( input?clk,//時(shí)鐘 input?rst_n,//復(fù)位 input?en,//使能信號(hào) output?[3:0]?BCD_ten,//十位 output?[3:0]?BCD_one//個(gè)位 ); reg?[3:0]?ten;//十位 reg?[3:0]?one;//個(gè)位 always@(posedge?clk?or?negedge?rst_n) if(~rst_n)//復(fù)位 begin ten<=4'd0; one<=4'd0; end else?if(en)begin//使能信號(hào) if(ten==4'd5?&&?one==4'd9)//十位為5,個(gè)位為9 begin//清零 ten<=4'd0; one<=4'd0; end else?if(one==4'd9)//個(gè)位為9 begin ten<=ten+4'd1;//十位加1 one<=4'd0;//清零 end else begin ten<=ten;//十位不變 one<=one+4'd1;//個(gè)位加1 end end assign?BCD_ten=ten;//輸出十位 assign?BCD_one=one;//輸出個(gè)位 endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=474