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