本章節的內容主要是介紹各個部件的功能。
首先是BUFG,它能驅動所有時序資源。
但是它的輸入從哪里來呢,誰負責驅動它,整個板子的外部時鍾是怎么進來的呢?這個就涉及到外部時鍾輸入管腳。注意,不是說BUFG只能被外部輸入的時鍾驅動。時鍾信號由專門的時鍾引腳輸入,引腳分為兩種MRCC(Multi-region clock capable)和SRCC(Single-region clock capable),它們分布在I/O bank中,並且與特定的Clock Buffer相連接。它可以將用戶時鍾連接到:
- BUFG(buffer和引腳位於同一個上/下半區)
- BUFIO(位於同一個或者垂直相連的I/O bank)
- BUFR/BUFMR(位於同一個或者垂直相連的時鍾域)
- CMT(位於同一個時鍾域,或者垂直相連的時鍾域,但是后一種情況有限制)
對於各個元器件之間的驅動關系,UG有一張表格做得非常清楚,以下是總結。
MRCC(每個bank有兩對)
由外部時鍾驅動
能驅動 同個時鍾域和同一側(左/右半區)的
-
- 四個BUFIO
- 四個BUFR
- 兩個BUFMR
- 一個CMT(包括一個MMCM和PLL)
- 上下垂直相鄰的CMT(使用有限的CMT Backbone資源)
能驅動 同一側(上/下半區)的
-
- 16個BUFG
能驅動 水平相連的時鍾域內的
-
- BUFH
SRCC(每個bank有兩對)
由外部時鍾驅動
能驅動 同個時鍾域和同一側(左/右半區)的
-
- 四個BUFIO
- 四個BUFR
- 一個CMT(包括一個MMCM和PLL)
- 上下垂直相鄰的CMT(使用有限的CMT Backbone資源)
能驅動 同一側(上/下半區)的
-
- 16個BUFG
能驅動 水平相連的時鍾域內的
-
- BUFH
BUFIO 能被同個時鍾域的MRCC,SRCC,MMCM.CLKOUT(0-3),CLKFBOUT驅動,還可以被同個時鍾域和垂直相鄰時鍾域的BUFMR驅動。
它可以驅動同個時鍾域內的 ILOGIC.clk ILOGIC.clkb OLOGIC.clk OLOGIC.clkb OLOGIC.oclk OLOGIC.clkb
BUFR能被同個時鍾域的MRCC,SRCC,MMCM.CLKOUT(0-3),CLKFBOUT驅動,還可以被同個時鍾域和垂直相鄰時鍾域的BUFMR驅動。還可以被General interconnect 驅動。
它可以驅動CMT,所有BUFG能驅動的Clocking point(同個時鍾域內),當它和BUFG在同個上下半區時,也可以用來驅動BUFG(不推薦)。
BUFMR能被同個時鍾域內的MRCC GT Clock輸出(部分)和interconnect驅動(不推薦)
它可以驅動同個時鍾域以及垂直相鄰時鍾域的BUFIO和BUFR。
BUFG能被同個上下半區SRCC,MRCC,CMT,GT Clock輸出(部分),BUFR(不推薦),和interconnect驅動(不推薦)。以及在同個上/下半區的相鄰BUFG。
它可以驅動CMT,GT Clock Output(部分),在同個上下半區的相鄰BUFG,CLB控制信號,BUFH,所有時序資源和I/O。
BUFH能被同個時鍾域內以及水平相連時鍾域內的 SRCC,MRCC,CMT,BUFG,GT Clock輸出(部分),和interconnect驅動(不推薦)。
它可以驅動CMT,GT Clock Output(部分),在同個內所有BUFG能驅動的時序資源。
CMT能被BUFG,SRCC(同一個或者相鄰的時鍾域),MRCC(同一個或者相鄰的時鍾域),GT(同個時鍾域),BUFR(同個時鍾域或者垂直相鄰的時鍾域內的BUFMR),MMCM/PLL.CLKOUT0-3
它可以驅動在同個上下半區的所有BUFG,同個時鍾域內的BUFIO(MMCM),BUFR(MMCM),BUFH以及水平相鄰時鍾域內的(BUFH),MMCM/PLL(不相鄰則會有相移)。
以下來自xilinx技術支持,作為補充:
BUFIO 和 BUFR
BUFIO 和 BUFR 緩沖器可用於不需要訪問器件所有區域的區域時鍾。它們通常被用作 IOSERDES 接口設置的時鍾。如果您需要了解有關如何使用這兩個緩沖器之一的更多詳情,則可以在 7 系列 FPGA 時鍾資源用戶指南 (UG472) 的“區域時鍾資源”部分中找到這些信息: http://china.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf
BUFMR
BUFMR 是 7 系列器件的新增緩沖器。7 系列器件中的 BUFR 和 BUFIO 只能在其自己的時鍾區域中本地布線。BUFMR 必須用於布線到鄰近的時鍾區域。BUFMR 只能使用 MRCC(具有多區域時鍾功能)引腳進行驅動。如果您需要了解有關如何使用此緩沖器的更多詳情,敬請參見 7 系列 FPGA 時鍾資源用戶指南 (UG472) 的“多區域時鍾緩沖器”部分和附錄 A: http://china.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf
BUFG、 BUFGCTRL、和 BUFGMUX
BUFG/BUFGCTRL/BUFGMUX 可用於驅動全局時鍾,使該時鍾可以到達整個器件的邏輯。您只能通過 CCIO(具有時鍾功能的 IO)引腳訪問 BUFG 緩沖器。如果您需要了解有關如何使用 BUFG 緩沖器的更多詳情,敬請參見 7 系列 FPGA 時鍾資源用戶指南 (UG472) 的“全局時鍾資源”部分: http://china.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf
BUFH
水平時鍾緩沖器 (BUFH) 可驅動單個區域中的水平全局時鍾樹干。這些緩沖器包括可用於動態打開或關閉時鍾網絡的時鍾啟用功能。這樣,您就可以關閉不在使用當中的邏輯區域,以此節約功耗。如欲了解有關如何使用 BUFH 緩沖器的更多詳情,敬請參見 7 系列 FPGA 時鍾資源用戶指南 (UG472) 的“區域時鍾資源”部分: http://china.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf