Xilinx 7系列FPGA的時鐘結(jié)構(gòu)解析

2023-08-31 11:25:39 來源:硬件王國

導(dǎo)讀:

通過上一篇文章“時鐘管理技術(shù)”,我們了解Xilinx 7系列FPGA主要有全局時鐘、區(qū)域時鐘、時鐘管理塊(CMT)。 通過以上時鐘資源的結(jié)合,Xilinx 7系列FPGA可實現(xiàn)高性能和可靠的時鐘分配,以滿足各種設(shè)計需求,并提供時鐘驅(qū)動邏輯資源的靈活性和可擴(kuò)展性。那今天我們一起解剖Xilinx 7系列FPGA的時鐘結(jié)構(gòu),看看它到底如何實現(xiàn)如此豐富的時鐘資源并能夠做到完美平衡。

先打一針預(yù)防針,基于FPGA的時鐘結(jié)構(gòu)相關(guān)知識本身比較復(fù)雜,讀者必須認(rèn)真跟著節(jié)奏閱讀,我將以更形象和更通俗易懂的描述/示圖帶大家了解FPGA整個時鐘樹框架、涉及的名稱概念、區(qū)域時鐘、時鐘管理塊(CMT)等概念。


(資料圖片僅供參考)

先拋出一個問題:FPGA如果不設(shè)計合適的時鐘結(jié)構(gòu)會有什么后果?

如上圖所示:CC表示引入外部時鐘的引腳,其他幾個黑點(diǎn)分布在不同bank的邏輯電路,且為同一時鐘域的邏輯電路,要求時鐘同步。通過上一篇文章大家可知,因為布線長度不同,很容易出現(xiàn)時鐘skew(偏斜),沒法同步。

通過對比上面兩個示意圖,大家可能知道答案了。左側(cè)是沒有專用的時鐘結(jié)構(gòu),分散在不同bank的邏輯僅靠FPGA內(nèi)部IO布線資源不可能做到時鐘同步。而右側(cè)的紫色、綠色、黃色“柱”都是FPGA的專用時鐘布線通道,均勻排列并橫跨到每一個bank。CC引腳可直接連到這些專用時鐘通道上。理想狀態(tài)下,F(xiàn)PGA內(nèi)的任何地方都可以做到時鐘同步。

有了這個“引子”,再理解下文的時鐘架構(gòu)解剖就簡單多了。

Xilinx-7系列時鐘架構(gòu)

高層次時鐘架構(gòu)視圖(xilinx 7系列原文檔)

注:不熟悉FPGA時鐘結(jié)構(gòu)的讀者第一次看到xilinx 原文檔和學(xué)習(xí)肯定有點(diǎn)懵圈,很難理解圖示的時鐘資源劃分。我先詳細(xì)解釋視圖中的每一個名詞概念,如果暫時不理解概念沒有關(guān)系,因為我在后文重新畫了一張時鐘架構(gòu)圖,用更通俗易懂的話總結(jié)其內(nèi)部時鐘結(jié)構(gòu)的設(shè)計特點(diǎn),我相信讀者會柳暗花明又一村。

Horizontal Center:“水平中心”這里指的是一個水平分界線的概念,沒有特定的時鐘電路。它將FPGA平均劃分為上下兩個區(qū)域的分界線。horizontal center 的主要作用是有利于幫助設(shè)計人員布局和約束時鐘資源,方便設(shè)計人員在特定區(qū)域內(nèi)管理和規(guī)劃時鐘資源在FPGA布局中的約束和分隔。限定某些時鐘資源的范圍,使其僅在特定的區(qū)域內(nèi)使用。

Clock Backbone:時鐘骨干(從分界線角度也可將它看作是垂直中心線,不過時鐘骨干有特定的時鐘資源電路)。它將FPGA分為對稱的左右兩個區(qū)域,從名字上可知,這是FPGA的時鐘主干通道,所有的全局時鐘布線均要從時鐘骨干經(jīng)過。

