自引入以來(lái),現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的容量增加了10000倍以上, 性能增加了100倍. 單位功能的成本和功耗都減少了超過(guò)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)壓力和基本特征. 本文最后展望了未來(lái)的FPGA階段.
Xilinx 在1984年引入了第一個(gè)現(xiàn)場(chǎng)可編程門(mén)陣列(FPGAs), 盡管直到Actel在1988年普及這個(gè)術(shù)語(yǔ)它們才被稱為FPGAs. 在接下來(lái)的30年里,我們稱之為FPGA的設(shè)備的容量增加了1萬(wàn)多倍,速度增加了100倍. 單位功能的成本和能耗降低了1000倍以上(見(jiàn)圖1).
圖1 Xilinx FPGA屬性相對(duì)于1988年。容量指邏輯細(xì)胞計(jì)數(shù)。速度指可編程織物的同功能性能。價(jià)格指每個(gè)邏輯單元。能量指每個(gè)邏輯單元。價(jià)格和能量按一萬(wàn)倍放大。數(shù)據(jù)來(lái)源: 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í)故事要有趣得多。
自其引入以來(lái), FPGA 設(shè)備經(jīng)過(guò)幾個(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線條較暗,從左下角開(kāi)始。 隨著下一個(gè)工藝節(jié)點(diǎn)的采用(從較早節(jié)點(diǎn)的虛線箭頭到稍后節(jié)點(diǎn)的實(shí)線箭頭),由垂直虛線表示的交叉點(diǎn)變大。
二、前言: 關(guān)于FPGA的重大問(wèn)題有哪些?
A.FPGA VS ASIC
20世紀(jì)80年代,專用集成電路(ASIC)公司為電子市場(chǎng)帶來(lái)了一個(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)用。由于沒(méi)有定制的工具,F(xiàn)PGA降低了預(yù)付成本和建立定制數(shù)字邏輯的風(fēng)險(xiǎn)。通過(guò)制造一種可以被成百上千的客戶使用的自定義硅設(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開(kāi)銷。 在圖2中,圖線顯示了購(gòu)買(mǎi)數(shù)量單位的總成本。 ASIC具有NRE的初始成本,并且每個(gè)后續(xù)單元將其單位成本增加到總數(shù)。 FPGA沒(méi)有NRE電荷,但是每個(gè)單元的成本都比功能相當(dāng)?shù)腁SIC要高,因此斜率更陡峭。 兩條線在交叉點(diǎn)相遇。 如果所需的單元數(shù)量少于此數(shù)量,則FPGA解決方案便宜; 超過(guò)該數(shù)量的單位表明ASIC具有較低的總體成本。
由于NRE成本占ASIC總體擁有成本的很大一部分,所以FPGA每單位成本超過(guò)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ù)存成本,而且通過(guò)消除整個(gè)類別的設(shè)計(jì)問(wèn)題也降低了設(shè)計(jì)成本。這些設(shè)計(jì)問(wèn)題包括晶體管級(jí)設(shè)計(jì),測(cè)試,信號(hào)完整性,串?dāng)_,I / O設(shè)計(jì)和時(shí)鐘分配。
與低前期成本和簡(jiǎn)單設(shè)計(jì)一樣重要的是,主要的FPGA優(yōu)勢(shì)是即時(shí)可用性和降低的故障可見(jiàn)性。盡管大量的仿真時(shí),ASIC第一次似乎很少是正確的。隨著晶圓制造周轉(zhuǎn)時(shí)間在幾個(gè)星期或幾個(gè)月內(nèi),芯片重新調(diào)整對(duì)時(shí)間安排造成重大影響,而且隨著掩膜成本的上升,芯片重新調(diào)整對(duì)公司日益增長(zhǎng)的水平而言是顯而易見(jiàn)的。錯(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í)才賺錢(qián)。 在20世紀(jì)80年代,由于開(kāi)發(fā)過(guò)程中需求的變化,產(chǎn)品故障或完全設(shè)計(jì)錯(cuò)誤,只有三分之一的設(shè)計(jì)實(shí)際投入生產(chǎn)。 三分之二的設(shè)計(jì)損失了錢(qián)。 這些損失不僅由ASIC客戶承擔(dān),還由ASIC供應(yīng)商承擔(dān),這些供應(yīng)商的NRE收費(fèi)很少包括他們的實(shí)際成本,從未在快速貶值的制造設(shè)施中彌補(bǔ)失去機(jī)會(huì)的成本。 另一方面,可編程邏輯公司和客戶仍然可以小批量賺錢(qián),并且可以快速糾正小的錯(cuò)誤,而不需要昂貴的掩模。
圖3.通用PAL架構(gòu)。
B. FPGA VS PAL
可編程邏輯在FPGA之前就已經(jīng)建立起來(lái)了。在20世紀(jì)80年代早期,EPROM編程的可編程陣列邏輯(PAL)已經(jīng)開(kāi)辟了一個(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è)塊中的固定或門(mén)完成宏單元產(chǎn)品術(shù)語(yǔ)的組合邏輯功能。每個(gè)宏單元輸出是芯片的輸出。宏單元中的可選寄存器并反饋到和陣列的輸入使得實(shí)現(xiàn)非常靈活的狀態(tài)機(jī)成為可能。
不是每一個(gè)功能都可以通過(guò)PAL的宏單元陣列實(shí)現(xiàn)一次,但是幾乎所有的常用功能都可以,而那些不可能通過(guò)陣列實(shí)現(xiàn)的功能。無(wú)論執(zhí)行的功能還是位于陣列中的位置,通過(guò)PAL陣列的延遲都是相同的。 PAL具有簡(jiǎn)單的擬合軟件,可將邏輯快速映射到陣列中的任意位置,而不會(huì)影響性能。 PAL適配軟件可以從獨(dú)立的EDA供應(yīng)商處獲得,使IC制造商可以輕松地將PAL添加到他們的產(chǎn)品線中。
從制造的角度來(lái)看,PAL是非常有效的。 PAL結(jié)構(gòu)與EPROM存儲(chǔ)器陣列非常相似,其中晶體管被密集地包裝以產(chǎn)生有效的實(shí)現(xiàn)。 PAL與存儲(chǔ)器非常相似,許多存儲(chǔ)器制造商能夠用PAL來(lái)擴(kuò)展他們的產(chǎn)品線。當(dāng)周期性內(nèi)存業(yè)務(wù)出現(xiàn)停滯時(shí),內(nèi)存廠商進(jìn)入可編程邏輯業(yè)務(wù)。
當(dāng)考慮縮放時(shí),PAL的架構(gòu)問(wèn)題是顯而易見(jiàn)的。在和陣列中的可編程點(diǎn)的數(shù)量隨著輸入數(shù)量的平方(更確切地說(shuō),輸入乘以乘積項(xiàng))的平方增長(zhǎng)。工藝縮放以收縮因數(shù)的平方來(lái)提供更多的晶體管。然而,陣列中的二次增加限制了PAL僅通過(guò)收縮因數(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型塊組成,其中較小的交叉開(kāi)關(guān)連接。但FPGA具有更具可擴(kuò)展性的解決方案。
圖4.通用陣列FPGA架構(gòu)。 4 4陣列,每行和每列有三條接線軌跡。 開(kāi)關(guān)位于交叉點(diǎn)的圓上。 設(shè)備輸入和輸出分布在陣列周?chē)?/p>
FPGA的創(chuàng)新是消除了提供可編程性的數(shù)組和陣列。相反,配置存儲(chǔ)器單元分布在陣列周?chē)钥刂乒δ芎筒季€。這種改變放棄了PAL結(jié)構(gòu)的類似存儲(chǔ)器陣列的效率,有利于架構(gòu)的可擴(kuò)展性。如圖4所示,F(xiàn)PGA的架構(gòu)由一系列可編程邏輯塊組成,并與現(xiàn)場(chǎng)可編程開(kāi)關(guān)互連。 FPGA的容量和性能不再受到陣列的二次增長(zhǎng)和布線布局的限制。并不是每一個(gè)功能都是芯片的輸出,所以容量可以隨著摩爾定律而增長(zhǎng)。
?FPGA架構(gòu)看起來(lái)不像內(nèi)存。 設(shè)計(jì)和制造與內(nèi)存非常不同。
?邏輯塊較小。 不能保證一個(gè)單一的功能可以融入其中。 因此,提前確定將有多少邏輯適合FPGA是很困難的。
?FPGA的性能取決于邏輯放置在FPGA中的位置。 FPGA需要布局和布線,所以完成的設(shè)