vivado代碼編寫——倍頻(使用IP核)

FPGA的倍頻用代碼來實現(xiàn)比較復雜,簡單的方法就是使用PLL核。

PLL全稱是Phase Locked Loop,即鎖相環(huán),是一種反饋控制電路。PLL對時鐘網(wǎng)絡(luò)進行系統(tǒng)級的時鐘管理和偏移控制,具有時鐘倍頻、分頻、相位偏移和可編程占空比等功能。

打開工程FreDivDou,

使用IP核

點擊PROJECT MANAGER中的IP Catalog,

IP Catalog

在IP Catalog的Search中輸入clock,雙擊下面出現(xiàn)的FPGA Feathers and

Design——Clocking——Clocking Wizard,

Clocking Options

在Clocking Options界面內(nèi),Primitive中選擇PLL,Input Clock Information中將Primary的Input Frequency改為50MHz,點擊OK,

Output Clocks

在Output Clocks界面中,將clk_out1的Output Freq改為100MHz(50Mhz的2倍頻),將clk_out2的Output

Freq改為150MHz(50Mhz的3倍頻),點擊OK,

Create Directory

點擊OK,

Generate Output Products

點擊Generate,生成PLL的ip核clk_wiz_0,

生產(chǎn)IP核

雙擊Sources——IP Sources——clk_wiz_0——Instantiation Template——clk_wiz_0.veo,在clk_wiz_0.veo中

顯示該IP核的實例化模板。

IP核的實例化模板

在FreDivDou.v中繼續(xù)添加verilog代碼,


moduleFreDivDou(

input? clk_i,

input? rst_n_i,


outputdiv2_o,

outputdiv3_o,

outputdiv4_o,

outputdou2_o,

outputdou3_o

);


?wire?locked;

? clk_wiz_0 instance_name

?? (

??? // Clock out ports

??? .clk_out1(dou2_o),???? // output clk_out1

??? .clk_out2(dou3_o),???? // output clk_out2

??? // Status and control signals

??? .reset(~rst_n_i), // input reset,這里要加上取反負號,是因為生成PLL時,默//認選擇的是高電平有效,而在本電路中,初始上電時rst_n_i為低電平,之后一直保持

//低電平

??? .locked(locked),?????? // output locked

?? // Clock in ports

??? .clk_in1(clk_i));????? // input clk_in1

Endmodule

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容