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