引言:本文我們介紹區(qū)域時鐘資源。區(qū)域時鐘網(wǎng)絡是獨立于全局時鐘的時鐘網(wǎng)絡。不像全局時鐘,一個區(qū)域時鐘信號(BUFR)的跨度被限制在一個時鐘區(qū)域,一個I/O時鐘信號驅(qū)動一個單一的Bank。這些網(wǎng)絡對于源同步接口設計特別有用。7系列器件中的I/O Bank與時鐘區(qū)域的大小相同。為了理解區(qū)域時鐘是如何工作的,理解區(qū)域時鐘信號的信號路徑是很重要的。7系列設備中的區(qū)域時鐘資源和網(wǎng)絡由以下路徑和組件組成:
時鐘輸入I/O
I/O時鐘緩沖器:BUFIO
區(qū)域時鐘緩沖器:BUFR
區(qū)域時鐘網(wǎng)絡
多區(qū)域時鐘緩沖器:BUFMR/BUFMRCE
水平時鐘緩沖器:BUFH/BUFHCE
- 高性能時鐘
1.時鐘輸入I/O
每個時鐘區(qū)域在每個I/O Bank有四個專用時鐘I/O輸入管腳。當用作時鐘輸入時,可以驅(qū)動BUFIO、BUFMR和BUFR。每個I/O列都支持區(qū)域時鐘緩沖區(qū)(BUFR)。每個器件中有兩個I/O列。當時鐘管腳不用作時鐘輸入時,可以作為普通I/O使用。
當用作單端時鐘引腳時,則如全局時鐘緩沖器中所述,必須使用引腳對的P側(cè),因為時鐘直接連接僅存在于該引腳上。
2.I/O時鐘緩沖器:BUFIO
BUFIO在I/O Bank中驅(qū)動一個專用的時鐘網(wǎng)絡,獨立于全局時鐘資源。因此,BUFIOs非常適合于源同步數(shù)據(jù)捕獲(發(fā)送/接收器時鐘分布)。BUFIO由位于同一組的具有時鐘功能的I/O、來自MMCM的HPC或相同和相鄰區(qū)域的BUFMR驅(qū)動。在一個時鐘區(qū)域中,每個Bank有四個BUFIO。
每個BUFIO可以驅(qū)動同一區(qū)域/Bank中的單個I/O時鐘網(wǎng)絡。BUFIOs不能驅(qū)動邏輯資源(CLB、塊RAM、DSP等),因為I/O時鐘網(wǎng)絡只到達同一個Bank/時鐘區(qū)域中的I/O列。
2.1 BUFIO原句
BUFIO原句示意圖如圖1所示。輸入和輸出存在相位延遲。
圖1、BUFIO原句
2.2 BUFIO使用模式
BUFIO使用時鐘輸入I/O驅(qū)動I/O邏輯,如圖2所示。這種實現(xiàn)在源同步應用中經(jīng)常使用,在這些應用中,前向時鐘用于捕獲傳入數(shù)據(jù)。
圖2、BUFIO驅(qū)動I/O邏輯
圖2中,可以看到BUFIO只能驅(qū)動I/O邏輯資源,不能驅(qū)動FPGA邏輯資源。
3.區(qū)域時鐘緩沖器BUFR
BUFRs將時鐘信號驅(qū)動到時鐘區(qū)域內(nèi)的專用時鐘網(wǎng)絡,獨立于全局時鐘樹。每個BUFR可以驅(qū)動它所在區(qū)域的四個區(qū)域時鐘網(wǎng)絡。與BUFIOs不同,BUFRs可以驅(qū)動I/O邏輯和邏輯資源(CLB、塊RAM等)。BUFRs可以由具有時鐘功能的管腳、本地互連和MMCMs HPC(CLKOUT0到CLKOUT3)或相同和相鄰區(qū)域中的BUFMR驅(qū)動。此外,BUFR能夠產(chǎn)生分頻時鐘輸出。分頻值是1到8之間的整數(shù)。BUFRs是理想的源同步應用需要跨時鐘域或串并轉(zhuǎn)換。
每個I/O列都支持區(qū)域時鐘緩沖區(qū)。BUFRs還可以直接驅(qū)動MMCM時鐘輸入和BUFG。
3.1 BUFR原句
BUFR原句如圖3所示。
圖3、BUFR原句示意圖BUFR是時鐘輸入或輸出緩沖器,且可以對輸入時鐘頻率分頻。7系列FPGA BUFRs可以直接驅(qū)動MMCM時鐘輸入和BUFGs。
在圖3中可以,看到,BUFR原句附加使能信號CE和清零CLR信號,該控制信號為異步控制信號。當全局復位信號(GSR)為高時,BUFR無論CE處于何邏輯,BUFR均處于復位,直到GSR復位信號為低電平。
3.2 BUFR使用模式
BUFR分頻功能通過其屬性進行設置。
圖4、BUFR Verilog原句BUFRs是需要跨時鐘域或串并轉(zhuǎn)換的源同步應用的理想選擇。與BUFIOs不同,BUFRs能夠?qū)Τ齀OB之外的FPGA中的邏輯資源進行時鐘驅(qū)動。圖5是BUFR設計示例。
圖5、BUFR設計示例
4.區(qū)域時鐘網(wǎng)絡
除全局時鐘樹和網(wǎng)絡外,7系列器件還包含區(qū)域時鐘樹和網(wǎng)絡。區(qū)域時鐘樹也設計用于低偏斜和低功耗操作。未使用分支斷開。當使用所有邏輯資源時,區(qū)域時鐘樹還管理加載/扇出。
區(qū)域時鐘網(wǎng)絡不會在整個7系列設備中傳輸。相反,它們僅限于一個時鐘區(qū)域。一個時鐘區(qū)域包含四個獨立的區(qū)域時鐘網(wǎng)絡。要訪問區(qū)域時鐘網(wǎng)絡,必須實例化BUFRs
5.多區(qū)域時鐘緩沖器:BUFMR/BUFMRCE
BUFMR取代了以前Virtex架構(gòu)中對BUFR和BUFIO的多區(qū)域/Bank支持。每個Bank中有兩個BUFMR,每個緩沖區(qū)可以由同一個Bank中的一個特定MRCC驅(qū)動。MRCC管腳在管腳對的P管腳和N管腳的管腳名稱中都用MRCC標記(IO_L12P_T1_MRCC_12 or IO_L12N_T1_MRCC_12)。
BUFMR驅(qū)動同一地區(qū)的BUFIO和/或BUFRs/Bank和地區(qū)/以上和以下Bank。BUFR和BUFIO原語必須單獨實例化。當使用BUFR分頻(不在旁路中)時,必須通過插入CE引腳的來禁用BUFMR,必須重置BUFR(通過插入CLR來清除),然后使能CE信號。此順序確保所有BUFR輸出時鐘相位對齊。如果不使用BUFRs中的分頻功能,那么電路拓撲只需要使用BUFMR。BUFMR輸入包括:
MRCC管腳
同一時鐘區(qū)域的GT收發(fā)器時鐘
5.1 BUFMR/BUFMRCE原句
BUFMR/BUFMRCE原句如圖6所示。
圖6、BUFMR/BUFMRCE原句
圖7、BUFMR例化語句
圖8、BUFMRCE例化語句要將BUFMR或BUFMRCE與BUFIOs一起使用,接口引腳必須在三個匹配Bank范圍內(nèi)。同樣,如果與BUFRs一起使用,則邏輯必須最多適合三個區(qū)域(如果使用三個BUFRs)。如果內(nèi)存接口放在BUFRs/BUFIOs所在的同一個Bank或區(qū)域中,那么從BUFMR到該Bank或區(qū)域中的那些BUFHs/BUFIOs的連接可能會受到限制。圖9顯示了BUFMRCE的拓撲結(jié)構(gòu)。
圖9、BUFMRCE的拓撲結(jié)構(gòu)
CE_TYPE屬性應始終設置為SYNC,以確保時鐘輸出無故障。如果BUFMRCE的時鐘輸出停止(例如,通過取消CE),則必須在再次啟用BUFMRCE后重置BUFR(CLR)。BUFMRCE上的CE的主要目的是為BUFRs和BUFIOs提供同步的、相位對齊的時鐘。
6.水平時鐘緩沖器:BUFH/BUFHCE
水平時鐘緩沖器(BUFH)在單個區(qū)域驅(qū)動水平全局時鐘骨干(圖2-26)。每個地區(qū)有12個BUFH可用。每個BUFH都有一個時鐘啟用引腳(CE),允許動態(tài)關閉時鐘。BUFHs可通過以下方式驅(qū)動:
相同區(qū)域MMCM/PLL輸出
BUFG輸出
相同或者水平相鄰時鐘GT輸出時鐘
本地內(nèi)部互聯(lián)
來自相同水平相鄰的區(qū)域或者Bank的左側(cè)或者右側(cè)I/O Bank的時鐘輸入
圖10、BUFH和BUFHCE原句
圖11、BUFHCE例化語句如圖12所示,要使用BUFH,邏輯必須適合水平相鄰的兩個區(qū)域(左和右)。時鐘使能引腳可以完全關閉時鐘,從而實現(xiàn)潛在的節(jié)能。與驅(qū)動兩個相鄰區(qū)域的BUFG相比,BUFH的功耗和抖動更低。
圖12、水平時鐘緩沖示例
7.高性能時鐘
7系列FPGA每個I/O Bank包含四個HPC。這些時鐘與I/O中的BUFIOs和BUFRs直接短差分連接。因此,這些時鐘表現(xiàn)出非常低的抖動和最小的占空比失真。在I/O列中,HPC連接到BUFIO/BUFRs并驅(qū)動I/O邏輯。由于CMT列位于I/O列旁邊,HPC直接驅(qū)動器進入I/O列旁邊的I/O Bank CMT.HPCs由MMCM的CLKOUT[3:0]驅(qū)動(僅限)。
7.1時鐘門控節(jié)能
7系列FPGA時鐘體系結(jié)構(gòu)提供了一種實現(xiàn)時鐘選通的簡單方法,用于關閉部分設計。大多數(shù)設計包含幾個未使用的BUFGCE或BUFHCE資源。時鐘可以驅(qū)動BUFGCE或BUFHCE輸入,BUFGCE輸出可以驅(qū)動不同的邏輯區(qū)域,BUFHCE可以驅(qū)動單個區(qū)域。例如,如果所有需要始終運行的邏輯都被限制在幾個時鐘區(qū)域,那么BUFGCE輸出可以驅(qū)動這些區(qū)域?;蛘撸绻鸅UFHCE驅(qū)動單個區(qū)域中的接口,則該接口可能在非操作期間關閉。切換BUFGCE或BUFHCE的enable提供了一種簡單的方法來停止可用于節(jié)能的邏輯區(qū)域中的所有動態(tài)功耗。