Xilinx之Ultrascale系列時(shí)鐘資源與驅(qū)動(dòng)關(guān)系

一、前言
????????Ultrascale是賽靈思開發(fā)的支持包含步進(jìn)功能的增強(qiáng)型FPGA架構(gòu),相比7系列的28nm工藝,Ultrascale采用20nm的工藝,主要有2個(gè)系列:Kintex和Virtex。Ultrascale+采用16ns,有3個(gè)系列:Artix,Kintex,Virtex。不僅是工藝制程方面,在其他方面也存在較大改進(jìn),如時(shí)鐘資源與架構(gòu),本文將重點(diǎn)介紹Ultrascale的時(shí)鐘資源與架構(gòu),Ultrascale+和Ultrascale大體上相似。
二、時(shí)鐘架構(gòu)
? ? ? ? 2.1 全局時(shí)鐘輸入
????????芯片外部的全局時(shí)鐘通過FPGA的全局時(shí)鐘輸入(GC)進(jìn)入到成對(duì)的差分時(shí)鐘引腳。在每個(gè)Bank內(nèi)都有4個(gè)GC,可以直接進(jìn)入到全局時(shí)鐘緩沖器,MMCM,PLL等。
? ? ? ? 2.2?I/O bank
????????每個(gè)I/O bank都是處于一個(gè)單獨(dú)的時(shí)鐘區(qū)域中,包含了52個(gè)I/O引腳,還有4個(gè)全局時(shí)鐘GC輸入,4個(gè)GT。每個(gè)全局時(shí)鐘輸入引腳都可以連接到一個(gè)差分或單個(gè)時(shí)鐘輸入側(cè),可以配置成任意的I/O標(biāo)準(zhǔn),包含差分端口標(biāo)準(zhǔn),并且有一個(gè)P側(cè)和N側(cè),P側(cè)和N側(cè)是主從關(guān)系,P為主,N為從。
????????2.3?時(shí)鐘軌道
????????從時(shí)鐘進(jìn)入方向兩個(gè)角度考慮,分為水平時(shí)鐘和垂直時(shí)鐘,通過水平時(shí)鐘結(jié)構(gòu)圖,看出時(shí)鐘架構(gòu)中組成有普通CR列,特殊CR(帶有PCIE,配置,系統(tǒng)監(jiān)視器)類,I/O列,GT列,HCS和物理時(shí)鐘。其中,CR(Clock Region)為時(shí)鐘區(qū)域,HCS(Horizontal Clock Spine)為水平時(shí)鐘脊。
????????CR和7系列的時(shí)鐘區(qū)域類似,包含了可配置邏輯塊CLBs,DSP,塊狀RAM,相關(guān)的時(shí)鐘。一個(gè)CR縱向上包含60個(gè)CLBs,24個(gè)DSP和12個(gè)塊狀RAMs,HSC將會(huì)水平穿過中間位置。
????????HCS包含了水平布線資源和水平分布資源,葉子時(shí)鐘緩沖器,時(shí)鐘網(wǎng)絡(luò)互連資源,根時(shí)鐘網(wǎng)絡(luò),時(shí)鐘緩沖器直接進(jìn)入HCS,每個(gè)HCS有24個(gè)水平分布式軌道和12個(gè)水平布線軌道。
????????鄰近輸入/輸出塊列是物理層塊PHY,它具有CMTs,全局時(shí)鐘緩沖器,全局時(shí)鐘多路選擇結(jié)構(gòu),I/O邏輯管理功能。水平時(shí)鐘布線軌道和分布軌道在水平方向上驅(qū)動(dòng)進(jìn)入各個(gè)時(shí)鐘區(qū)域CRs,垂直布線和分布軌道在垂直方向上驅(qū)動(dòng)鄰近的時(shí)鐘域CRs,分布軌道可以被布線軌道或PHY中的時(shí)鐘單元直接驅(qū)動(dòng)。I/O端口可以直接被PHY中的時(shí)鐘驅(qū)動(dòng)或者是通過布線軌道來自鄰近的PHY,CMT包含了一個(gè)混合模式時(shí)鐘管理器MMCM和2個(gè)鎖相環(huán)PLLs。
?

