1.按邏輯功能塊的大小分類
可編程邏輯塊是FPGA的基本邏輯構造單元。按照邏輯功能塊的大小不同,可將FPGA分為細粒度結構和粗粒度結構兩類。
細粒度FPGA的邏輯功能塊一般較小,僅由很小的幾個晶體管組成,非常類似于半定制門陣列的基本單元,其優(yōu)點是功能塊的資源可以被完全利用,缺點是完成復雜的邏輯功能需要大量的連線和開關,因而速度慢;粗粒度FPGA的邏輯塊規(guī)模大,功能強,完成復雜邏輯只需較少的功能塊和內部連線,因而能獲得較好的性能,缺點是功能塊的資源有時不能被充分利用。
近年來隨著工藝的不斷改進,FPGA的集成度不斷提高,硬件描述語言(HDL)的設計方法得到了廣泛應用。由于大多數邏輯綜合工具是針對門陣列的結構開發(fā)的,細粒度的FPGA較粗粒度的FPGA可以得到更好的邏輯綜合結果,因此許多廠家開發(fā)出了一些具有更高集成度的細粒度FPGA,如Xilinx公司采用MicroVia技術的一次編程反熔絲結構的XC8100系列,GateField公司采用閃速EPROM 控制開關元件的可再編程GF100K系列等,它們的邏輯功能塊規(guī)模相對都較小。
2.按互連結構分類
根據FPGA內部的連線結構不同,可將其分為分段互連型和連續(xù)互連型兩類。
分段互連型FPGA中有不同長度的多種金屬線,各金屬線段之間通過開關矩陣或反熔絲編程連接。這種連線結構走線靈活,有多種可行方案,但走線延時與布局布線的具體處理過程有關,在設計完成前無法預測,設計修改將引起延時性能發(fā)生變化。
連續(xù)互連型FPGA是利用相同長度的金屬線,通常是貫穿于整個芯片的長線來實現邏輯功能塊之間的互連,連接與距離遠近無關。在這種連線結構中,不同位置邏輯單元的連接線是確定的,因而布線延時是固定和可預測的。
3.按編程特性分類
根據采用的開關元件的不同,FPGA可分為一次編程型和可重復編程型兩類。
一次編程型FPGA采用反熔絲開關元件,其工藝技術決定了這種器件具有體積小、集成度高、互連線特性阻抗低、寄生電容小及可獲得較高的速度等優(yōu)點;此外,它還有加密位、反拷貝、抗輻射抗干擾、不需外接PROM或EPROM等特點。但它只能一次編程,一旦將設計數據寫入芯片后,就不能再修改設計,因此比較適合于定型產品及大批量應用。
可重復編程型FPGA采用SRAM開關元件或快閃EPROM控制的開關元件。FPGA芯片中,每個邏輯塊的功能以及它們之間的互連模式由存儲在芯片中的SRAM或快閃EPROM中的數據決定。SRAM型開關的FPGA是易失性的,每次重新加電,FPGA都要重新裝入配置數據。SRAM型FPGA的突出優(yōu)點是可反復編程,系統(tǒng)上電時,給FPGA加載不同的配置數據,即可令其完成不同的硬件功能。這種配置的改變甚至可以在系統(tǒng)的運行中進行,實現系統(tǒng)功能的動態(tài)重構。采用快閃EPROM控制開關的FPGA具有非易失性和可重復編程的雙重優(yōu)點,但在再編程的靈活性上較SRAM型FPGA差一些,不能實現動態(tài)重構。此外,其靜態(tài)功耗較反熔絲型及SRAM型的FPGA高。