引言:
從本文開始,我們陸續(xù)介紹Xilinx 7系列FPGA的時鐘資源架構,熟練掌握時鐘資源對于FPGA硬件設計工程師及軟件設計工程師都非常重要。本章概述7系列FPGA時鐘,比較了7系列FPGA時鐘和前幾代FPGA差異,總結(jié)7系列FPGA中的時鐘連接。有關7系列FPGA時鐘資源使用的詳細信息,請關注后續(xù)文章。
時鐘資源架構概述
7系列FPGA與前一代FPGA時鐘資源差異
- 時鐘資源連接概述
1.時鐘資源架構概述
1.1 時鐘資源概述
7系列FPGA時鐘資源通過專用的全局和區(qū)域I/O和時鐘資源管理符合復雜和簡單的時鐘要求。時鐘管理塊(CMT)提供時鐘頻率合成、減少偏移和抖動過濾等功能。非時鐘資源,如本地布線,不推薦用于時鐘功能。
- 全局時鐘樹允許同步模塊時鐘跨越整個FPGA器件。I/O時鐘和區(qū)域時鐘樹允許最多為三個垂直相鄰的時鐘區(qū)域提供時鐘。每個CMT包含一個混合模式時鐘管理器(MMCM)和一個鎖相環(huán)(PLL),位于I/O列旁邊的CMT列中。
為了提供時鐘,每個7系列器件被劃分為時鐘區(qū)域。
- 時鐘區(qū)域的數(shù)量隨器件大小而變化,從最小器件的一個時鐘區(qū)域到最大器件中的24個時鐘區(qū)域。時鐘區(qū)域包括50個CLB和一個I/O bank(50個I/O)的區(qū)域中的所有同步模塊(例如:CLB、I/O、串行收發(fā)器、DSP、塊RAM、CMT),其中心有一個水平時鐘行(HROW)。
每個時鐘區(qū)域從HROW向上和向下跨越25個CLB,并水平跨越器件的每一側(cè)。
1.2 時鐘布線資源概述
每個I/O bank包含支持時鐘的輸入引腳,將用戶時鐘帶到7系列FPGA時鐘路由資源上。與專用時鐘緩沖器一起,時鐘輸入管腳將用戶時鐘引入到:
- 器件相同上/下半部分的全局時鐘線相同I/O Bank和垂直相鄰的I/O Bank的時鐘線相同時鐘區(qū)域和垂直相鄰的時鐘區(qū)域的區(qū)域時鐘線同一時鐘區(qū)域內(nèi)的CMT和有限制的情況下的垂直相鄰的時鐘區(qū)域
每個7系列器件有32條全局時鐘線,可以對整個器件中的所有時序資源進行時鐘控制和提供控制信號。全局時鐘緩沖器(BUFGCTRL,在本用戶指南中被簡化為BUFG)驅(qū)動全局時鐘線,用于訪問全局時鐘線。每個時鐘區(qū)域可以使用時鐘區(qū)域中的12條水平時鐘線來支持多達12條全局時鐘線。
全局時鐘緩沖器:
- 可用作時鐘使能電路,以使能或禁用跨越多個時鐘區(qū)域的時鐘
可用作glitch-free multiplexer:
在兩個時鐘源之間選擇
通常由CMT驅(qū)動,用于:
消除時鐘分布延遲
- 從故障時鐘源切換
- 調(diào)整相對于另一個時鐘的時鐘延遲
水平時鐘緩沖器(BUFH/BUFHCE)允許通過水平時鐘行訪問單個時鐘區(qū)域中的全局時鐘線。它也可以作為時鐘使能電路(BUFHCE)獨立地使能或禁用跨越單個時鐘區(qū)域的時鐘。使用每個時鐘區(qū)域中的12條水平時鐘線可以支持多達12個時鐘。每個7系列FPGA都有區(qū)域時鐘樹和I/O時鐘樹,可以為一個時鐘區(qū)域內(nèi)對所有時序資源提供時鐘。每個器件還具有多時鐘區(qū)域緩沖器(BUFMR),允許區(qū)域和I/O時鐘跨越最多三個垂直相鄰的時鐘區(qū)域。
- I/O時鐘緩沖器(BUFIO)驅(qū)動I/O時鐘樹,提供對同一I/O bank中所有時序I/O資源的訪問。區(qū)域時鐘緩沖器(BUFR)驅(qū)動區(qū)域時鐘樹,該樹驅(qū)動同一時鐘區(qū)域中的所有時鐘目的地,并可編程輸入時鐘頻率。緊鄰IOB中的可編程串行器/解串器器(請參閱UG471 7系列FPGA SelectIO Resources用戶指南中的高級選擇邏輯資源一章),BUFIO和BUFR時鐘緩沖區(qū)允許源同步系統(tǒng)跨時鐘域,而無需使用額外的邏輯資源。當與相關的BUFR或BUFIO一起使用時,可以使用多時鐘區(qū)域緩沖器(BUFMR)驅(qū)動相鄰時鐘區(qū)域和I/O時鐘樹。在一個時鐘區(qū)域或I/O bank中最多可支持四個唯一的I/O時鐘和四個唯一的區(qū)域時鐘。
高性能時鐘路由將CMT的某些輸出以非常低的抖動、最小的占空比失真的連接到I/O上。
1.3 CMT 概述
每個7系列FPGA最多有24個CMTs,每個CMT由一個MMCM和一個PLL組成。MMCMs和PLL用作頻率合成器,用于非常寬的頻率范圍,用作外部或內(nèi)部時鐘的抖動濾波器,以及低偏移時鐘。
PLL包含MMCM功能的一個子集。7系列FPGA時鐘輸入連接允許多個資源向MMCM和PLL提供參考時鐘。
7系列FPGA MMCMs具有任意方向的無限精細相移能力,可用于動態(tài)相移模式。MMCMs在反饋路徑或一個輸出路徑中也有一個小數(shù)計數(shù)器,使得頻率合成能力能夠進一步細化。
LogiCORE™ IP時鐘向?qū)Э捎糜趲椭肕MCMs和PLL在7系列FPGA設計中創(chuàng)建時鐘網(wǎng)絡。圖形用戶界面用于采集時鐘網(wǎng)絡參數(shù)。計時向?qū)нx擇適當?shù)腃MT資源,并以最佳方式配置CMT資源和關聯(lián)的時鐘路由資源。
1.1.3 時鐘緩沖、管理和布線
圖1是7系列FPGA時鐘結(jié)構的高級視圖。垂直時鐘中心線(①時鐘主干線)將器件劃分為相鄰的左右區(qū)域,而水平中心線(②)將器件劃分為頂部和底部側(cè)面。時鐘主干中的資源被鏡像到水平相鄰區(qū)域的兩側(cè),從而將某些時鐘資源擴展到水平相鄰區(qū)域。頂部和底部(③)分隔兩組全局時鐘緩沖器(BUFGs),并對它們的連接方式施加了一些限制。但是,BUFGs不屬于時鐘區(qū)域,可以到達器件上的任何時鐘點。所有水平時鐘資源包含在時鐘區(qū)域水平時鐘行(HROW)(④)的中心,而垂直的、非區(qū)域的時鐘資源包含在時鐘主干或CMT主干中。
圖1、7系列FPGA高級時鐘結(jié)構視圖圖2是一個時鐘區(qū)域內(nèi)可用時鐘資源及其基本連接的高層次概述。
圖2、時鐘區(qū)域的基本視圖在圖中,我們可以看到:
- 全局時鐘緩沖器(①)可以通過HROW進入每個區(qū)域,即使物理空間上不在該區(qū)域。
水平時鐘緩沖器(②BUFH)通過HROW驅(qū)動該區(qū)域的每個時鐘點。
BUFGs和BUFHs在HROW中共享路由路徑(③)。I/O緩沖器(BUFIO)和區(qū)域時鐘緩沖器(BUFR)位于I/O bank內(nèi)部(④)。BUFIO只驅(qū)動I/O時鐘資源,而BUFR驅(qū)動I/O資源和邏輯資源。BUFMR支持BUFIOs和BUFRs的多區(qū)域鏈接。時鐘輸入(芯片*CC管腳⑤)將外部時鐘連接到器件上的時鐘資源。某些資源可以通過CMT主干時鐘網(wǎng)絡(⑥)連接到頂部和底部的區(qū)域。
圖3顯示了器件右邊緣單個時鐘區(qū)域中時鐘的更詳細視圖。在該圖中,我們可以看到外部時鐘輸入管腳SRCC和MRCC進入I/O Bank后可以驅(qū)動的時鐘資源以及CMT資源與外部互聯(lián)情況。
圖3、單時鐘區(qū)域(器件右側(cè))
圖4顯示了更詳細的全局BUFG和區(qū)域BUFH/CMT/CC引腳連接以及一個區(qū)域內(nèi)可用資源的數(shù)量(此處顯示右側(cè)區(qū)域)。
圖4、BUFG/BUFH/CMT時鐘區(qū)域細節(jié)在圖4中,我們可以看到:
- SRCC和MRCC時鐘的輸入引腳中的任何一個都可以驅(qū)動CMT和BUFH中的PLL/MMCM。BUFG顯示位于該區(qū)域中,但可以實際位于時鐘主干的其他位置。BUFG和BUFH在HROW中共享12條路由,可以驅(qū)動該區(qū)域內(nèi)的所有時鐘點。BUFGs也可以驅(qū)動BUFHs(圖4中未顯示),允許在其他全局時鐘分布上單獨啟用時鐘(CE)。一個GT Quad有十個專用的通道來驅(qū)動CMT和時鐘緩沖器。位于I/O bank中的BUFRs有四個走線驅(qū)動邏輯、CMT和BUFG中的時鐘點。CMT可以使用CMT主干網(wǎng)驅(qū)動相鄰區(qū)域中的其他CMT,但有局限性。類似地,時鐘輸入管腳可以在相同的限制下驅(qū)動相鄰區(qū)域的CMT。時鐘輸入管腳在器件的同一頂部/底部的任何地方可以驅(qū)動BUFG。CMT主干網(wǎng)中有四條走線支持垂直區(qū)域之間的連接。
邏輯互連驅(qū)動BUFG和BUFH的CE引腳。邏輯互連也可以將時鐘驅(qū)動到相同的緩沖區(qū),但必須小心,因為時間是不可預測的。圖5顯示了BUFR/BUFMR/BUFIO時鐘區(qū)域詳細信息。
圖5、BUFR/BUFMR/BUFIO時鐘區(qū)域詳細信息在圖5中,我們可以了解到:
- 每個I/O bank包含四個BUFIO和四個BUFRs。這些時鐘緩沖器中的每一個可以由專用的輸入時鐘管腳對(_CC管腳)驅(qū)動,或者可以直接由MMCM的特定輸出時鐘驅(qū)動。兩個支持時鐘的輸入管腳對,稱為MRCCs,支持多區(qū)域時鐘方案。一個MRCC管腳對可以驅(qū)動一個特定的BUFMR,而該BUFMR又可以驅(qū)動相同和相鄰區(qū)域中的BUFIOs和BUFRs,從而促進多區(qū)域/bank接口。GT Quad也可以驅(qū)動BUFMRs。MMCM<3:0>輸出有一個專用的高性能差分路徑到BUFRs和BUFIO。此功能也稱為高性能時鐘(HPC)。
圖6、7K325T架構布局
盡管所有7系列器件都具有相同的基本架構,但系列和系列內(nèi)器件之間存在一些架構差異。每7系列FPGA在器件的左邊緣至少有一個完整的I/O列。GT可以是7系列FPGA支持的任何一個串行收發(fā)器(GTP、GTX,或GTH)。帶有GTs的器件要么在器件的右邊緣有一個GTs和I/O的混合列(一些Kintex-7器件和一些Artix-7器件),要么在器件的右邊緣有一個完整的GT列(一些Kintex-7器件和一些Virtex-7器件)和一個完整的I/O列在器件的右側(cè)。其他Virtex-7器件的左右邊緣都有完整的GT列,左右兩側(cè)都有完整的I/O列側(cè)面。Artix-7200t器件在時鐘列的頂部和底部有GTP收發(fā)器。
2. 7系列FPGA時鐘與6系列FPGA的區(qū)別
7系列FPGA時鐘具有與Virtex-6 FPGA類似的結(jié)構,并支持許多相同的功能。但是,不同的時鐘組件及其功能存在一些架構差異和修改。與Spartan-6 FPGA相比,它在結(jié)構和功能上都有一些顯著的變化。一些Spartan-6 FPGA時鐘原語不再可用,取而代之的是更強大、更簡單的結(jié)構。
2.1 與Virtex-6 FPGA的不同
- 7系列FPGA基本BUFIO時鐘功能沒有改變,唯一的例外是BUFIO現(xiàn)在只跨越一個Bank。相鄰Bank的直接時鐘被一個新的時鐘緩沖器所取代?,F(xiàn)在每個Bank有四個BUFIO,另外,BUFR的基本目的沒有改變。然而,現(xiàn)在BUFR只直接跨越一個時鐘區(qū)域。現(xiàn)在每個區(qū)域有四個BUFRs和四個區(qū)域時鐘(軌道)。7系列FPGA引入了一種新的緩沖類型:
BUFMR/BUFMRCE。BUFMR/BUFMRCEs驅(qū)動BUFIOs和/或BUFRs在同一垂直相鄰位置區(qū)域。他們還提供相同的多時鐘區(qū)域/多組時鐘路由,可用于支持相同三個時鐘區(qū)域/組的Virtex-6 FPGA能力.BUFMRCE具有可選擇的同步或異步切換功能。7系列FPGA不再支持Virtex-6系列中的全局時鐘(GC)輸入引腳。每列4個時鐘輸入引腳/對替換GCs,支持時鐘的輸入引腳的連接性得到了增強,以支持以前的GC功能。
全局時鐘多路復用器BUFGMUX添加了一個屬性CLK_SEL_TYP,用于允許兩個輸入時鐘的同步或異步時鐘切換(以前僅通過忽略端口可用)。
BUFHCE有一個增強的時鐘使能,允許輸入時鐘的同步或異步使能。
CMT現(xiàn)在包含一個MMCM和一個PLL(MMCM的一個子集),而不是兩個MMCM,以及保留的專用內(nèi)存接口邏輯。CMT列位于SelectIO旁邊™ CMT中的列/列組,并具有對I/O的專用訪問權限以獲得高性能。全局時鐘緩沖區(qū)仍然位于由驅(qū)動的I/O列之間的設備的垂直中心CMTs.直接不再支持CMT內(nèi)的級聯(lián)。直接級聯(lián)到相鄰的cmt是可能的,但是由于資源有限而受到限制。級聯(lián)到相鄰CMT之外的其他CMT會導致源和目標MMCMs/pll之間的相位偏移,并且需要特殊的屬性設置。
分數(shù)除法器不再共享輸出計數(shù)器。這將釋放這些計數(shù)器用于其他用途。分數(shù)計數(shù)器增加了靜態(tài)相移功能。時鐘保持功能不再可用MMCMs支持擴頻
2.2 與Spartan-6 FPGA的不同
- Spartan-6體系結(jié)構獨有的一些Spartan-6 FPGA時鐘電路拓撲、功能和塊不受支持,已被7系列FPGA時鐘功能所取代。7系列設備不直接支持DCM_SP,DCM_CLKGEN, BUFIO2, BUFIO2_2CLK, BUFIO2FB, BUFPLL, and BUFPLL_MCB等特性和功能。PLL是MMCM的一個子集,具有相同的性能(最小CLKIN/PFD和最小/最大VCO頻率除外)、一些連接限制和一些降低的功能。與以前的Spartan®FPGA PLL相比,7系列FPGA PLL增加了掉電、輸入時鐘切換和級聯(lián)到相鄰CMT。PLL與BUFIO或BUFR沒有直接連接。在7系列FPGA中,沒有直接替代BUFIO2和BUFIO2 clk原句的方法。使用BUFIO和BUFR代替推薦的連接來驅(qū)動ILOGIC和Logic。Spartan-6 FPGA BUFIO2專用輸入路由從GCLK到CMT和全局時鐘緩沖器不再受支持。要遷移到7系列FPGA,請使用來自CCIO引腳的專用輸入路由。在7系列FPGA中沒有直接等效于Spartan-6 FPGA BUFPLL。要進行遷移,請使用BUFIO和BUFR以及ILOGIC和logic的推薦連接。MMCME2 CLKOUT[0:3]的高性能時鐘路由取代了BUFPLL的專用路由。ISERDES和OSERDES電路基于Virtex-6體系結(jié)構。在7系列FPGA中,不再需要BUFIO2FB基元。對于MMCM和PLL反饋連接,CLKFBIN可以直接連接到全局時鐘緩沖器、輸入引腳或CLKFBOUT,具體取決于所使用的反饋。Spartan-6 FPGA僅支持BUFH。7系列FPGA BUFHCE原語添加了禁用時鐘的功能,以在由該資源驅(qū)動的時鐘區(qū)域中實現(xiàn)潛在的節(jié)能。7系列FPGA新的緩沖區(qū)BUFMR/BUFMRCE驅(qū)動相同和垂直相鄰時鐘區(qū)域中的BUFIO和/或BUFRs。當與BUFIO或BUFR一起使用時,BUFMR/BUFMRCE允許MRCC輸入訪問相鄰時鐘中的BUFIO和BUFR區(qū)域。BUFMRCE具有可選擇的同步或異步切換功能。
Spartan-6 FPGA設計遷移的一個新原語是BUFR。當與BUFIO一起使用時,BUFRs功能將取代BUFIO2、BUFIO2 clk和BUFPLL功能。在每個時鐘區(qū)域中有四個BUFR。
Spartan-6 FPGA設計遷移的另一個新原語是BUFIO。當與BUFR一起使用時,BUFIO功能將取代BUFIO2、BUFIO2 clk和BUFPLL功能。與Spartan-6體系結(jié)構中的兩個DCM和一個PLL不同,7系列FPGA使用的CMT包含一個MMCM、一個PLL和專用內(nèi)存接口邏輯,這些邏輯在此時保留給Xilinx使用。這些功能現(xiàn)在支持DCM及其相關功能。CMT位于與SelectIO列相鄰的單獨列中,具有對I/O的專用訪問權限。DCM_SP和DCM_CLKGEN不再可用,它們的功能現(xiàn)在在MMCMs和PLL中受支持。
7系列FPGA不再支持全局時鐘(GCLK)輸入。現(xiàn)在,每一個支持Spartan-6 FPGA GCLK引腳功能的銀行都有四個支持時鐘的輸入引腳。
對于Spartan-6 FPGA設計人員來說,MMCM是一個新的功能塊。MMCM增加了分頻、精細相移、動態(tài)相移、反向時鐘輸出、CLKOUT6到CLKOUT4級聯(lián)以及其他一些功能。使用CLKOUT[0:3],MMCMs到BUFIO/BUFR的HPC連接取代了到BUFPLL的直接路由連接。還提供了更廣泛的DRP。對于通用高速I/O時鐘,使用PLL不再是推薦的CMT功能。PLL與BUFIO或BUFR沒有直接連接。不再支持CLKOUT0反饋。將MMCM用于高速I/O接口。級聯(lián)連接使用有限的CMT主干資源。還有一種新的斷電模式。完全支持輸入時鐘切換。Spartan-6 FPGA和7系列FPGA的工作范圍不同。DRP功能仍然可用。DRP功能位置和地址已更改。Spartan-6 FPGA DCM_SP不再受支持。要遷移到7系列FPGA,請使用MMCM和PLL.
Spartan-6 FPGA DCM_CLKGEN在7系列FPGA中不受直接支持。使用MMCM或PLL低帶寬輸入抖動濾波。還可以使用MMCM或PLL的DRP參考設計來完成M/D值的動態(tài)重新編程。
3.時鐘連接概述
表1對7系列FPGA時鐘連接進行了總結(jié)。
表1、7系列FPGA時鐘連接總結(jié)