???????垂直時(shí)鐘是在垂直方向上進(jìn)行驅(qū)動(dòng),在垂直方向上,沒一列時(shí)鐘域的中間位置都存在兩類時(shí)鐘軌道貫穿芯片:24條垂直布線軌道和24條垂直分布軌道,但在靠近GT列旁邊CR列中,則是在CR列中間兩側(cè)位置各12條垂直布線軌道和12條垂直分布軌道。

?三、時(shí)鐘緩沖器
????? ?Ultrascale器件有三種全局時(shí)鐘緩沖器:BUFGCTRL,BUFGCE,BUFGCE_DIV,還有一種本地BUFCE_LEAF時(shí)鐘緩沖器,它可以驅(qū)動(dòng)葉子時(shí)鐘從水平分布軌道到達(dá)器件的不同位置。BUFGCTRL可以生成其他類型如BUFGMUX, BUFGMUX1, BUFGMUX_CTRL和?BUFGCE_1。
????????PHY的全局時(shí)鐘包含了BUFGCTRL,BUFGCE,BUFGCE_DIV三類全局時(shí)鐘緩沖器,它們都能被鄰近I/O bank中的4個(gè)GC引腳驅(qū)動(dòng),也可被所屬PHY中的MMCM和PLL驅(qū)動(dòng)。然后這些時(shí)鐘緩沖器驅(qū)動(dòng)整個(gè)器件的布線軌道和分布軌道。每個(gè)PHY包含了24個(gè)BUFGCTRL,8個(gè)BUFGCE,4個(gè)BUFGCE_DIV,但只能同時(shí)使用其中的24個(gè)。
????????3類全局時(shí)鐘緩沖器的端口差異如下圖

? ? ? ??3.1?BUFGCTRL
????????BUFGCTRL用于在兩個(gè)時(shí)鐘輸入源間進(jìn)行切換,結(jié)構(gòu)和選擇邏輯如下圖

????????控制端口選擇的真值表,其中最后一行Old Input是指在狀態(tài)獲取到之前的時(shí)鐘有效輸入值。

????????BUFGCTRL同時(shí)支持級(jí)聯(lián),可級(jí)聯(lián)成環(huán),如下圖所示

????BUFGCTRL衍生出的其他幾個(gè)全局時(shí)鐘的原語輸入關(guān)系如下表?:

3.2 BUFGCE_1
????????BUFGCE_1的端口相對(duì)簡(jiǎn)單,只有1個(gè)輸入端口I,一個(gè)使能端口CE和和1個(gè)輸出端口O,BUFGCTRL將相應(yīng)的一些端口設(shè)置為高低電平也可實(shí)現(xiàn)BUFGCE_1的功能。

3.3 BUFGMUX和BUFGMUX_1
????????BUFGMUX有兩個(gè)時(shí)鐘輸入端口,一個(gè)選擇端口和一個(gè)時(shí)鐘輸出端口,通過將BUFGCTRL的一些輸入引腳連接邏輯高電平或低電平,關(guān)系如下圖??

????????BUFGMUX_1是上升沿敏感,高電平保持,BUFGMUX和BUFGMUX_1的位置都可以進(jìn)行手動(dòng)約束。
?3.4 BUFGMUX_CTRL
????BUFGMUX_CTRL也是2個(gè)時(shí)鐘端口輸入,1個(gè)選擇端口,一個(gè)時(shí)鐘輸出端口的時(shí)鐘緩沖器,和BUFGCTRL的關(guān)系如下圖,

????????????BUFGMUX_CTRL用S端口作為選擇端口,S端口可以在任何時(shí)候切換,也不會(huì)造成干擾。?S端口的建立和保持時(shí)間取決于輸出端口在切換時(shí)鐘前是否通過一個(gè)之前選擇時(shí)鐘的額外脈沖信號(hào)。
3.5 BUFCE_LEAF
BUFCE_LEAF是一個(gè)有使能端口CE,可以讓葉子單元驅(qū)動(dòng)水平的HCS行,也是一個(gè)葉子時(shí)鐘緩沖器的交匯口,驅(qū)動(dòng)帶有單個(gè)時(shí)鐘輸入的不同區(qū)域。當(dāng)使能端口CE為低電平時(shí)輸出為0,高電平時(shí)輸出為輸入I
3.6 BUFGCE_DIV
????????BUFGCE_DIV有3個(gè)輸入端口I、使能CE、清零CLR和輸出端口O,可以直接驅(qū)動(dòng)布線軌道和分布軌道,并且可以進(jìn)行時(shí)鐘的1-8分頻。BUFGCE_DIV的輸入端口和屬性如下


