導讀:
7系列FPGA包含最多24個CMT塊,CMT具體的分布和與其他時鐘資源的關系請參考本合集(FPGA應用開發)的上一篇文章。本文主要介紹CMT內部MMCM和PLL的區別以及在實際開發中怎么使用CMT,怎么實現跨時鐘區域,第一次讀者最好先閱讀上一篇文章——解剖時鐘結構篇。
MMCM和PLL的區別
在xilinx 7系列FPGA中,時鐘管理塊(CMT)包括混合模式時鐘管理器(MMCM)和鎖相環(PLL)。MMCM和PLL可用于廣泛范圍頻率的頻率合成器,用作外部或內部時鐘的抖動濾波器,并用于去斜時鐘。
下圖顯示了各種時鐘輸入源與MMCM/PLL之間連接的高層次視圖。在7系列FPGA中,時鐘輸入允許多個資源(如紅框所示)提供參考時鐘給MMCM/PLL。
PLL與MMCM的區別:
在CMT中,PLL是MMCM功能的一個子集。PLL主要用于頻率合成,但不支持MMCM的一些高級功能,如直接連接到HPC(高性能時鐘)或BUFIO(緩沖器輸入輸出)等。MMCM是7系列FPGA中用于時鐘管理的核心。簡單來說PLL適用于較簡單的時鐘管理需求,而MMCM提供了更多高級功能,適用于更復雜的時鐘管理場景。其中MMCM支持的附加功能主要包括:
- 使用CLKOUT[0:3]直接連接到HPC或BUFR或BUFIO。
- 反相時鐘輸出(CLKOUT[0:3]B),即支持差分輸出。
- CLKOUT6(相比PLL多一路輸出)。
- CLKOUT4_CASCADE(級聯輸出,允許將一個 MMCM 的輸出連接到另一個 MMCM 的輸入)。
- CLKOUT0_DIVIDE_F的分數分頻(用于進行時鐘頻率合成時的分數分頻,非整數倍時鐘頻率的設計有用)
- CLKFBOUT_MULT_F的分數倍頻(用于進行時鐘頻率合成時的倍頻設置)
- 微調相移
- 動態相移
PLL和MMCM內部結構就不再這里詳述了,大家知道怎么用就足夠了,感興趣的讀者可以參考xilinx原文檔。
Clock IP和原語
怎么使用CMT?工程中可以選擇IP即預設計的時鐘管理模塊,也可以選擇原語硬件描述語言(如VHDL或Verilog)中的代碼自定義時鐘管理。
選用IP使用簡單,有圖形用戶界面(GUI),可以通過可視化的方式配置參數,如下圖所示。
選用原語,自定義代碼可以更好地控制硬件資源的利用,減小資源占用。對于經驗較豐富的開發者,使用原語可能更為靈活;而對于初學者,使用IP更容易上手。
Clock IP:可選擇MMCM還是PLL
MMCM和PLL 原語
注:
MMCME2_BASE原語提供了對獨立MMCM的最常用功能的訪問。時鐘去斜、頻率合成、粗略相移和占空比編程都可以與MMCME2_BASE一起使用。MMCME2_ADV原語提供對所有MMCME2_BASE功能的訪問,以及用于時鐘切換、訪問動態重配置端口(DRP)以及動態精細相移的額外端口。PLL類似,不再細述。
實際用例
xilinx原文檔有描述,在不使用其他原語的情況下,進入器件的時鐘信號(通過CCIO引腳)只能驅動同一時鐘區域內的BUFR或BUFIO。如果要驅動其他時鐘區域的邏輯則必須使用BUFMR原語,BUFMR原語是一種多區域時鐘緩沖器,允許輸入訪問進入器件的時鐘信號所在時鐘區域上方和下方的BUFR和BUFIO。BUFMR可以跨越多個時鐘區域。每個時鐘區域中有兩個BUFMR。
然而,在某些情況下,我們可以通過經過MMCM和BUFG等元素來實現跨時鐘區域的時鐘分配。BUFMR主要用于驅動多個時鐘區域的一種特定情況,這是一種確保最小時鐘偏移和時鐘抖動的方法。因為它專為跨時鐘區域提供時鐘信號設計。
case1:使用BUFMR跨時鐘區域
外部時鐘從MRCC引腳(注:通過BUFMR跨多個時鐘區域時,只能從MRCC引腳,SRCC引腳為單時鐘區域,不過也可以使用GT時鐘)送至BUFMR原語,然后BUFMR被多個BUFR或BUFIO驅動的邏輯分組為(最多三個)子集,每個子集都有一個獨立的BUFR或BUFIO。使用Vivado設計工具對設計進行布局和約束,以便將邏輯分配給各個BUFR和BUFIO。
case2:使用BUFG和MMCM跨時鐘區域
外部時鐘從CCIO引腳(MRCC或SRCC)送至BUFG(單端時鐘)或IBUFGDS(差分時鐘),經過MMCM合成消抖后再連至BUFG,此時BUFG輸出時鐘則是全局時鐘,實現了跨時鐘區域的時鐘分配。
-
FPGA
+關注
關注
1641文章
21910瀏覽量
611643 -
鎖相環
+關注
關注
35文章
591瀏覽量
88289 -
Xilinx
+關注
關注
73文章
2179瀏覽量
123858 -
pll
+關注
關注
6文章
863瀏覽量
135885 -
時鐘
+關注
關注
11文章
1855瀏覽量
132633
發布評論請先 登錄
相關推薦
XILINX FPGA IP之MMCM PLL DRP時鐘動態重配詳解

Xilinx 7系列FPGA的時鐘結構解析

請問如何設置動態和實時改變Artix FPGA中MMCM時鐘的相移?
Xilinx 7系列FPGA管腳是如何定義的?
Xilinx 7系列與Ultrascale系列FPGA的區別

Xilinx 7系列FPGA PCIe Gen3的應用接口及特性

評論