現場可編程門陣列 (FPGA) 是數字IC(集成電路),使硬件設計工程師能夠根據他們的要求對定制的數字邏輯進行編程。術語“現場可編程”意味著IC的數字邏輯在其制造(或制作)期間不是固定的,而是由最終用戶(設計人員)編程。
為了提供這種可編程性,FPGA由可配置(或可編程)邏輯塊和這些塊之間的可配置互連組成。FPGA的這種可配置邏輯和互連(路由)使其具有通用性和靈活性,但是,與具有標準單元的類似口徑ASIC相比,它們速度相對較慢且耗電。
自FPGA進入市場以來,已經過去了30多年,在這漫長的跨度中,它們經歷了巨大的技術進步,并獲得了不斷增長的普及。
需要注意的是,雖然類似于PLD,但PLD(現場可編程門器件)僅限于數百個門,而FPGA支持數千個門。
FPGA組成
通用FPGA由三種類型的模塊組成,分別是:
可編程邏輯單元(或CLB)——負責實現核心邏輯功能。
可編程路由——負責連接邏輯塊。
IO塊——通過路由連接到邏輯塊并幫助建立外部連接。
下面是一個非常廣義的FPGA典型內部結構示意圖:
如上圖所示,FPGA的核心由可配置的邏輯單元和可編程的互連組成,這些被許多可編程IO塊包圍,用于與外部世界通信。
1、可編程邏輯單元
基于Xilinx的FPGA中的邏輯塊稱為可配置邏輯塊或CLB,而基于Altera的FPGA中的類似結構稱為邏輯陣列塊或LAB。
CLB是FPGA的基本組件,它提供邏輯和存儲功能。基本邏輯塊可以是晶體管、與非門、多路復用器、查找表
(LUT)、類似PAL的結構甚至處理器之類的任何東西。Xilinx和Altera都使用基于查找表 (LUT) 的邏輯塊來實現邏輯和存儲功能。
邏輯塊可以由單個基本邏輯元件或一組互連的基本邏輯元件組成,其中基本邏輯元件是查找表(又由SRAM和多路復用器組成)和觸發器。
具有“n”個輸入的LUT由2的n次方配置位組成,這些配置位由SRAM
單元實現。使用這2的n次方個SRAM位,LUT可以配置為實現任何邏輯功能。
2、可編程路由
如果計算功能由邏輯塊提供,則可編程路由網絡負責互連這些邏輯塊。路由網絡提供一個邏輯塊與另一個邏輯塊之間以及邏輯塊和IO塊之間的互連,以完全實現自定義電路。
基本上,路由網絡由帶有可編程開關的連接線組成,可以使用任何編程技術進行配置。基本上有兩種類型的路由架構,分別是:
島式路由(也稱為網狀路由)
分層路由
在島式路由架構中,邏輯塊排列成二維陣列,并使用可編程路由網絡互連,這種類型的路由廣泛用于商業FPGA。
另外,許多邏輯塊被限制在一組本地連接中,分層路由架構通過將邏輯塊劃分為幾個組或集群來利用此特性。如果邏輯塊駐留在同一個集群中,則分層路由將它們連接到較低的層次結構中。
如果邏輯塊駐留在不同的集群中,那么布線是在更高層次的層次上完成的。
基于應用的FPGA類型
現場可編程門陣列根據應用分為三類,例如低端FPGA、中端FPGA和高端FPGA。
低端FPGA;這些類型的FPGA專為低功耗、低邏輯密度和每芯片低復雜性而設計。低端FPGA的例子有
Altera的Cyclone系列、Xilinx的Spartan系列、Microsemi的Fusion系列和LatTIce半導體的Mach
XO/ICE40。
中檔
FPGA;這些類型的FPGA是低端和高端FPGA之間的最佳解決方案,它們的開發是為了在性能和成本之間取得平衡。中端FPGA的例子有Altera的Arria、Xlinix的ArTIx-7/Kintex-7系列、Microsemi的
IGL002以及萊迪思半導體的ECP3和ECP5 系列。
高端FPGA;這些類型的FPGA是為邏輯密度和高性能而開發的。高端FPGA的例子有Altera的StraTIx系列、Xilinx的Virtex系列、Achronix的Speedster
22i系列和Microsemi的ProASIC3系列。
FPGA編程技術
FPGA的可重編程架構有許多,但負責這種可重配置架構的最常用的編程技術有以下幾種:
SRAM
EEPROM/閃存
AnTI-Fuse(反熔絲)
其他技術包括EPROM和Fusible Link,但它們用于CPLD和其他PLD,不用于FPGA,因此,這里僅介紹限于FPGA相關的編程技術。
1、SRAM
眾所周知,有兩種類型的半導體RAM,稱為SRAM和DRAM。SRAM是靜態RAM的縮寫,而DRAM是動態RAM的縮寫。SRAM是使用晶體管設計的,術語靜態意味著加載在基本SRAM存儲單元上的值將保持不變,直到故意更改或移除電源時。
下圖顯示了用于存儲1位的典型6晶體管SRAM單元。
這與由晶體管和電容器組合而成的DRAM形成對比。術語“動態”是指加載到基本DRAM存儲單元中的值在電容器充電之前一直有效。隨著電容器隨著時間的推移失去電荷,存儲單元必須定期充電以保持電荷。
許多FPGA供應商在基于SRAM的FPGA中實現靜態存儲單元進行編程?;赟RAM的FPGA用于對邏輯單元和互連進行編程,并且由于其可重新編程性和使用CMOS技術而變得相當重要,CMOS技術以其低動態功耗、高速和更緊密的集成而聞名。
2、EEPROM/閃存
與基于SRAM的編程技術相近的替代方案是基于EEPROM或閃存編程技術。基于閃存的編程的主要優點是其非易失性。盡管閃存支持可重新編程,但與SRAM技術相比,可重復編程的次數非常少。
3、反熔絲
反熔絲編程技術是一種生產一次性可編程器件的古老技術。它們是使用稱為反熔絲的鏈接實現的,該鏈接在未編程狀態下具有非常高的電阻,可以被認為是開路。編程時,向輸入端提供高電壓和電流。因此,最初以非晶硅(基本上是一種電阻非常高的絕緣體)的形式連接兩條金屬軌道的反熔絲通過轉化為導電多晶硅而變得具有生命力。
與其它兩種技術相比,反熔絲技術占用的空間最少,但僅作為一次性可編程選項提供。
FPGA的應用
FPGA在過去十年中獲得了快速增長,因為它們可用于廣泛的應用。FPGA的具體應用包括數字信號處理、生物信息學、設備控制器、軟件無線電、隨機邏輯、醫學成像、計算機硬件仿真、集成多個SPLD、語音識別、密碼學、過濾和通信編碼等等。
而一些更常見的FPGA應用包括航空航天和國防、醫療電子、ASIC原型設計、音頻、汽車、廣播、消費電子、分布式貨幣系統、數據中心、高性能計算、工業、科學儀器、安全系統、視頻和圖像處理,有線通信,無線通信。
總結
其實在引入FPGA的早期,它們通常用于實現中小型復雜狀態機和對小數據的數據處理任務。多年來,隨著其復雜性和功能的增加,它們已被納入多種汽車、消費和工業應用中。
最初,FPGA為ASIC設計原型提供了一個簡單的選項,因為它們可以很容易地重新配置以在最終確定主要設計之前測試和嘗試硬件的多種變體。但它們作為最終產品的功能具有相對較短的上市時間和較小的實施成本,因此它們已被實施為某些ASIC的直接競爭對手。
隨著FPGA成本的下降,它們成為嵌入式控制應用的有力競爭者。如今FPGA還可用于實現任何微控制器的軟核處理器以及自定義IO功能。
-
FPGA
+關注
關注
1626文章
21674瀏覽量
601930 -
集成電路
+關注
關注
5381文章
11390瀏覽量
360899 -
現場可編程門陣列
+關注
關注
1文章
20瀏覽量
4724
發布評論請先 登錄
相關推薦
評論