????????BUFG_GT是被高速收發(fā)器GT和射頻SOC中的ADC/DAC所驅(qū)動(dòng),BUFG_GT是這些模塊實(shí)現(xiàn)驅(qū)動(dòng)時(shí)鐘布線軌道的唯一方式,用于GT時(shí)鐘的分頻。BUFG_GT_SYNC是BUFG_GT的同步器,是靠Vivado軟件自動(dòng)插入,不會(huì)在設(shè)計(jì)文件中體現(xiàn),可以直接驅(qū)動(dòng)布線軌道和分布軌道,也屬于時(shí)鐘緩沖器。
?????????在UltraScale器件中每個(gè)GT Quad有24個(gè)BUFG_GT和10個(gè)BUFG_GT_SYNC,UltraScale+器件中每個(gè)GT Quad有24個(gè)BUFG_GT和14個(gè)BUFG_GT_SYNC。BUFG_GT的端口相對(duì)較多,如下圖。

? 3.7 BUFG_PS
????????BUFG_PS是只有一個(gè)輸入,一個(gè)輸出的簡(jiǎn)單時(shí)鐘緩沖器,屬于Zynq UltraScale+系列中PS的時(shí)鐘緩沖器,可以讓時(shí)鐘從PS進(jìn)入到PL中。共有18個(gè)PS 時(shí)鐘可以驅(qū)動(dòng)BUFG_PS,布局位置處于PS的旁邊。
四、時(shí)鐘驅(qū)動(dòng)關(guān)系
????? ? 在一個(gè)CR中,垂直布線軌道和水平布線軌道是互通的,垂直分布軌道可以單向通到水平分布軌道,但分布軌道不能通向布線軌道。布線軌道也可以驅(qū)動(dòng)鄰近CR的布線軌道和分布軌道,分布軌道可以驅(qū)動(dòng)鄰近CR的水平分布軌道。
????????時(shí)鐘進(jìn)入時(shí)鐘緩沖器有兩種方式。
????????方式一:時(shí)鐘可以直接通過布線軌道進(jìn)入到CR的中心位置,即圖中的root,然后可以驅(qū)動(dòng)水平分布軌道和垂直分布軌道。通過這種方式,時(shí)鐘緩沖器可以驅(qū)動(dòng)到CR內(nèi)一個(gè)特點(diǎn)位置,時(shí)鐘緩沖器在該位置上可以先通過垂直分布軌道,再水平分布軌道進(jìn)入到時(shí)鐘點(diǎn)。時(shí)鐘點(diǎn)可以通過當(dāng)前CR或鄰近CR中帶有使能端口CE的葉子時(shí)鐘驅(qū)動(dòng),這種分布方案可以將根節(jié)點(diǎn)移動(dòng)到指定的位置來改善,降低偏斜。
? ? ? ? 方式二:時(shí)鐘點(diǎn)可以被本區(qū)域內(nèi)或鄰近區(qū)域內(nèi)帶有使能端口CE的葉子時(shí)鐘驅(qū)動(dòng),時(shí)鐘點(diǎn)驅(qū)動(dòng)時(shí)鐘緩沖器,時(shí)鐘緩沖器再進(jìn)入分布軌道,這將減少時(shí)間插入時(shí)延。

五、縮略詞
CR:? Clock Region 時(shí)鐘區(qū)域
GT:Gigabit Transceivers G比特收發(fā)器
GC:Global Clock 全局時(shí)鐘
HCS:Horizontal Clock Spine 水平時(shí)鐘脊
MMCM:Mixed-mode Clock?Manager 混合模式時(shí)鐘管理器
PHY:Physical Layer 物理層
PS:?? Processor Sytem 處理器系統(tǒng)
SYSMON:System Monitor 系統(tǒng)監(jiān)視器
PL:Programmable Logic 可編程邏輯
六、參考
用戶手冊(cè):ug572-ultrascale-clocking.pdf