現場可程式化邏輯閘陣列

現場可程式化邏輯閘陣列(英語:Field Programmable Gate Array,縮寫為FPGA),它以PALGALCPLD可程式化邏輯裝置為技術基礎發展而成。作為特殊應用積體電路中的一種半客製化電路,它既彌補全客製化電路不足,又克服原有可程式化邏輯控制器邏輯閘數有限的缺點。

一個有20,000個單元的Altera FPGA

概要

目前以硬體描述語言VerilogVHDL)描述的邏輯電路,可以利用邏輯合成布局布線工具軟體,快速地燒錄至FPGA上進行測試,這一過程是現代積體電路設計驗證的技術主流。這些可程式化邏輯元件可以被用來實現一些基本的邏輯閘數位電路(比如及閘或閘互斥或閘反閘)或者更複雜一些的組合邏輯功能,比如解碼器等。在大多數的FPGA裡面,這些可編輯的元件里也包含記憶元件,例如正反器(Flip-flop)或者其他更加完整的記憶塊,從而構成序向邏輯電路

系統設計師可以根據需要,通過可編輯的連接,把FPGA內部的邏輯塊連接起來。這就好像一個電路試驗板被放在了一個晶片裡。一個出廠後的成品FPGA的邏輯塊和連接可以按照設計者的需要而改變,所以FPGA可以完成所需要的邏輯功能。

FPGA一般來說比特殊應用積體電路(ASIC)的速度要慢,無法完成更複雜的設計,並且會消耗更多的電能。但是,FPGA具有很多優點,比如可以快速成品,而且其內部邏輯可以被設計者反覆修改,從而改正程式中的錯誤,此外,使用FPGA進行除錯的成本較低。廠商也可能會提供便宜、但是編輯能力有限的FPGA產品。因為這些晶片有的可編輯能力較差,所以這些設計的開發是在普通的FPGA上完成的,然後將設計轉移到一個類似於特殊應用積體電路的晶片上。在一些技術更新比較快的行業,FPGA幾乎是電子系統中的必要部件,因為在大批次供貨前,必須迅速搶占市場,這時FPGA方便靈活的優勢就顯得很重要。

與CPLD的比較

為了達到上述目的,另一種方法是採用複雜可程式邏輯裝置(CPLD)而不是FPGA。

早在1980年代中期,FPGA已經在可程式邏輯裝置裝置中紮根。CPLD和FPGA都包括了一些相對大數量的可以編輯邏輯單元。CPLD邏輯閘的密度在幾千到幾萬個邏輯單元之間,而FPGA通常是在幾萬到幾百萬。

CPLD和FPGA的主要區別是他們的系統結構。CPLD的結構具有一定的局限性。這個結構由一個或者多個可編輯的結果之和的邏輯組列和一些相對少量的鎖定的暫存器組成。這樣的結果是缺乏編輯靈活性,但是它的優點是,其延遲時間易於預計,邏輯單元對連接單元比率較高。而FPGA具有的連接單元數量很大,這樣雖然讓它可以更加靈活的編輯,但是結構卻複雜得多。

CPLD和FPGA另外一個區別是大多數的FPGA含有高層次的內建模組(比如加法器和乘法器)和內建的記憶體。一個由此帶來的重要區別是,很多新的FPGA支援完全的或者部分的系統內重新組態。允許他們的設計隨著系統升級或者動態重新組態而改變。一些FPGA可以讓裝置的一部分重新編輯,而其他部分繼續正常執行。

基本組成

  • 靜態隨機存取記憶體(SRAM) - 基於靜態記憶體static memory技術。系統內可程式化和再程式化(re-programmable)。須要外部啟動元件(external boot devices)。 CMOS
  • 反熔絲英語antifuse - 可燒錄一次。通常為CMOS。
  • PROM一次性可程式化EPROM) - 可程式化唯讀記憶體技術,可燒錄一次。使用塑料封裝,無窗,不能清除內容。
  • EPROM - 可清除可程式化唯讀記憶體技術,有窗,經紫外線照射可清除內容。
  • EEPROM - 可電氣清除可程式化唯讀記憶體技術,可用電氣訊號清除內容。
  • 快閃記憶體 - 一種特殊的EEPROM。
  • 熔絲 - 可燒錄一次。通常為雙極性的。不能清除內容。

廠商

  • Xilinx是全球第一大FPGA供應商,於2022年2月被AMD收購。
  • Altera是FPGA的領先廠商,於2016年被Intel收購。
  • ACTEL供應Anti-fuse/Flash型的低功耗、混合訊號FPGA,單晶片,知名的產品家族有Fusion、PolarFire、IGLOO和ProASIC3。Actel於2010年被Microsemi收購,而Microsemi又於2018年被Microchip收購。
  • Lattice Semiconductor提供有SRAM以及非易失、基於flash的FPGA
  • Achronix Semiconductor有在開發中非常快的FPGA

參考