FPGA開發全攻略——FPGA內部結構


原文鏈接:

FPGA開發全攻略連載之五:FPGA主要功能模塊介紹(1)

FPGA開發全攻略連載之六:數字時鍾管理模塊與嵌入式塊RAM

FPGA開發全攻略連載之七:底層內嵌功能單元與軟核、硬核以及固核

 

1. 可編程輸入輸出單元(IOB)

可編程輸入/ 輸出單元簡稱I/O 單元,是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/ 輸出信號的驅動與匹配要求,其示意結構如圖2-4 所示。FPGA 內的I/O 按組分類,每組都能夠獨立地支持不同的I/O標准。通過軟件的靈活配置,可適配不同的電氣標准與I/O 物理特性,可以調整驅動電流的大小,可以改變上、下拉電阻。目前,I/O 口的頻率也越來越高,一些高端的FPGA 通過DDR 寄存器技術可以支持高達2Gbps 的數據速率。

 

IOB 模塊
圖2-4 IOB內部結構
外部輸入信號可以通過IOB 模塊的存儲單元輸入到FPGA 的內部,也可以直接輸入FPGA 內部。當外部輸入信號經過IOB 模塊的存儲單元輸入到FPGA 內部時,其保持時間(Hold Time) 的要求可以降低,通常默認為0。為了便於管理和適應多種電器標准,FPGA 的IOB 被划分為若干個組(bank),每個bank 的接口標准由其接口電壓VCCO 決定,一個bank 只能有一種VCCO,但不同bank 的VCCO 可以不同。只有相同電氣標准的端口才能連接在一起,VCCO 電壓相同是接口標准的基本條件。

 

