1. 程式人生 > >xilinx 7系列FPGA時鐘篇(4)_CMT簡介

xilinx 7系列FPGA時鐘篇(4)_CMT簡介

xilinx 7系列FPGA時鐘篇(4)_CMT簡介

上篇咱們僅僅簡要的介紹了時鐘的用法,並未詳細的說明,主要是因為很多時鐘用法是針對特定的應用需求,無法一一介紹。本篇咱們將重提上篇的CMT時鐘模組,聊一聊它的用法。可以這麼說,每個靠譜的FPGA應用裡都應該用到CMT模組。

在7系列FPGA裡,每一個時鐘區域對應一個CMT(clock management tile),CMT由1個MMCM(mixed-mode
clock manager)和1個PLL(phase-locked loop)組成,如圖1所示為其輸入/輸出連線圖。
在這裡插入圖片描述
圖1:CMT輸入/輸出連線圖

MMCM、PLL的功能可以總結為3點:

(1)
頻率綜合:將外部輸入的固定頻率時鐘調理成多路可調節頻率的時鐘。

(2)
去抖動(百度時鐘抖動的含義,這裡不具體介紹)。

(3)
去偏斜(百度時鐘抖動的含義,這裡不具體介紹)。

咱們這裡強調下,7系列FPGA裡的PLL只是MMCM的功能子集。這裡咱們先介紹MMCM,如圖2所示為其結構框圖:

在這裡插入圖片描述
圖2:MMCM結構框圖

上圖咱們一目瞭然,MMCM有2個時鐘輸入,使用時任選1路即可,輸入時鐘經過PFD(phase-frequency detector),CP(charge pump),LF(loop filter)後產生一定幅度的電壓輸入到VCO,VCO產生頻率與輸入電壓幅度成比例的高頻時鐘,再被除以M倍並反饋到PFD。因此VCO的輸出頻率是一個穩定的、輸入頻率M倍的高頻時鐘,該時鐘除以不同的倍數(使用者可調)即可輸出時鐘clkout0clkout6。另外第0路輸出和反饋輸出是可以被分數除法,且第0路

第3路提供反相180度的輸出,VCO的輸出還可以精確調整相位,這是7系列FPGA特有的。

咱們再看PLL的結構,如圖3所示:

在這裡插入圖片描述

圖3:PLL結構框圖

其結構與MMCM大體一致,但沒有反相輸出、分數倍數的除法、精確的動態相位調整以及CLKOUT6。

這裡強調一下:MMCM、PLL均可實現時鐘整數倍的頻率綜合、去抖、去偏斜,但MMCM還可以實現分數倍的頻率綜合、反相時鐘輸出以及動態的時鐘相位調整。當然,對於咱們一般的應用來說,用不到MMCM的這些高階功能,兩者使用沒啥區別。

接下來咱們給出xilinx官方推薦的幾種MMCM/PLL的使用方法:

圖4為最最常用的用法,目前被使用的最多,這種方式設計保留了輸入與輸出時鐘之間的相位關係,時鐘效能最高,系統最穩定,但需要使用2個BUFG,BUFG在FPGA裡面屬於稀缺資源,只有32個,對於某些特別複雜的系統可能就捉襟見肘了。

在這裡插入圖片描述
圖4:基於BUFG的相位保持時鐘設計

圖5是將BUFG換成了BUFH,其系統性能是優於BUFG的,但前一篇咱們提到過,BUFH的使用範圍只有左右相鄰的時鐘區域,對於邏輯資源使用量超過2個時鐘區域的應用肯定就不合適了。
在這裡插入圖片描述
圖5:基於BUFH的相位保持時鐘設計

圖6為時鐘的內部反饋應用,由於沒有引入反饋BUFG的噪聲,因此輸出時鐘的噪聲效能更好,但失去了輸入與輸出時鐘之間的相位關係,所有這種用法適用於高精度的頻率綜合,對相位關係不太關注的應用。
在這裡插入圖片描述
圖6:基於內部反饋的低噪聲時鐘設計

圖7為零延遲的時鐘應用,這種應用適用於單個外部時鐘源供給需要保持相位關係的多個數字系統。
在這裡插入圖片描述
圖7:基於零延遲的多系統時鐘設計

到此咱們的7系列FPGA的時鐘篇就算是簡簡單單的介紹完了,咱們下一部分就介紹7系列FPGA的內部邏輯資源吧,所有數字系統的功能實現都得靠它啦~
在這裡插入圖片描述