FPGA中BUFG、BUFIO、BUFR和clk相關

为自由而战 2024-04-13 16:48 29次浏览 0 条评论 taohigo.com

1)BUFR是區域時鐘緩沖器,要進入區域時鐘網絡,必須例化BUFR。

2)bufg和bufr都要ccio驅動 包括bufg。(clock capable io)。普通io無法驅動bufg和bufr。

3)一個design,如果不例化bufg,或者bufr,直接定義一個input clk,則會在綜合階段自動插入bufg。

4)一個design的時鐘,不僅可以由bufg驅動,也能由bufr和bufio驅動。

5)ccio = MRCC + SRCC.

看下面這個圖,首先MRCC和SRCC都是可以連接到全局時鐘的,但是全局時鐘的資源有限。如果程序較大都使用全局時鐘的話,那時鐘資源就不夠用瞭。SRCC可用於本區域時鐘這個比較好瞭解,MRCC用於相鄰的區域該這麼理解,MRCC通過不同於全局時鐘的渠道可以到達相鄰的區域。雖然通過手冊可以看到芯片的各個區域分佈,但是這個還是最好交給EDA自己優化。如下圖BANK1和BANK3可以使用BANK2的MRCC分上來的時鐘,沒必要先將BANK2的MRCC連接到全局時鐘再連接到BANK1和BANK3,這樣不但節省瞭全局時鐘資源,而且路徑更短。

另,文章引用:

當Xilinx 7Series FPGA中,存在3種主要的時鐘網絡:BUFG,BUFR,BUFIO以及他們所衍生出的各種變種。那麼他們有什麼主要特點和區別呢?

BUFIO是IO時鐘網絡,顧名思義,它隻能驅動IO Block裡面的邏輯,不能驅動CLB裡面的LUT,REG等邏輯。BUFIO可以被如下節點驅動:

1、SRCCs and MRCCs in the same clockregion2、MRCCs in an adjacent clock regionusing BUFMRs3、MMCMs clock outputs 0-3 driving theHPC in the same clock region

BUFR是regional時鐘網絡,顧名思義,它的驅動范圍隻能局限在一個clock region的邏輯,但是它可以同時驅動IO和內部邏輯。BUFR可以被如下節點所驅動:

1、所有能驅動BUFIO的節點2、MMCMs clock outputs 0-33、General interconnect

BUFIO和BUFR的主要區別可以用下圖概括:

BUFG是全局時鐘網絡,這個大傢最熟悉瞭,它可以驅動所有的IO和邏輯,並且可以被Transceiver所驅動。

那既然有BUFG瞭還需要BUFR做什麼呢?

BUFR相比BUFG的最大優勢是skew和功耗都比較小,在源同步的設計中,這一點也是很關鍵的。