2.可配置邏輯塊(CLB

CLB 是FPGA 內的基本邏輯單元。CLB 的實際數量和特性會依器件的不同而不同,但是每個CLB 都包含一個可配置開關矩陣,此矩陣由4 或6 個輸入、一些選型電路( 多路復用器等) 和觸發器組成。 開關矩陣是高度靈活的,可以對其進行配置以便處理組合邏輯、移位寄存器或RAM。在賽靈思公司公司的FPGA 器件中,CLB 由多個( 一般為4 個或2 個) 相同的Slice 和附加邏輯構成,如圖2-5 所示。每個CLB 模塊不僅可以用於實現組合邏輯、時序邏輯,還可以配置為分布式RAM 和分布式ROM。

 

CLB結構示意圖
圖2-5 典型的CLB結構示意圖
Slice 是賽靈思公司公司定義的基本邏輯單位,其內部結構如圖2-6 所示,一個Slice 由兩個4 輸入的函數、進位邏輯、算術邏輯、存儲邏輯和函數復用器組成。

 

 

典型的4輸入Slice結構示意圖
圖2-6 典型的4輸入Slice結構示意圖
算術邏輯包括一個異或門(XORG) 和一個專用與門(MULTAND),一個異或門可以使一個Slice 實現2bit 全加操作,專用與門用於提高乘法器的效率;進位邏輯由專用進位信號和函數復用器(MUXC) 組成,用於實現快速的算術加減法操作;4 輸入函數發生器用於實現4 輸入LUT、分布式RAM 或16 比特移位寄存器(Virtex-5 系列芯片的Slice 中的兩個輸入函數為6 輸入,可以實現6 輸入LUT 或64 比特移位寄存器) ;進位邏輯包括兩條快速進位鏈,用於提高CLB 模塊的處理速度。

3.數字時鍾管理模塊(DCM)

業內大多數FPGA 均提供數字時鍾管理( 賽靈思公司的全部FPGA 均具有這種特性)。賽靈思公司推出最先進的FPGA 提供數字時鍾管理和相位環路鎖定。相位環路鎖定能夠提供精確的時鍾綜合,且能夠降低抖動,並實現過濾功能。

4.嵌入式塊RAM(BRAM)

大多數FPGA 都具有內嵌的塊RAM,這大大拓展了FPGA 的應用范圍和靈活性。塊RAM 可被配置為單端口RAM、雙端口RAM、內容地址存儲器(CAM) 以及FIFO 等常用存儲結構。RAM、FIFO 是比較普及的概念,在此就不冗述。CAM 存儲器在其內部的每個存儲單元中都有一個比較邏輯,寫入CAM 中的數據會和內部的每一個數據進行比較,並返回與端口數據相同的所有數據的地址,因而在路由的地址交換器中有廣泛的應用。除了塊RAM,還可以將FPGA 中的LUT 靈活地配置成RAM、ROM 和FIFO 等結構。在實際應用中,芯片內部塊RAM 的數量也是選擇芯片的一個重要因素。

內嵌的塊RAM
圖2-7 內嵌的塊RAM

 

單片塊RAM 的容量為18k 比特,即位寬為18 比特、深度為1024,可以根據需要改變其位寬和深度,但要滿足兩個原則:首先,修改后的容量( 位寬 深度) 不能大於18k 比特;其次,位寬最大不能超過36 比特。當然,可以將多片塊RAM級聯起來形成更大的RAM,此時只受限於芯片內塊RAM的數量,而不再受上面兩條原則約束。

5. 豐富的布線資源

布線資源連通FPGA 內部的所有單元,而連線的長度和工藝決定着信號在連線上的驅動能力和傳輸速度。FPGA 芯片內部有着豐富的布線資源,根據工藝、長度、寬度和分布位置的不同而划分為4類不同的類別。第一類是全局布線資源,用於芯片內部全局時鍾和全局復位/ 置位的布線;第二類是長線資源,用以完成芯片Bank 間的高速信號和第二全局時鍾信號的布線;第三類是短線資源,用於完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用於專有時鍾、復位等控制信號線。

 FPGA內部互連布線
圖2-8 FPGA內部互連布線

 

在實際中設計者不需要直接選擇布線資源,布局布線器可自動地根據輸入邏輯網表的拓撲結構和約束條件選擇布線資源來連通各個模塊單元。從本質上講,布線資源的使用方法和設計的結果有密切、直接的關系。

6、底層內嵌功能單元

內嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP 等軟處理核(Soft Core)。現在越來越豐富的內嵌功能單元,使得單片FPGA 成為了系統級的設計工具,使其具備了軟硬件聯合設計的能力,逐步向SOC 平台過渡。

DLL 和PLL 具有類似的功能,可以完成時鍾高精度、低抖動的倍頻和分頻,以及占空比調整和移相等功能。賽靈思公司生產的芯片上集成了DCM 和DLL,Altera 公司的芯片集成了PLL,Lattice 公司的新型芯片上同時集成了PLL 和DLL。PLL 和DLL 可以通過IP 核生成的工具方便地進行管理和配置。DLL 的結構如圖2-8 所示。

 

典型的DLL模塊示意圖
圖2-9 典型的DLL模塊示意圖

 

7. 內嵌專用硬核

內嵌專用硬核是相對底層嵌入的軟核而言的,指FPGA 處理能力強大的硬核(Hard Core),等效於ASIC 電路。為了提高FPGA 性能,芯片生產商在芯片內部集成了一些專用的硬核。例如:為了提高FPGA 的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信總線與接口標准,很多高端的FPGA 內部都集成了串並收發器(SERDES),可以達到數十Gbps 的收發速度。

賽靈思公司的高端產品不僅集成了Power PC 系列CPU,還內嵌了DSP Core 模塊,其相應的系統級設計工具是EDK 和Platform Studio,並依此提出了片上系統(System on Chip) 的概念。通過PowerPC™、Miroblaze、Picoblaze 等平台,能夠開發標准的DSP 處理器及其相關應用,達到SOC 的開發目的。

此外,新推出賽靈思的FPGA 系列如Virtex-5 LXT 還內建了PCI Express 和三態以太網MAC 硬核(TEMAC),與軟核實現方式相比,硬核可以把功耗降低5~10 倍, 節約將近90% 的邏輯資源。

Xilinx 三態以太網MAC 核是一個可參數化的核,非常適合在網絡設備中使用, 例如開關和路由器等。可定制的TEMAC 核使系統設計者能夠實現寬范圍的集成式以太網設計,從低成本10/100 以太網到性能更高的1GB端口。TEMAC 核設計符合 IEEE 802.3 規范的要求,並且可以在 1000Mbps、100 Mbps 和 10 Mbps 模式下運行。

另外,它還支持半雙工和全雙工操作。TEMAC 核通過 Xilinx CORE Generator™ 工具提供,是 Xilinx 全套以太
網解決方案的一部分。

2.1.3 軟核、硬核以及固核的概念

IP(Intelligent Property) 核是具有知識產權核的集成電路芯核總稱,是經過反復驗證過的、具有特定功能的宏模塊,與芯片制造工藝無關,可以移植到不同的半導體工藝中。到了SOC 階段,IP 核設計已成為ASIC 電路設計公司和FPGA 提供商的重要任務,也是其實力體現。對於FPGA 開發軟件,其提供的IP 核越豐富,用戶的設計就越方便,其市場占用率就越高。目前,IP 核已經變成系統設計的基本單元,並作為獨立設計成果被交換、轉讓和銷售。
從IP核的提供方式上,通常將其分為軟核、固核和硬核這3類。從完成IP核所花費的成本來講,硬核代價最大;從使用靈活性來講,軟核的可復用使用性最高。

1. 軟核(Soft IP Core)

軟核在EDA 設計領域指的是綜合之前的寄存器傳輸級(RTL) 模型;具體在FPGA 設計中指的是對電路的硬件語言描述,包括邏輯描述、網表和幫助文檔等。軟核只經過功能仿真,需要經過綜合以及布局布線才能使用。其優點是靈活性高、可移植性強,允許用戶自配置;缺點是對模塊的預測性較低,在后續設計中存在發生錯誤的可能性,有一定的設計風險。軟核是IP 核應用最廣泛的形式。

2. 固核(Firm IP Core)

固核在EDA 設計領域指的是帶有平面規划信息的網表;具體在FPGA 設計中可以看做帶有布局規划的軟核,通常以RTL 代碼和對應具體工藝網表的混合形式提供。將RTL 描述結合具體標准單元庫進行綜合優化設計,形成門級網表,再通過布局布線工具即可使用。和軟核相比,固核的設計靈活性稍差,但在可靠性上有較大提高。目前,固核也是IP 核的主流形式之一。

3. 硬核 (Hard IP Core)

硬核在EDA 設計領域指經過驗證的設計版圖;具體在FPGA 設計中指布局和工藝固定、經過前端和后端驗證的設計,設計人員不能對其修改。不能修改的原因有兩個:首先是系統設計對各個模塊的時序要求很嚴格,不允許打亂已有的物理版圖;其次是保護知識產權的要求,不允許設計人員對其有任何改動。IP 硬核的不許修改特點使其復用有一定的困難,因此只能用於某些特定應用,使用范圍較窄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM