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