Clock Region:時鐘區(qū)域,F(xiàn)PGA內(nèi)部被分成了很多個時鐘區(qū)域。每個時鐘區(qū)域的高度為50個CLB,并跨越芯片一半“面積”(可以先簡單理解為,一個時鐘區(qū)域?qū)?yīng)有一個IO bank),讀者可跳過此處,參見下文“clock region”先對時鐘區(qū)域的概念、包含哪些資源做大致了解。

HROW:時鐘區(qū)域的水平時鐘行(Horizontal ROW)。位于時鐘區(qū)域水的水平中心線,從水平方向貫穿每個時鐘區(qū)域的中心區(qū)域,將時鐘區(qū)域分成上下完全一致的兩部分。HROW上方和下方的時鐘資源通過HROW進(jìn)行連接和路由。HROW主要用于在時鐘區(qū)域內(nèi)傳遞和分配時鐘信號,使時鐘能夠到達(dá)區(qū)域中的各個時鐘點(diǎn)和時序資源。

I/O Column:I/O"列",FPGA通常將一組I/O (輸入/輸出引腳)資源稱為一個I/O BANK,每個BANK大小一樣。布局上,這些I/O BANK 對稱位于Clock Backbone(垂直中心線)的兩側(cè),所以從物理布局上看,一邊的I/O Banks確實有”列“的意思(參見下文時鐘架構(gòu)簡圖)。這種布局設(shè)計可以提供更好的布線和連接選項,以滿足不同的設(shè)計需求。

CMT Column:CMT“列”,同理,對應(yīng)每一個BANK都有一個CMT(時鐘管理塊)。物理布局上,7系列FPGA也是有左右兩”列“CMT Columns 。每個CMT 包含一個混合模式時鐘管理器(Mixed-Mode Clock Manager,MMCM)和一個鎖相環(huán)(Phase-Locked Loop,PLL),它們提供了時鐘頻率合成、去抖動和濾波等功能。CMT Backbone把各個CMT 連接在一起。

CMT Backbone:時鐘管理器(CMT)骨干,CMT之間的互連通道。它跨越了整個FPGA的高度,它提供了上下相鄰的時鐘區(qū)域的時鐘傳遞路徑和連接。CMT Backbone在整個FPGA中起到關(guān)鍵的作用,確保時鐘信號的準(zhǔn)確傳遞和同步。

GT Column:GT“列”,同理,F(xiàn)PGA通常將一組GT(一個或多個高速串行通道)資源稱為一個GT BANK。物理布局上,7系列FPGA也是有左右兩“列“GT Banks 。GT是用于支持高速數(shù)據(jù)傳輸?shù)奶厥夤δ苣K,通常用于實現(xiàn)高速串行接口協(xié)議,如PCI Express、EthernetUSB等。GT Column通常與I/O Column和CMT Column相鄰。

時鐘結(jié)構(gòu)、資源解剖

注:

假設(shè)xilinx 7系列某一款FPGA共8個I/O bank,我用上圖詳細(xì)解剖其時鐘結(jié)構(gòu):如圖可見,共劃分8個Clock Region(時鐘區(qū)域),Clock Backbone(時鐘骨干)將8個時鐘區(qū)域分成左邊4個和右邊4個兩個對稱部分。然后HROW從水平方向貫穿每個時鐘區(qū)域的中心,并與時鐘骨干相連。每個時鐘區(qū)域都含有一個CMT(時鐘管理塊),然后每個時鐘區(qū)域的CMT則通過CMT Backbone(CMT 骨干)相連,且CMT骨干還與HROW相連。因此任何一個時鐘區(qū)域內(nèi)的時鐘都可通過CMT骨干、HROW、時鐘骨干到達(dá)另一個時鐘區(qū)域。

看上去有點(diǎn)像人背上的骨骼,通過脊柱均勻?qū)ΨQ的分布到各個時鐘區(qū)域。

注:

下圖則是將一個時鐘區(qū)域內(nèi)的主要資源全部示意出來:包括CLB,塊RAMDSP,GT,IO Bank,CMT等時鐘資源。結(jié)合本合集的第一篇文章,是否發(fā)現(xiàn),F(xiàn)PGA其實就這么回事。

總結(jié)來說,F(xiàn)PGA實際上就是被分成很多個大小一樣時鐘區(qū)域,每個時鐘區(qū)域既可單獨(dú)工作又可通過全局時鐘Clock BackBone統(tǒng)一工作,同時水平相鄰的時鐘區(qū)域又可通過HROW來統(tǒng)一工作,上下相鄰的時鐘區(qū)域又可通過CMT Backbone統(tǒng)一工作。

時鐘區(qū)域(clock region)

Vivado 7系列某FPGA implementation 的device視圖

注:

閱讀到這里,大家應(yīng)該對“時鐘區(qū)域”的概念有了一定的了解,為了大家對時鐘區(qū)域有更真實形象的理解,我截取了Xilinx 開發(fā)工具vivado 下某設(shè)備的布局布線視圖。

Xilinx FPGA中的X0Y0等類似的命名表示一個時鐘區(qū)域(Clock Region)。Xilinx FPGA使用X、Y和數(shù)字索引來命名時鐘區(qū)域塊。X和Y表示FPGA芯片的行和列,而數(shù)字索引表示時鐘區(qū)域塊在FPGA芯片內(nèi)的位置。例如,X0Y1表示FPGA芯片的第一行第二列的時鐘區(qū)域塊。

通過對FPGA芯片進(jìn)行時鐘區(qū)域塊的劃分,設(shè)計工程師可以更好地組織和管理邏輯資源和時鐘資源,以優(yōu)化時序性能、減少時鐘相關(guān)問題,并實現(xiàn)設(shè)計的高性能和穩(wěn)定性要求

注釋:

時鐘區(qū)域的數(shù)量隨器件大小而變化,從最小器件的一個時鐘區(qū)域到最大器件的24個時鐘區(qū)域,以上截圖為20個時鐘區(qū)域。7系列為例,每一個時鐘區(qū)域包含50個CLB(可編程邏輯塊),1個I/O Bank(含50個IO引腳),10個 36K 塊RAM(其中一半的塊RAM專門用于PCIe。),20個DSP 和12個BUFH(水平時鐘緩沖器),1個CMT(PLL/MMCM,時鐘管理塊),1個GT quad(4個串行收發(fā)器)。一個時鐘區(qū)域內(nèi)的可用時鐘資源和連接特性說明:

一個時鐘區(qū)域內(nèi)的可用時鐘資源和連接特性

全局時鐘緩沖器(BUFG)可以通過HROW驅(qū)動到每個時鐘區(qū)域。水平時鐘緩沖器(BUFH)通過HROW驅(qū)動到區(qū)域中的每個時鐘點(diǎn)。BUFG和BUFH在HROW上共享路由通道。I/O緩沖器(BUFIO)和區(qū)域時鐘緩沖器(BUFR)位于I/O Bank內(nèi)。BUFIO僅驅(qū)動I/O時鐘資源,而BUFR驅(qū)動I/O資源和邏輯資源。BUFMR使BUFIO和BUFR實現(xiàn)多區(qū)域級聯(lián)。時鐘引腳(CC)將外部時鐘引入FPGA內(nèi)部時鐘資源。

總結(jié)

本文主要讓讀者了解和掌握FPGA的時鐘結(jié)構(gòu)特點(diǎn)、雖然是以Xilinx 7系列FPGA為例,但大同小異,基本原理相同。有關(guān)7系列FPGA內(nèi)部更詳細(xì)的時鐘結(jié)構(gòu)和時鐘資源怎么使用,請參考ug472_7Series_Clocking.pdf。下一篇時鐘篇3將重點(diǎn)介紹CMT和時鐘資源的使用范例,敬請期待!

標(biāo)簽:

上一篇:FPGA到底是什么 FPGA的構(gòu)成要素 FPGA怎么選型
下一篇:最后一頁