1. 時鍾資源概述
時鍾設施提供了一系列的低電容、低抖動的互聯線,這些互聯線非常適合於傳輸高頻信號、最大量減小時鍾抖動。這些連線資源可以和DCM、PLL等實現連接。
每一種Spartan-6芯片提供16個高速、低抖動的全局時鍾資源用於優化性能;這些資源可以背Xilinx工具自動地使用,即使時鍾頻率相對較低,使用時鍾資源來消除潛在的時序冒險仍然是十分重要的,
每一個Spartan-6 FPGA提供40個超高速、低抖動的IO局部時鍾資源(32個BUFIO2S和8個BUFPLL)這些IO局部時鍾資源是為IO Serializer和de-serializer電路服務的。
Spartan-6 FPGA的時鍾資源主要由四種類型的連接器構成:
- 全局時鍾輸入引腳(GCLK)
- 全局時鍾多路復用器(BUFG、BUFGMUX)
- IO時鍾緩沖器(BUFIO2、BUFIO2_2CLK、BUFPLL)
- 水平方向時鍾布線緩沖器(BUFH)
有兩種類型的時鍾網絡:
- 為FPGA內部邏輯資源提供低抖動時鍾資源的全局時鍾網絡
- 為SelectIIO邏輯資源提供高性能低抖動時鍾資源的IO局部時鍾網絡
BUFGMUX能夠在兩個全局時鍾資源之間進行復用,也可以當做普通的BUFG時鍾緩沖使用,這個時鍾緩沖只能夠直接驅動全局時鍾布線資源,只能夠驅動時鍾輸入;當然,FPGA內部邏輯觸發器的時鍾輸入也可以來自那些普通的布線資源,不過那些普通的布線資源會具有較大的時鍾抖動。
BUFPLL和BUFIO2用來驅動IO局部時鍾網絡的時鍾資源,這一特性限定了它們的使用目的,他們只能用於ISERDES或OSERDES這資源的輸入時鍾資源;
BUFIO2能夠驅動SDR和DDR的ISERDES2和OSERDES2的時鍾,BUFIO2能夠把GCLK或GTP_DUAL Tile的輸入時鍾布線到BUFG、DCM、PLL時鍾輸入。BUFIO2_2CLK能夠用來代替BUFIO2s使用在DDR的ISERDES2和OSERDES2的設計時鍾。
類似地,BUFPLL可以驅動SDR時鍾的IO時鍾網絡,BUFPLL將PLL的CLKOUT0或CLKOUT1和IO局部時鍾網絡連接起來。
BUFH通過提供邏輯資源與全局時鍾布線水平區域的連接,使得芯片總體的低抖動時鍾資源更為豐富。
1.1. 全局時鍾結構
圖 1‑1全局時鍾結構
Spartan-6 FPGA的全局時鍾網絡由16個位於器件中心位置的BUFGMUX驅動,時鍾的輸入可以來自FPGA的上、下、左、右的bank,也可以來自PLL或DCM;16個BUFGMUX驅動vertical spine並經vertical spine 往南北方向傳播,根據這條線路,時鍾水平延伸至HCLK時鍾列並經HCLK時鍾列提供了訪問局部邏輯原語的路徑;每一個HCLK列左右兩邊各有16個水平時鍾緩沖BUFH驅動左右邏輯資源。
圖 1‑2BUFH時鍾布線路徑
在Spartan-6 FPGA器件上,有32個GCLK輸入,但是只有16個全局時鍾緩沖,也就是說每一個全局時鍾緩沖只能被2個GCLK中的一個驅動,在兩個GCLK(假設為GCLK_A和GCLK_B共享BUFGMX_C)都需要使用的情況下,為了為用戶提供更多的靈活性,可以讓GCLK_A引腳布線到BUFGMUX_C,而GCLK_B使用BUFIO2間接地布線到另一個BUFGMUX_D。但是經過BUFIO2布線的時鍾會出現延時。
表格 1‑1 Bank0和Bank1共享全局時鍾資源不完全統計情況表
圖 1‑3Bank0和Bank1的BUFGMUX的連接情況
圖 1‑4Bank2和Bank3的BUFGMUX的連接情況
對於使用GTP Transceiver的設計來說,每一個GTP參考時鍾是和一個BUFIO2關聯在一起的,這可能影響Bank0和Bank2上的全局時鍾引腳的使用;對SDR接口來說,GCLK的引腳輸入與的沖突如表格 1‑2所示,對DDR接口來說,GTP需要兩個BUFIO2,因為DDR的需要將時鍾反轉,DDR接口對GCLK引腳輸入的沖突如表格 1‑3所示。
表格 1‑2SDR接口使用中BUFIO2的輸入沖突
表格 1‑3DDR接口使用中BUFIO2的輸入沖突
1.2. IO時鍾結構
1‑5IO時鍾結構
所有的SelectIOn的邏輯資源(輸入寄存器、輸出寄存器、IDDR2、ODDR2、ISERDES2、OSERDES2)必須被來自BUFIO2的時鍾驅動;每個BUFIO2時鍾域有4個高速I時鍾,由4個專用BUFIO2 緩沖驅動;Spartan6 FPGA有4個BUFIO2時鍾域共32BUFIO2.
1‑6BUFIO2時鍾域
2. 時鍾輸入
時鍾輸入引腳接受外部時鍾信號並且直接將其連接至BUFGMUX或者BUFIO2原語。當然,時鍾引腳也可以用作普通IO。BUFIO2除了能將時鍾輸入到IO時鍾網絡,BUFIO2也提供了專用的接往PLL/DCM或BUFG的時鍾路線
2‑1經BUFIO2布線的專用時鍾輸入
對Spartan-6 FPGA而言,專用的時鍾輸入引腳位於芯片邊沿的中心位置,下圖例舉了4Bank的Spartan-6 FPGA的時鍾引腳布局。
2‑2四Bank Spartan-6 FPGA 時鍾引腳布局
3. 時鍾管理技術
Spartan-6 FPGA的CMT(時鍾管理單元)提供了非常靈活、高性能的時鍾;Spartan-6 FPGA的CMT模塊位於豎直的全局時鍾樹的中間列位置,每個CMT包含2個DCM、1個PLL。
3‑1Spartan-6 FPGA CMT位置圖
3‑2CMT結構框圖
3.1. DCM的功能
DCM:Digital Clock Management,數字時鍾管理單元的英文縮寫。DCM擁有先進的時鍾能力可將時鍾直接導入全局時鍾分布網絡,DCM可以解決各種各樣的時鍾問題,尤其是在高性能、高頻率領域。
- 消除了時鍾抖動,提升了整個系統的性能
- 調節一個時鍾信號的相位
- 對輸入時鍾進行倍頻或分頻,也能夠通過動態或靜態的提供乘除因子產生新的時鍾頻率。
- 使時鍾信號更健康,占空比穩定在50%
- 鏡像、轉發、重緩沖一個時鍾信號,對輸入時鍾信號進行去抖斜或轉換成差分IO電平。
- 時鍾輸入抖動過濾
- 擴頻時鍾產生
- 振盪器工作模式
3‑3DCM結構框圖
3.2. PLL的功能
PLL:Phase-Locked Loop,鎖相環的英文縮寫。Spartan-6 FPGA器件包含6個CMT Tile。PLL的主要目的是作為外部時鍾或內部時鍾的抖動過濾器或頻率合成器。
3‑4PLL結構框圖