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