引言7系列FPGA具有多個(gè)時(shí)鐘路由資源,以支持各種時(shí)鐘方案和要求,包括高扇出、短傳播延遲和極低的偏移。為了最好地利用時(shí)鐘路由資源,必須了解如何從PCB到FPGA獲取用戶時(shí)鐘,確定哪些時(shí)鐘路由資源是最佳的,然后通過使用適當(dāng)?shù)腎/O和時(shí)鐘緩沖器來訪問這些時(shí)鐘路由資源。該章節(jié)包括:
時(shí)鐘緩沖選擇考慮
時(shí)鐘輸入管腳
1.時(shí)鐘緩沖器選擇考慮
7系列FPGA擁有豐富的時(shí)鐘資源。各種緩沖器類型、時(shí)鐘輸入管腳和時(shí)鐘連接,可以滿足許多不同的應(yīng)用需求。選擇合適的時(shí)鐘資源可以改善布線、性能和一般FPGA資源利用率。BUFGCTRL(最常用作BUFG)是最常用的時(shí)鐘布線資源。這些真正的全局時(shí)鐘可以連接到器件的任何位置。但是在某些情況下,出于性能、功能或時(shí)鐘資源可用性的原因,使用備用時(shí)鐘緩沖器更為有利。最好在以下情況下使用BUFG:
設(shè)計(jì)或設(shè)計(jì)的一部分可以覆蓋整個(gè)器件的大面積區(qū)域,功能的本地化是不可能的。
硬件功能塊,如塊RAM、DSP或集成IP,跨越多個(gè)時(shí)鐘區(qū)域,級聯(lián)或需要連接到不在附近的CLB。
同步(glitch free)或異步時(shí)鐘切換,應(yīng)用程序能夠從停止的時(shí)鐘切換或選擇具有不同頻率的時(shí)鐘(例如,用于降低功耗)。
時(shí)鐘使能(CE)功能可用于在非運(yùn)行期間降低功率。然而,在大多數(shù)情況下,由于時(shí)序(CE延遲)的限制,CE不能夠用于在時(shí)鐘元件處模擬真實(shí)的CE邏輯功能。
CE功能可用于在器件啟動后同步已初始化的時(shí)鐘元件。
BUFR和BUFIO組合的主要目的是支持源同步接口(如圖1所示)。當(dāng)一個(gè)接口被放置在一個(gè)區(qū)域中時(shí),BUFIO對SelectIOs的高速側(cè)進(jìn)行時(shí)鐘控制,BUFR以較低的速度將解串器/串行器側(cè)時(shí)鐘送入提供時(shí)鐘域傳輸功能的FPGA邏輯中。對于需要更多邏輯和/或I/O的接口,BUFMR(BUFMRCE)用于將時(shí)鐘域傳輸功能擴(kuò)展到上面和下面的(above and below)時(shí)鐘區(qū)域。當(dāng)MMCM/PLL不能使用或不可用于分頻功能時(shí),需要與源同步I/O用例無關(guān)的分頻時(shí)鐘的某些類型的應(yīng)用程序可以將BUFR用作簡單的時(shí)鐘分頻器。在這種情況下,必須特別注意時(shí)序和偏移,因?yàn)檫@不是BUFR的主要目的。有關(guān)選擇資源計(jì)時(shí)的更多信息,請參閱UG471,7系列FPGA SelectIO資源用戶指南。
水平時(shí)鐘緩沖器BUFH(BUFHCE)嚴(yán)格來說是一個(gè)區(qū)域資源,不能跨越上面或下面的時(shí)鐘區(qū)域。與BUFR不同,BUFH沒有分頻時(shí)鐘的能力。
BUFHs類似于全球時(shí)鐘資源,只是在區(qū)域基礎(chǔ)上跨越兩個(gè)水平區(qū)域。
BUFHs能夠作為MMCM/PLL的反饋,時(shí)鐘插入延遲可以得到補(bǔ)償。
當(dāng)接口或邏輯云位于一個(gè)時(shí)鐘區(qū)域或兩個(gè)水平相鄰的時(shí)鐘區(qū)域時(shí),BUFHs是首選的時(shí)鐘資源。
BUFH還具有時(shí)鐘使能引腳(BUFHCE),當(dāng)邏輯或接口及其相關(guān)邏輯未激活時(shí),可使用該引腳降低動態(tài)功耗。
時(shí)鐘使能功能可在時(shí)鐘周期的基礎(chǔ)上提供門控時(shí)鐘。
與全局時(shí)鐘樹類似,BUFH還可以連接到CLB(enable/reset)中的非時(shí)鐘資源,具有更好的偏移特性。
BUFH也可用于同步啟動時(shí)鐘區(qū)域中時(shí)鐘元件。
2.時(shí)鐘輸入規(guī)則
外部用戶時(shí)鐘必須通過稱為clock-capable(CC)輸入的差分時(shí)鐘管腳對引入FPGA。時(shí)鐘輸入管腳支持對內(nèi)部全局和區(qū)域時(shí)鐘資源的專用高速訪問。時(shí)鐘輸入管腳使用專用路由,必須用于時(shí)鐘輸入,以保證各種時(shí)鐘的時(shí)序特征。使用本地互聯(lián)的一般目的I/O不應(yīng)用于時(shí)鐘信號。
圖2、_CC時(shí)鐘管腳連接每個(gè)I/O Bank位于一個(gè)時(shí)鐘區(qū)域,包括50個(gè)I/O引腳。在每個(gè)I/O bank中每個(gè)I/O組中的50個(gè)I/O管腳中,有4個(gè)支持時(shí)鐘的輸入管腳對(共8個(gè)管腳)。每個(gè)時(shí)鐘輸入:
可連接到PCB上的差分或單端時(shí)鐘
可為任何I/O標(biāo)準(zhǔn)配置,包括差分I/O標(biāo)準(zhǔn)
有一個(gè)P-side(主)和一個(gè)N-side(從)
如果單端時(shí)鐘連接到差分時(shí)鐘管腳對的P側(cè),則N側(cè)不能用作另一個(gè)單端時(shí)鐘管腳,它只能用作用戶I/O。時(shí)鐘輸入管腳在每個(gè)I/O Bank中有2個(gè)MRCCs和2個(gè)SRCCs對。SRCC訪問單個(gè)時(shí)鐘區(qū)域和全局時(shí)鐘樹,以及同一列中上下的其他CMTs。SRCC可以驅(qū)動:
同一時(shí)鐘區(qū)域內(nèi)的區(qū)域時(shí)鐘線(BUFR、BUFH、BUFIO)。
同一時(shí)鐘區(qū)域和相鄰時(shí)鐘區(qū)域的CMT。
位于器件的上/下半部分的全局時(shí)鐘線(BUFG)。
MRCCs可以訪問多個(gè)時(shí)鐘區(qū)域和全局時(shí)鐘樹。MRCCs的功能與SRCCs相同,還可以驅(qū)動多時(shí)鐘區(qū)域緩沖器(BUFMR)來訪問多達(dá)三個(gè)時(shí)鐘區(qū)域。如果不用作時(shí)鐘,時(shí)鐘輸入管腳可以用作常規(guī)I/O。當(dāng)用作常規(guī)I/O時(shí),支持時(shí)鐘的輸入引腳可以配置為任何單端或差分I/O標(biāo)準(zhǔn)。時(shí)鐘輸入管腳可以連接到同一時(shí)鐘區(qū)域的CMT,和該時(shí)鐘區(qū)域的上下的CMT,但具有一定的限制。
2.1 單個(gè)時(shí)鐘驅(qū)動單個(gè)CMT
當(dāng)時(shí)鐘輸入驅(qū)動單個(gè)CMT時(shí),時(shí)鐘輸入管腳和CMT(MMCM/PLL)必須在同一時(shí)鐘區(qū)域。
2.2 單個(gè)時(shí)鐘驅(qū)動多個(gè)CMTs
一個(gè)時(shí)鐘輸入可以驅(qū)動同一列中的其他CMT。在這種情況下,一個(gè)MMCM/PLL必須被放置在與時(shí)鐘輸入管腳相同的時(shí)鐘區(qū)域中。在相鄰區(qū)域放置附加的CMT是更為優(yōu)化的,但是在同一列中,可以驅(qū)動比一個(gè)CMT更遠(yuǎn)的CMT。CMT中使用的資源必須相同,才能自動放置此配置而不使用CLOCK_DEDICATED_ROUTE約束。如果需要混合MMCMs/PLL,則應(yīng)首先將其置于同一CMT中。如果有必要從不在同一時(shí)鐘區(qū)域的時(shí)鐘輸入管腳驅(qū)動CMT,并且在與時(shí)鐘輸入管腳相同的時(shí)鐘區(qū)域中沒有MMCM/PLL,則必須設(shè)置屬性CLOCK_DEDICATED_ROUTE = BACKBONE。在這種情況下,MMCM或PLL不能正確地將輸出與輸入時(shí)鐘對齊,即存在時(shí)鐘偏移。在同一列中專用資源驅(qū)動CMT是有限制的。一些Xilinx IP使用這些資源,從而使它們不可用于其他設(shè)計(jì)用途,并導(dǎo)致設(shè)計(jì)無法布線。如果到其他時(shí)鐘區(qū)域的專用路由不可用,則將CLOCK_DEDICATED_ROUTE設(shè)置為FALSE將允許使用本地互連邏輯,盡管這會導(dǎo)致更長的無補(bǔ)償延遲。如果由普通的IO管腳驅(qū)動全局時(shí)鐘資源,比如BUFG或者M(jìn)MCM,則CLOCK_DEDICATED_ROUTE = FALSE。
2.3 時(shí)鐘輸入管腳放置規(guī)則
在創(chuàng)建初始設(shè)計(jì)之前,手動選擇支持時(shí)鐘的輸入引腳時(shí),有兩個(gè)主要考慮因素:
確保支持時(shí)鐘輸入可以連接到所需的時(shí)鐘資源。表所示的布局規(guī)則確保連通性。
確保所需的時(shí)鐘資源是可用的,并且沒有被設(shè)計(jì)的另一部分使用。確保通過時(shí)鐘輸入管腳進(jìn)入的外部時(shí)鐘和來自IP的內(nèi)部生成時(shí)鐘不會在訪問內(nèi)部時(shí)鐘網(wǎng)絡(luò)時(shí)發(fā)生沖突,最好的方法是構(gòu)建包含所需時(shí)鐘網(wǎng)絡(luò)和IP的初始設(shè)計(jì),并通過實(shí)現(xiàn)工具運(yùn)行它。這大大增加了檢查和信心,即引腳不需要由于時(shí)鐘原因而改變。
遵循表2-1所示的放置規(guī)則,以確保具有時(shí)鐘輸入引腳選擇能夠訪問所需的內(nèi)部時(shí)鐘網(wǎng)絡(luò)。每個(gè)I/O Bank位于在一個(gè)時(shí)鐘區(qū)域中。注:通過確保正確選擇具有時(shí)鐘輸入引腳的位置,避免昂貴的電路板重新設(shè)計(jì)和差的時(shí)鐘時(shí)序。
表1、時(shí)鐘輸入放置規(guī)則在相同的封裝器件之間遷移時(shí),將BUFG組織為16個(gè)top和16個(gè)bottom資源的上/下中心線可能相對于其他列發(fā)生了移動。具體地說,I/O列會更改與頂部/底部BUFGs的對齊方式。這會導(dǎo)致訪問BUFG的時(shí)鐘輸入引腳的不同對齊方式。圖1顯示了使用XC7K325T和XC7K160T器件的中心對齊示例。在這種情況下,當(dāng)從相同封裝中的大器件移動到小器件時(shí),中心線較低(相對于I/O列),或者從小器件移動到大器件時(shí),中心線更高。如果時(shí)鐘輸入引腳被定位,設(shè)計(jì)可以是不可布線的。
圖3、使用XC7K325T和XC7K160T器件的中心對齊示例當(dāng)遷移到相同封裝的一個(gè)較小的器件時(shí),也可能會出現(xiàn)這樣的情況:較大器件的南側(cè)的所有BUFG都已被利用,而沒有更多的BUFG可用。見UG475:7系列FPGA封裝和引腳輸出規(guī)范,用于BUFG和I/O組對準(zhǔn)。另外,具有多個(gè)超級邏輯區(qū)域(SLR)的器件在同一個(gè)包中從單個(gè)SLR中的單片路徑遷移時(shí)可能具有類似的限制。
審核編輯:郭婷
?
評論
查看更多