名稱(chēng):任意整數(shù)分頻器設(shè)計(jì)Verilog代碼vivado? ego1開(kāi)發(fā)板
軟件:vivado
語(yǔ)言:Verilog
代碼功能:
任意整數(shù)分頻器設(shè)計(jì)
1、支持進(jìn)行任意整數(shù)分頻;
2、使用一個(gè)偶數(shù)分頻器和一個(gè)奇數(shù)分頻器模塊;
3、根據(jù)輸入的分頻值,選擇輸出偶分頻還是奇分頻。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在ego1開(kāi)發(fā)板驗(yàn)證,ego1開(kāi)發(fā)板如下,其他開(kāi)發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 管腳約束
4. 程序編譯
5. 仿真文件(testbench)
6. 仿真圖
6.1 整體仿真
6.2 偶分頻模塊
下圖可看出,輸入N為偶數(shù)時(shí),en使能信號(hào)為高電平,clk_div輸出偶數(shù)分頻信號(hào)
6.3 奇分頻模塊
下圖可看出,輸入N為奇數(shù)時(shí),en使能信號(hào)為高電平,clk_div輸出奇數(shù)分頻信號(hào)
部分代碼展示:
module?div_n( input?clk,//時(shí)鐘100M input?rst_n,//復(fù)位信號(hào) input?[14:0]?N,//輸入的分頻倍數(shù) output?clk_div//輸出分頻信號(hào) ); wire?clk_div_ou;//偶分頻信號(hào) wire?clk_div_ji;//奇分頻信號(hào) //偶分頻模塊 div_ou?i_div_ou( .?clk(clk),//時(shí)鐘100M .?rst_n(rst_n),//復(fù)位信號(hào) .?N(N),//輸入的分頻倍數(shù) .?en(~N[0]),//使能信號(hào) .?clk_div(clk_div_ou)//輸出分頻信號(hào) ); //奇分頻模塊 div_ji?i_div_ji( .?clk(clk),//時(shí)鐘100M .?rst_n(rst_n),//復(fù)位信號(hào) .?N(N),//輸入的分頻倍數(shù) .?en(N[0]),//使能信號(hào) .?clk_div(clk_div_ji)//輸出分頻信號(hào) ); ?? assign?clk_div=clk_div_ou?|?clk_div_ji;//輸出偶分頻或奇分頻 endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=466