自引入以來,,現(xiàn)場(chǎng)可編程門陣列(FPGA)的容量增加了10000倍以上, 性能增加了100倍. 單位功能的成本和功耗都減少了超過1000倍. 這些進(jìn)步是由工藝縮放技術(shù)所推動(dòng)的, 但是 FPGA 的故事比簡(jiǎn)單縮放技術(shù)的更復(fù)雜. 摩爾定律的數(shù)量效應(yīng)推動(dòng)了FPGA在體系結(jié)構(gòu),、應(yīng)用和方法方面發(fā)生質(zhì)的變化. 因此, FPGA 已經(jīng)經(jīng)歷了幾個(gè)不同的發(fā)展階段. 本文分別總結(jié)了發(fā)明、擴(kuò)張,、累積這三個(gè)階段, 并討論了它們的驅(qū)動(dòng)壓力和基本特征. 本文最后展望了未來的FPGA階段.
Xilinx 在1984年引入了第一個(gè)現(xiàn)場(chǎng)可編程門陣列(FPGAs), 盡管直到Actel在1988年普及這個(gè)術(shù)語它們才被稱為FPGAs. 在接下來的30年里,我們稱之為FPGA的設(shè)備的容量增加了1萬多倍,,速度增加了100倍. 單位功能的成本和能耗降低了1000倍以上(見圖1).
圖1 Xilinx FPGA屬性相對(duì)于1988年,。容量指邏輯細(xì)胞計(jì)數(shù)。速度指可編程織物的同功能性能,。價(jià)格指每個(gè)邏輯單元,。能量指每個(gè)邏輯單元,。價(jià)格和能量按一萬倍放大。數(shù)據(jù)來源: Xilinx發(fā)表的數(shù)據(jù),。
這些進(jìn)步在很大程度上是由工藝技術(shù)驅(qū)動(dòng)的, 隨半導(dǎo)體的擴(kuò)展, 很容易把 FPGA 的進(jìn)化看成是一個(gè)簡(jiǎn)單的容量發(fā)展. 這種看法太簡(jiǎn)單了,。FPGA 進(jìn)展的真實(shí)故事要有趣得多。
自其引入以來, FPGA 設(shè)備經(jīng)過幾個(gè)不同的發(fā)展階段已取得進(jìn)展. 每個(gè)階段都受到工藝技術(shù)機(jī)會(huì)和應(yīng)用程序需求的驅(qū)動(dòng),。這些驅(qū)動(dòng)壓力引起設(shè)備特性和工具的可觀察變化,。在本文中, 我們回顧了FPGA的三階段. 每個(gè)階段長(zhǎng)達(dá)8年, 并且每一段在回顧中都很明顯。
三個(gè)階段分別是:
1)發(fā)明階段, 1984–1991;
2)擴(kuò)張階段, 1992–1999;
3)累積階段, 2000–2007.
圖2. FPGA與ASIC交叉點(diǎn),。 圖表顯示總成本與單位數(shù)量,。 FPGA線條較暗,從左下角開始,。 隨著下一個(gè)工藝節(jié)點(diǎn)的采用(從較早節(jié)點(diǎn)的虛線箭頭到稍后節(jié)點(diǎn)的實(shí)線箭頭),,由垂直虛線表示的交叉點(diǎn)變大。
二,、前言: 關(guān)于FPGA的重大問題有哪些,?
A.FPGA VS ASIC
20世紀(jì)80年代,專用集成電路(ASIC)公司為電子市場(chǎng)帶來了一個(gè)驚人的產(chǎn)品:定制集成電路,。 到20世紀(jì)80年代中期,,有數(shù)十家公司在銷售ASIC,在激烈的競(jìng)爭(zhēng)中,,成本低,,容量大,速度快的技術(shù)更具受青睞,。 當(dāng)FPGA出現(xiàn)的時(shí)候,,它在所有這幾個(gè)方面上都并不突出,但卻一枝獨(dú)秀,。這是為什么,?
ASIC的功能是由自定義掩模工具決定的。ASIC的客戶為這些掩模工具支付了前期的一次性工程(NRE)費(fèi)用,。由于沒有定制的工具,,F(xiàn)PGA降低了預(yù)付成本和建立定制數(shù)字邏輯的風(fēng)險(xiǎn)。通過制造一種可以被成百上千的客戶使用的自定義硅設(shè)備,,F(xiàn)PGA供應(yīng)商可以有效地平攤所有客戶的NRE成本,,從而不會(huì)對(duì)任何一個(gè)客戶收取任何費(fèi)用,又同時(shí)增加了每個(gè)客戶的單位芯片成本,。
前期的NRE成本確保了FPGA在某些數(shù)量上比ASIC更具成本效益,。FPGA供應(yīng)商在他們的“交叉點(diǎn)”上吹噓這個(gè)數(shù)字,這個(gè)數(shù)字證明了ASIC的更高的NRE開銷,。 在圖2中,,圖線顯示了購(gòu)買數(shù)量單位的總成本,。 ASIC具有NRE的初始成本,并且每個(gè)后續(xù)單元將其單位成本增加到總數(shù),。 FPGA沒有NRE電荷,,但是每個(gè)單元的成本都比功能相當(dāng)?shù)腁SIC要高,因此斜率更陡峭,。 兩條線在交叉點(diǎn)相遇,。 如果所需的單元數(shù)量少于此數(shù)量,則FPGA解決方案便宜; 超過該數(shù)量的單位表明ASIC具有較低的總體成本,。
由于NRE成本占ASIC總體擁有成本的很大一部分,,所以FPGA每單位成本超過ASIC成本的優(yōu)勢(shì)隨著時(shí)間的推移而減少。 圖2中的虛線表示某個(gè)工藝節(jié)點(diǎn)的總成本,。 實(shí)線表示下一個(gè)工藝節(jié)點(diǎn)的情況,,NRE成本增加,但是每個(gè)芯片的成本較低,。 FPGA和ASIC都利用低成本制造,,而ASIC NRE收費(fèi)繼續(xù)攀升,推高交叉點(diǎn),。 最終,,交叉點(diǎn)變得如此之高,以至于大多數(shù)客戶,,單元的數(shù)量已經(jīng)不再適用于ASIC,。 定制芯片只保證非常高的性能或很高的體積; 所有其他人可以使用可編程解決方案。
摩爾定律最終將推動(dòng)FPGA能力覆蓋ASIC要求,,這是對(duì)可編程邏輯業(yè)務(wù)的一個(gè)基本早期認(rèn)識(shí),。如今,器件成本在性能,,上市時(shí)間,,功耗,I / O容量以及其他功能方面都不如FPGA,。許多ASIC客戶使用較老的工藝技術(shù),,降低了NRE成本,但降低了單芯片成本優(yōu)勢(shì),。
FPGA不僅消除了前期掩蔽費(fèi)用并降低庫(kù)存成本,,而且通過消除整個(gè)類別的設(shè)計(jì)問題也降低了設(shè)計(jì)成本。這些設(shè)計(jì)問題包括晶體管級(jí)設(shè)計(jì),,測(cè)試,,信號(hào)完整性,串?dāng)_,,I / O設(shè)計(jì)和時(shí)鐘分配,。
與低前期成本和簡(jiǎn)單設(shè)計(jì)一樣重要的是,主要的FPGA優(yōu)勢(shì)是即時(shí)可用性和降低的故障可見性,。盡管大量的仿真時(shí),,ASIC第一次似乎很少是正確的。隨著晶圓制造周轉(zhuǎn)時(shí)間在幾個(gè)星期或幾個(gè)月內(nèi),,芯片重新調(diào)整對(duì)時(shí)間安排造成重大影響,,而且隨著掩膜成本的上升,芯片重新調(diào)整對(duì)公司日益增長(zhǎng)的水平而言是顯而易見的,。錯(cuò)誤的高成本要求廣泛的芯片驗(yàn)證,。由于FPGA可以在幾分鐘內(nèi)完成重做,因此FPGA設(shè)計(jì)不會(huì)因?yàn)殄e(cuò)誤而延誤數(shù)周,。因此,,驗(yàn)證不一定要徹底。 “自我模仿”,,俗稱“下載試用”,,可以代替大量的模擬。
最后看一下ASIC生產(chǎn)風(fēng)險(xiǎn):ASIC公司只有在客戶的設(shè)計(jì)投入生產(chǎn)時(shí)才賺錢,。 在20世紀(jì)80年代,,由于開發(fā)過程中需求的變化,產(chǎn)品故障或完全設(shè)計(jì)錯(cuò)誤,,只有三分之一的設(shè)計(jì)實(shí)際投入生產(chǎn),。 三分之二的設(shè)計(jì)損失了錢。 這些損失不僅由ASIC客戶承擔(dān),,還由ASIC供應(yīng)商承擔(dān),,這些供應(yīng)商的NRE收費(fèi)很少包括他們的實(shí)際成本,從未在快速貶值的制造設(shè)施中彌補(bǔ)失去機(jī)會(huì)的成本,。 另一方面,,可編程邏輯公司和客戶仍然可以小批量賺錢,并且可以快速糾正小的錯(cuò)誤,,而不需要昂貴的掩模,。
圖3.通用PAL架構(gòu)。
B. FPGA VS PAL
可編程邏輯在FPGA之前就已經(jīng)建立起來了,。在20世紀(jì)80年代早期,,EPROM編程的可編程陣列邏輯(PAL)已經(jīng)開辟了一個(gè)市場(chǎng)。但是,,F(xiàn)PGA具有體系結(jié)構(gòu)優(yōu)勢(shì),。為了理解FPGA的優(yōu)勢(shì),我們首先看看這些早期的80年代器件的簡(jiǎn)單可編程邏輯結(jié)構(gòu)。一個(gè)PAL設(shè)備,,如圖3所示,,由一個(gè)兩級(jí)邏輯結(jié)構(gòu)組成。顯示輸入在底部,。在左邊,,一個(gè)可編程和陣列產(chǎn)生產(chǎn)品條款,以及輸入和它們的反轉(zhuǎn)的任何組合,。右側(cè)塊中的固定或門完成宏單元產(chǎn)品術(shù)語的組合邏輯功能,。每個(gè)宏單元輸出是芯片的輸出。宏單元中的可選寄存器并反饋到和陣列的輸入使得實(shí)現(xiàn)非常靈活的狀態(tài)機(jī)成為可能,。
不是每一個(gè)功能都可以通過PAL的宏單元陣列實(shí)現(xiàn)一次,,但是幾乎所有的常用功能都可以,而那些不可能通過陣列實(shí)現(xiàn)的功能,。無論執(zhí)行的功能還是位于陣列中的位置,,通過PAL陣列的延遲都是相同的。 PAL具有簡(jiǎn)單的擬合軟件,,可將邏輯快速映射到陣列中的任意位置,,而不會(huì)影響性能。 PAL適配軟件可以從獨(dú)立的EDA供應(yīng)商處獲得,,使IC制造商可以輕松地將PAL添加到他們的產(chǎn)品線中,。
從制造的角度來看,PAL是非常有效的,。 PAL結(jié)構(gòu)與EPROM存儲(chǔ)器陣列非常相似,,其中晶體管被密集地包裝以產(chǎn)生有效的實(shí)現(xiàn)。 PAL與存儲(chǔ)器非常相似,,許多存儲(chǔ)器制造商能夠用PAL來擴(kuò)展他們的產(chǎn)品線,。當(dāng)周期性內(nèi)存業(yè)務(wù)出現(xiàn)停滯時(shí),內(nèi)存廠商進(jìn)入可編程邏輯業(yè)務(wù),。
當(dāng)考慮縮放時(shí),,PAL的架構(gòu)問題是顯而易見的。在和陣列中的可編程點(diǎn)的數(shù)量隨著輸入數(shù)量的平方(更確切地說,,輸入乘以乘積項(xiàng))的平方增長(zhǎng),。工藝縮放以收縮因數(shù)的平方來提供更多的晶體管。然而,,陣列中的二次增加限制了PAL僅通過收縮因數(shù)線性增長(zhǎng)邏輯,。 PAL輸入和產(chǎn)品期限也很重,所以延遲隨著尺寸的增加而迅速增長(zhǎng),。像任何這種類型的存儲(chǔ)器,,PAL都具有跨越整個(gè)芯片的字線和位線,。隨著每一代,所編程的晶體管的驅(qū)動(dòng)與負(fù)載的比例下降,。更多的投入或產(chǎn)品條款增加了這些線路的負(fù)載,。增加晶體管尺寸以降低電阻也提高了總電容。為了保持速度,,耗電量急劇上升,。大型PAL在區(qū)域和性能上都是不切實(shí)際的。作為回應(yīng),,在20世紀(jì)80年代,Altera率先推出了復(fù)雜可編程邏輯器件(CPLD),,由多個(gè)PAL型塊組成,,其中較小的交叉開關(guān)連接。但FPGA具有更具可擴(kuò)展性的解決方案,。
圖4.通用陣列FPGA架構(gòu),。 4 4陣列,每行和每列有三條接線軌跡,。 開關(guān)位于交叉點(diǎn)的圓上,。 設(shè)備輸入和輸出分布在陣列周圍。
FPGA的創(chuàng)新是消除了提供可編程性的數(shù)組和陣列,。相反,,配置存儲(chǔ)器單元分布在陣列周圍以控制功能和布線。這種改變放棄了PAL結(jié)構(gòu)的類似存儲(chǔ)器陣列的效率,,有利于架構(gòu)的可擴(kuò)展性,。如圖4所示,F(xiàn)PGA的架構(gòu)由一系列可編程邏輯塊組成,,并與現(xiàn)場(chǎng)可編程開關(guān)互連,。 FPGA的容量和性能不再受到陣列的二次增長(zhǎng)和布線布局的限制。并不是每一個(gè)功能都是芯片的輸出,,所以容量可以隨著摩爾定律而增長(zhǎng),。
?FPGA架構(gòu)看起來不像內(nèi)存。 設(shè)計(jì)和制造與內(nèi)存非常不同,。
?邏輯塊較小,。 不能保證一個(gè)單一的功能可以融入其中。 因此,,提前確定將有多少邏輯適合FPGA是很困難的,。
?FPGA的性能取決于邏輯放置在FPGA中的位置。 FPGA需要布局和布線,,所以完成的設(shè)