Xilinx FPGA內部體系結構

Xilinx的FPGA的基本結構是一樣的,主要由6部分組成,分別爲可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的佈線資源、底層嵌入功能單元和內嵌專用硬核等。

但隨着半導體工藝的發展,FPGA的邏輯容量越來越豐富,速度更快,嵌入越來越多的硬核了,比如:ARM處理器,PCIe, ETHERNET等。在製程工藝上,Xilinx的7系列FPGA採用28 nm工藝,UltraScale採用20nm, UltraScale+ 採用16nm,每一代工藝的可用資源,比上一代就翻了一倍。

Xilinx的FPGA是基於SRAM的查找表(LUT look up table)技術,所以需要上電後重新配置。從外部非易失性存儲器中讀數,通過配置控制器加載到內部配置SRAM 中。

FPGA結構:

可編程I/O(輸入/輸出單元)

可編程I/O支持不同的IO引腳配置:IO標準、單端或差分、電壓轉換速率和輸出強度、上拉或者下拉電阻、數控阻抗(DCI),可以使用IODELAY元件做輸出延遲。

可配置邏輯塊CLB(configure logic block)

可配置邏輯塊是指實現各種邏輯功能的電路,是xilinx基本邏輯單元。在Xilinx FPGA中,每個可配置邏輯塊包含2個Slice。每個Slice 包含查找表、寄存器、進位鏈和多個多數選擇器構成。而Slice又有兩種不同的邏輯片:SLICEM和SLICEL。SLICEM有多功能的LUT,可配置成移位寄存器,或者ROM和RAM。邏輯片中的每個寄存器可以配置爲鎖存器使用。

佈線資源

佈線資源用來連通FPGA內部的所有單元,而連線的長度和工藝決定着信號在連線上的驅動能力和傳輸速度。FPGA芯片內部有着豐富的佈線資源,根據工藝、長度、寬度和分佈位置不同而劃分爲4類不同的類別。

第一類是全局佈線資源,用於芯片內部全局時鐘和復位/置位的佈線;

第二類是長線資源,用於完成Bank間的高速信號;

第三類是短線資源,用於完成基本邏輯單元之間的邏輯互聯和佈線;

第四類是分佈式佈線資源,用於專有時鐘、復位等控制信號線。

時鐘資源

時鐘資源分爲全局時鐘資源、區域時鐘資源和I/O時鐘資源。

(1)全局時鐘網絡是一種全局佈線資源,它可以保證時鐘信號到達各個目標邏輯單元的時延基本相同。

(2) 區域時鐘網絡是一組獨立於全局時鐘網絡的時鐘網絡。

(3) I/O時鐘資源可用於局部I/O串行器/解串器電路設計。對於源同步接口設計尤其有用。

嵌入存儲器

Xilinx FPGA的嵌入式存儲器有兩種類型:專用Block RAM(BRAM)和可配置成爲分佈式RAM的LUT。BRAM(Block RAM)是雙端口的RAM,數量因器件而定,每個Virtex-4 BRAM 可存儲18Kbit的數據,支持同步讀寫操作,兩個端口對稱且完全獨立,共享數據,每個端口可以根據需要改變其位寬和深度。BRAM可以配置爲單端口RAM、雙端口RAM、內容可尋址存儲器(CAM)以及FIFO等。BRAM提供專用的控制邏輯實現同步/異步FIFO,其中的控制邏輯如計數器,比較器和狀態標記等不會佔用額外的CLB資源。

在FIFO模式下,BRAM的端口A是讀端口,端口B是寫端口。對數據流操作是自動的,用戶不必關心BRAM的編址順序,當特殊應用需要時引出WRCOUNT和RDCOUNT。用戶需要檢測FULL和EMPTY標記。可以設置這兩個標記值,將其配置到FIFO地址段內的任何位置。

內嵌專用硬核

FPGA除以上的資源和功能模塊外,還有時鐘管理(MMCM):數字時鐘管理模塊(DCM)與相位匹配時鐘分頻器(PCMD),DSP模塊等。 DSP模塊可提供高性能、低功耗的運算單元。它能夠實現乘法-累加單元。還提供了專用的收發器模塊,實現串行器/解串器(SerDes)功能,比如RocketIO模塊,以太網模塊(Ethernet MAC)模塊,ARM核。

總之,隨着FPGA的內部資源會變得越來越豐富,不僅在原來的在網絡、電信、醫療、工業等多個領域有廣泛的應用,而且在數據中心,雲計算等新領域中進一步開疆拓土。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章