世界短訊!XILINX FPGA IP之Clocking Wizard詳解

2023-06-12 18:25:55 來源:FPGA自學筆記分享

鎖相環基本上是每一個fpga工程必不可少的模塊,之前文檔xilinx 7 系列FPGA時鐘資源對xilinx fpga的底層時鐘資源做過說明,但是對于fpga的應用來說,使用Clocking Wizard IP時十分方便的。

Clocking Wizard IP:簡化時鐘設計代碼的開發,用戶不用了解FPGA的底層結構,時鐘源源語,ip使用圖形化界面,根據用戶設置選擇合適的源語及參數。


(資料圖片)

它的主要特性包括:

1、支持MMCM及PLL;

2、安全時鐘啟動功能在輸出端提供穩定有效的時鐘,順序啟動功能提供了序列輸出時鐘;也就是說ip能夠根據設置,保證時鐘穩定后才會輸出,同時多個時鐘間的輸出順序也可以設置;

3、最大能力支持2個輸入,7個輸出;

4、提供了一個AXI4-Lite接口,用于動態地重新配置乘、除、相移/偏移或占空比,鎖相環輸出的時鐘可以動態配置;

5、自動計算vco頻率,乘法、除法因子;用戶只用在IP中確定輸入時鐘及想要的輸出時鐘,ip會自動配置響應的vco頻率及輸出分頻比。

ip設置的第一個界面如下,其中的主要參數為:

Clock Monitor:時鐘監控

Frequency Synthesis :頻率綜合

Minimize Power:最小功耗,犧牲性能

Phase Alignment:輸出時鐘相位鎖定到輸入參考上

SpreadSpectrum:頻譜擴展,降低干擾

Dynamic Reconfiguration:動態重配頻率、占空比

Dynamic Phase Shift:動態調整輸出時鐘關系

SafeClock Startup and Sequencing:用于穩定輸出時鐘及時鐘序列

Balanced:IP自用優化帶寬抖動

Minimize Output Jitter:可能會帶來功耗增加及相位異常

Maximize Input Jitter filtering:會引起輸出時鐘抖動

然后就是兩個輸入時鐘的設置。

第二個界面如下,對輸出時鐘進行配置:

第三個界面如下,顯示根據用戶配置生成的vco頻率及端口。

第四個界面如下,這個界面是根據配置生成的乘法倍數及各個時鐘的分頻數據,這里是允許用戶自己修改的。

最后就是總結界面了,如下圖,是對用戶最終設計的總結。

然后就生成了鎖相環了,用戶可以對其進行例化使用了:

//----------------------------------------------------------------------------//  Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase//   Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)//----------------------------------------------------------------------------// clk_out1__300.00000______0.000______50.0_______94.862_____87.180// clk_out2__100.00000______0.000______50.0______115.831_____87.180// clk_out3__200.00000______0.000______50.0______102.086_____87.180////----------------------------------------------------------------------------// Input Clock   Freq (MHz)    Input Jitter (UI)//----------------------------------------------------------------------------// __primary_________100.000_____________0.01// The following must be inserted into your Verilogfile for this// core to be instantiated. Change the instance name and port connections// (in parentheses) to your own signal names.//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG  clk_wiz_0 instance_name   (    // Clock out ports    .clk_out1(clk_out1),     // output clk_out1    .clk_out2(clk_out2),     // output clk_out2    .clk_out3(clk_out3),     // output clk_out3    // Dynamic reconfiguration ports    .daddr(daddr), // input [6:0] daddr    .dclk(dclk), // input dclk    .den(den), // input den    .din(din), // input [15:0] din    .dout(dout), // output [15:0] dout    .drdy(drdy), // output drdy    .dwe(dwe), // output dwe    // Status and control signals    .reset(reset), // input reset    .locked(locked),       // output locked   // Clock in ports    .clk_in1(clk_in1)      // input clk_in1);

最后說幾點:

首先是MMCM及PLL的選擇,每個CMT包含一個MMCM和一個PLL,他們的結構如下:

MMCM:

PLL:

MMCM和一個PLL的詳細差別如下表,ip生成時可以根據需要進行選擇。

二是關于安全啟動模式,如下圖,這種模式下只有時鐘鎖定后才會有是時鐘輸出,而且時鐘輸出會經過8bit的移位寄存器,移位寄存器設置不同的delay值,就控制了每個時鐘的輸出順序。

標簽:

上一篇:XILINX FPGA IP之MMCM PLL DRP時鐘動態重配詳解-天天短訊
下一篇:最后一頁