目前主流的FPGA仍是基于查找表技術的,已經遠遠超出了先前版本的基本性能,并且整合了常用功能(如RAM、時鐘管理和DSP)的硬核(ASIC型)模塊。如圖1-1所示(注:圖1-1只是一個示意圖,實際上每一個系列的FPGA都有其相應的內部結構),FPGA芯片主 要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式RAM、豐富的布線資源、內嵌的底層功能單元和內嵌專用硬件模塊?! D1-1 FPGA芯片的內部結構
FPGA芯片的內部結構每個模塊的功能如下: 1. 可編程輸入輸出單元(IOB) 可編程輸入/輸出單元簡稱I/O單元,是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配要求,其示意結構如圖1-2所示。 FPGA內的I/O按組分類,每組都能夠獨立地支持不同的I/O標準。通過軟件的靈活配置,可適配不同的電氣標準與I/O物理特性,可以調整驅動電流的大小,可以改變上、下拉電阻。目前,I/O口的頻率也越來越高,一些高端的FPGA通過DDR寄存器技術可以支持高達2Gbps的數據速率?! D1-2 典型的IOB內部結構示意圖
典型的IOB內部結構示意圖外部輸入信號可以通過IOB模塊的存儲單元輸入到FPGA的內部,也可以直接輸入FPGA 內部。當外部輸入信號經過IOB模塊的存儲單元輸入到FPGA內部時,其保持時間(Hold Time)的要求可以降低,通常默認為0。 為了便于管理和適應多種電器標準,FPGA的IOB被劃分為若干個組(bank),每個bank的接口標準由其接口電壓VCCO決定,一個bank只能有 一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標準的端口才能連接在一起,VCCO電壓相同是接口標準的基本條件?! ?. 可配置邏輯塊(CLB) CLB是FPGA內的基本邏輯單元。CLB的實際數量和特性會依器件的不同而不同,但是每個CLB都包含一個可配置開關矩陣,此矩陣由4或6個輸入、一些 選型電路(多路復用器等)和觸發(fā)器組成。 開關矩陣是高度靈活的,可以對其進行配置以便處理組合邏輯、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多個(一般為4個或2個)相同的Slice和附加邏輯構成,如圖1-3所示。每個CLB模塊不僅可以用于實現組合邏輯、時序邏輯,還可以配置為分布式RAM和分布式ROM?! D1-3 典型的CLB結構示意圖
典型的CLB結構示意圖Slice是Xilinx公司定義的基本邏輯單位,其內部結構如圖1-4所示,一個Slice由兩個4輸入的函數、進位邏輯、算術邏輯、存儲邏輯和函數復用器組成。算術邏輯包括一個異或門(XORG)和一個專用與門(MULTAND),一個異或門可以使一個Slice實現 2bit全加操作,專用與門用于提高乘法器的效率;進位邏輯由專用進位信號和函數復用器(MUXC)組成,用于實現快速的算術加減法操作;4輸入函數發(fā)生 器用于實現4輸入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的兩個輸入函數為6輸入,可以實現6輸入LUT或 64比特移位寄存器);進位邏輯包括兩條快速進位鏈,用于提高CLB模塊的處理速度?! D1-4 典型的4輸入Slice結構示意圖
[!--empirenews.page--]
典型的4輸入Slice結構示意圖3. 數字時鐘管理模塊(DCM) 業(yè)內大多數FPGA均提供數字時鐘管理(Xilinx的全部FPGA均具有這種特性)。Xilinx推出最先進的FPGA提供數字時鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時鐘綜合,且能夠降低抖動,并實現過濾功能?! ?. 嵌入式塊RAM(BRAM) 大多數FPGA都具有內嵌的塊RAM,這大大拓展了FPGA的應用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內容地址存儲器 (CAM)以及FIFO等常用存儲結構。RAM、FIFO是比較普及的概念,在此就不冗述。CAM存儲器在其內部的每個存儲單元中都有一個比較邏輯,寫入 CAM中的數據會和內部的每一個數據進行比較,并返回與端口數據相同的所有數據的地址,因而在路由的地址交換器中有廣泛的應用。除了塊RAM,還可以將 FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結構。在實際應用中,芯片內部塊RAM的數量也是選擇芯片的一個重要因素。 單片塊RAM的容量為18k比特,即位寬為18比特、深度為1024,可以根據需要改變其位寬和深度,但要滿足兩個原則:首先,修改后的容量(位寬 深度)不能大于18k比特;其次,位寬最大不能超過36比特。當然,可以將多片塊RAM級聯起來形成更大的RAM,此時只受限于芯片內塊RAM的數量,而 不再受上面兩條原則約束。 5. 豐富的布線資源 布線資源連通FPGA內部的所有單元,而連線的長度和工藝決定著信號在連線上的驅動能力和傳輸速度。FPGA芯片內部有著豐富的布線資源,根據工藝、長度、寬度和分布位置的不同而劃分為4類不同的類別。第一類是全局布線資源,用于芯片內部全局時鐘和全局復位/置位的布線;第二類是長線資源,用以完成芯片 Bank間的高速信號和第二全局時鐘信號的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時鐘、復位等控制信號線。 在實際中設計者不需要直接選擇布線資源,布局布線器可自動地根據輸入邏輯網表的拓撲結構和約束條件選擇布線資源來連通各個模塊單元。從本質上講,布線資源的使用方法和設計的結果有密切、直接的關系?! ?. 底層內嵌功能單元 內嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等軟處理核(SoftCore)?,F在越來越豐富的內嵌功能單元,使得單片FPGA成為了系統(tǒng)級的設計工具,使其具備了軟硬件聯合設計的能力,逐步向SOC平臺過渡?! LL和PLL具有類似的功能,可以完成時鐘高精度、低抖動的倍頻和分頻,以及占空比調整和移相等功能。Xilinx公司生產的芯片上集成了 DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同時集成了PLL和DLL。PLL 和DLL可以通過IP核生成的工具方便地進行管理和配置。DLL的結構如圖1-5所示?! D1-5 典型的DLL模塊示意圖
典型的DLL模塊示意圖7. 內嵌專用硬核 內嵌專用硬核是相對底層嵌入的軟核而言的,指FPGA處理能力強大的硬核(Hard Core),等效于ASIC電路。為了提高FPGA性能,芯片生產商在芯片內部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信總線與接口標準,很多高端的FPGA內部都集成了串并收發(fā)器(SERDES),可以達到數十Gbps的收發(fā)速度?! ilinx公司的高端產品不僅集成了Power PC系列CPU,還內嵌了DSP Core模塊,其相應的系統(tǒng)級設計工具是EDK和Platform Studio,并依此提出了片上系統(tǒng)(System on Chip)的概念。通過PowerPC、Miroblaze、Picoblaze等平臺,能夠開發(fā)標準的DSP處理器及其相關應用,達到SOC的開發(fā)目 的。