昨天,在華爾街日?qǐng)?bào)爆出AMD將收購(gòu)Xilinx之后,市場(chǎng)上關(guān)于FPGA的討論又多了起來(lái)。為此,我們分享一篇我們之前發(fā)過(guò)的文章,幫助大家了解一下FPGA這個(gè)已經(jīng)面世三十多年的產(chǎn)品。值得一提的,這篇文章由IEEE發(fā)表于較早以前,可能信息稍微有點(diǎn)滯后,多謝海涵。
自引入以來(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ǔ)它們才被稱(chēng)為FPGAs. 在接下來(lái)的30年里,我們稱(chēng)之為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年代,專(zhuān)用集成電路(ASIC)公司為電子市場(chǎng)帶來(lái)了一個(gè)驚人的產(chǎn)品:定制集成電路。到20世紀(jì)80年代中期,有數(shù)十家公司在銷(xiāo)售ASIC,在激烈的競(jìng)爭(zhēng)中,成本低,容量大,速度快的技術(shù)更具受青睞。當(dāng)FPGA出現(xiàn)的時(shí)候,它在所有這幾個(gè)方面上都并不突出,但卻一枝獨(dú)秀。這是為什么?
ASIC的功能是由自定義掩模工具決定的。ASIC的客戶(hù)為這些掩模工具支付了前期的一次性工程(NRE)費(fèi)用。由于沒(méi)有定制的工具,F(xiàn)PGA降低了預(yù)付成本和建立定制數(shù)字邏輯的風(fēng)險(xiǎn)。通過(guò)制造一種可以被成百上千的客戶(hù)使用的自定義硅設(shè)備,F(xiàn)PGA供應(yīng)商可以有效地平攤所有客戶(hù)的NRE成本,從而不會(huì)對(duì)任何一個(gè)客戶(hù)收取任何費(fèi)用,又同時(shí)增加了每個(gè)客戶(hù)的單位芯片成本。
前期的NRE成本確保了FPGA在某些數(shù)量上比ASIC更具成本效益。FPGA供應(yīng)商在他們的“交叉點(diǎn)”上吹噓這個(gè)數(shù)字,這個(gè)數(shù)字證明了ASIC的更高的NRE開(kāi)銷(xiāo)。在圖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ù)客戶(hù),單元的數(shù)量已經(jīng)不再適用于ASIC。定制芯片只保證非常高的性能或很高的體積; 所有其他人可以使用可編程解決方案。
摩爾定律最終將推動(dòng)FPGA能力覆蓋ASIC要求,這是對(duì)可編程邏輯業(yè)務(wù)的一個(gè)基本早期認(rèn)識(shí)。如今,器件成本在性能,上市時(shí)間,功耗,I / O容量以及其他功能方面都不如FPGA。許多ASIC客戶(hù)使用較老的工藝技術(shù),降低了NRE成本,但降低了單芯片成本優(yōu)勢(shì)。
FPGA不僅消除了前期掩蔽費(fèi)用并降低庫(kù)存成本,而且通過(guò)消除整個(gè)類(lèi)別的設(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)證不一定要徹底?!白晕夷7隆?,俗稱(chēng)“下載試用”,可以代替大量的模擬。
最后看一下ASIC生產(chǎn)風(fēng)險(xiǎn):ASIC公司只有在客戶(hù)的設(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客戶(hù)承擔(dān),還由ASIC供應(yīng)商承擔(dān),這些供應(yīng)商的NRE收費(fèi)很少包括他們的實(shí)際成本,從未在快速貶值的制造設(shè)施中彌補(bǔ)失去機(jī)會(huì)的成本。另一方面,可編程邏輯公司和客戶(hù)仍然可以小批量賺錢(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)周期性?xún)?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)。像任何這種類(lèi)型的存儲(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)的類(lèi)似存儲(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è)計(jì)的性能不容易事先預(yù)測(cè)。
需要使用復(fù)雜的EDA軟件來(lái)將設(shè)計(jì)融入FPGA。
隨著陣列和陣列的消除,F(xiàn)PGA架構(gòu)師可以自由構(gòu)建任何邏輯模塊和任何互連模式。FPGA架構(gòu)師可以定義全新的邏輯實(shí)現(xiàn)模型,而不是基于晶體管或門(mén),而是基于自定義功能單元。延遲模型不需要基于金屬線,而是基于節(jié)點(diǎn)和開(kāi)關(guān)。這個(gè)架構(gòu)自由迎來(lái)了FPGA的第一個(gè)階段,即發(fā)明階段。
發(fā)明階段 1984~1991
首款FPGA,即賽靈思XC2064,只包含64 個(gè)邏輯模塊,每個(gè)模塊含有兩個(gè)3輸入查找表 (LUT) 和一個(gè)寄存器。按照現(xiàn)在的計(jì)算,該器件有 64 個(gè)邏輯單元——不足 1000 個(gè)邏輯門(mén)。盡管容量很小,XC2064 晶片的尺寸卻非常大,比當(dāng)時(shí)的微處理器還要大;而且采用 2.5 微米工藝技術(shù)勉強(qiáng)能制造出這種器件。
每功能的晶片尺寸和成本至關(guān)重要。XC2064 只有 64 個(gè)觸發(fā)器,但由于晶片太大,成本高達(dá)數(shù)百美元。產(chǎn)量對(duì)大晶片來(lái)說(shuō)是超線性的,因此晶片尺寸增加 5% 就會(huì)讓成本翻一倍,讓良率降至零,同時(shí)也導(dǎo)致初期的賽靈思無(wú)產(chǎn)品可賣(mài)。成本控制不僅僅是成本優(yōu)化的問(wèn)題;更是牽扯到公司生存問(wèn)題。
在成本壓力下,F(xiàn)PGA 架構(gòu)師尋求通過(guò)架構(gòu)和工藝創(chuàng)新來(lái)盡可能提高 FPGA 設(shè)計(jì)效率。盡管基于 SRAM 的 FPGA 是可重編程的,但是片上 SRAM 占據(jù)了FPGA 大部分的晶片面積?;诜慈劢z的 FPGA 以犧牲可重編程能力為代價(jià),避免了 SRAM 存儲(chǔ)系統(tǒng)片上占位面積過(guò)大問(wèn)題。
在20世紀(jì)80年代,賽靈思的四輸入LUT架構(gòu)被認(rèn)為是“粗粒度”的。四輸入功能被視為邏輯設(shè)計(jì)中的“甜蜜點(diǎn)”,但網(wǎng)表分析表明許多LUT配置未被使用。而且,許多LUT沒(méi)有使用投入。為了提高效率,F(xiàn)PGA架構(gòu)師希望能夠消除邏輯塊中的浪費(fèi)。幾家公司實(shí)現(xiàn)了包含固定功能的更細(xì)粒度的體系結(jié)構(gòu),以消除邏輯單元浪費(fèi)。Algotronix CAL使用一個(gè)固定MUX功能實(shí)現(xiàn)雙輸入LUT 。Concurrent公司(后來(lái)的Atmel)和他們的被許可人IBM公司使用了一種小型單元,包括雙輸入nand和異或門(mén)和CL器件中的一個(gè)寄存器。皮爾金頓將其架構(gòu)作為邏輯塊作為邏輯塊。他們授權(quán)Plessey(ERA系列),Toshiba(TC系列)和Motorola(MPA系列)使用基于nand-cell的SRAM編程設(shè)備。細(xì)粒度架構(gòu)的極限是交叉點(diǎn)CLi FPGA,其中各個(gè)晶體管通過(guò)反熔絲可編程連接相互連接。
早期的FPGA架構(gòu)師指出,高效的互聯(lián)體系結(jié)構(gòu)應(yīng)該遵守集成電路的二維性。PAL的長(zhǎng)而慢的線被相鄰塊之間的短連接代替,這些短連接可以根據(jù)需要通過(guò)編程串聯(lián)在一起以形成更長(zhǎng)的路由路徑。最初,簡(jiǎn)單的傳輸晶體管將信號(hào)引導(dǎo)通過(guò)互連段到相鄰的塊。接線效率高,因?yàn)闆](méi)有未使用的導(dǎo)線部分。這些優(yōu)化極大地縮小了互連區(qū)域,并使FPGA成為可能。與此同時(shí),由于大電容和通過(guò)晶體管開(kāi)關(guān)網(wǎng)絡(luò)分布的串聯(lián)電阻,通過(guò)FPGA布線增加了信號(hào)延遲和延遲不確定性。由于互連線和交換機(jī)增加了尺寸,但不是(計(jì)費(fèi))邏輯,所以FPGA架構(gòu)師不愿增加太多。早期的FPGA非常難以使用,因?yàn)樗鼈內(nèi)狈ミB。
發(fā)明階段回顧
在發(fā)明階段,F(xiàn)PGA很小,所以設(shè)計(jì)問(wèn)題很小。雖然他們是可取的,綜合甚至自動(dòng)布局和路由不被認(rèn)為是必不可少的。許多人認(rèn)為,即使在當(dāng)時(shí)的個(gè)人電腦上嘗試設(shè)計(jì)自動(dòng)化也是不切實(shí)際的,因?yàn)樵诖笮陀?jì)算機(jī)上ASIC的布局和布線正在進(jìn)行。手動(dòng)設(shè)計(jì),無(wú)論是邏輯的還是物理的,都是可接受的,因?yàn)閱?wèn)題的規(guī)模很小。手工設(shè)計(jì)往往是必要的,因?yàn)樾酒系穆酚少Y源有限。
完全不同的體系結(jié)構(gòu)排除了ASIC業(yè)務(wù)中可用的通用FPGA設(shè)計(jì)工具。FPGA供應(yīng)商為其設(shè)備增加了EDA開(kāi)發(fā)的負(fù)擔(dān)。隨著FPGA供應(yīng)商嘗試并改進(jìn)其架構(gòu),這最終被認(rèn)為是一個(gè)優(yōu)勢(shì)。過(guò)去十年的PAL制造商依靠外部工具供應(yīng)商提供軟件來(lái)將設(shè)計(jì)映射到他們的PAL中。因此,PAL供應(yīng)商僅限于工具供應(yīng)商支持的架構(gòu),導(dǎo)致商品化,低利潤(rùn)率和缺乏創(chuàng)新。在FPGA架構(gòu)蓬勃發(fā)展的同時(shí),PLD架構(gòu)被扼殺。
強(qiáng)制性軟件開(kāi)發(fā)的另一個(gè)優(yōu)勢(shì)是,F(xiàn)PGA客戶(hù)不需要從第三方EDA公司購(gòu)買(mǎi)工具,這會(huì)增加NRE成本。正如他們對(duì)NRE收費(fèi)一樣,F(xiàn)PGA供應(yīng)商將他們的工具開(kāi)發(fā)成本分?jǐn)偟剿麄兊墓瓒▋r(jià)中,從而使他們的設(shè)備的前期成本非常低。無(wú)論如何,EDA公司對(duì)FPGA工具的興趣不大,因?yàn)槭袌?chǎng)分散,數(shù)量少,銷(xiāo)售價(jià)格低廉,而且需要在動(dòng)力不足的電腦上運(yùn)行。
在發(fā)明階段,F(xiàn)PGA比用戶(hù)想要投入的應(yīng)用要小得多。因此,多FPGA系統(tǒng)變得流行起來(lái),自動(dòng)化的多芯片分區(qū)軟件被確定為FPGA設(shè)計(jì)套件的重要組成部分。
圖5. FPGA架構(gòu)系譜樹(shù)
FPGA回顧
發(fā)明的階段以在FPGA業(yè)務(wù)中的殘酷耗損而告終。第三節(jié)和在圖5的FPGA族譜里大部分的公司或產(chǎn)品名稱(chēng),一個(gè)現(xiàn)代讀者可能不會(huì)不知道。許多公司消失了。其他人在退出FPGA業(yè)務(wù)時(shí)悄然出售資產(chǎn)。這種損耗的原因不僅僅是正常的市場(chǎng)動(dòng)態(tài)。技術(shù)發(fā)生了重大變化,那些沒(méi)有利用這些變化的公司就無(wú)法進(jìn)行競(jìng)爭(zhēng)。由于摩爾定律引起的數(shù)量變化導(dǎo)致了使用半導(dǎo)體技術(shù)構(gòu)建的FPGA的質(zhì)變。這些變化是擴(kuò)張階段的特征。
擴(kuò)張階段 1992~1999
到了20世紀(jì)90年代,摩爾定律繼續(xù)快速前進(jìn),晶體管數(shù)量每?jī)赡暝黾右槐丁S捎陂_(kāi)創(chuàng)無(wú)晶圓廠商業(yè)模式,F(xiàn)PGA創(chuàng)業(yè)公司在二十世紀(jì)九十年代初通常無(wú)法獲得領(lǐng)先的硅技術(shù)。結(jié)果,F(xiàn)PGA開(kāi)始落后于工藝引入曲線。在20世紀(jì)90年代,隨著代工廠意識(shí)到使用FPGA作為過(guò)程驅(qū)動(dòng)器應(yīng)用的價(jià)值,他們成為了過(guò)程領(lǐng)導(dǎo)者。一旦能夠用新技術(shù)生產(chǎn)晶體管和導(dǎo)線,代工廠就能夠構(gòu)建SRAM FPGA。FPGA廠商出售他們巨大的設(shè)備,而代工廠改進(jìn)他們的流程。新一代硅片的可用晶體管數(shù)量增加了一倍,這使可能最大的FPGA尺寸增加了一倍,而每個(gè)功能的成本也降低了一半。比簡(jiǎn)單的晶體管縮放更重要的是,引入化學(xué)機(jī)械拋光(CMP)允許鑄造廠堆疊更多的金屬層。由于昂貴的(不可消耗的)互連的成本比晶體管的成本下降得更快,F(xiàn)PGA供應(yīng)商積極地增加了設(shè)備上的互連以適應(yīng)更大的容量(參見(jiàn)圖6),這對(duì)于ASIC來(lái)說(shuō)是有價(jià)值的。這個(gè)快速的改進(jìn)過(guò)程有以下幾個(gè)效果。
圖6. FPGA LUT和互連導(dǎo)線的增長(zhǎng)導(dǎo)線長(zhǎng)度,以數(shù)百萬(wàn)個(gè)晶體管間距進(jìn)行測(cè)量。
A.區(qū)域變得珍貴
在20世紀(jì)90年代中期沒(méi)有人加入FPGA行業(yè),他們認(rèn)為成本不重要,或者地區(qū)不重要。但是,那些在20世紀(jì)80年代經(jīng)歷過(guò)產(chǎn)品開(kāi)發(fā)痛苦的人當(dāng)然看到了差異。在20世紀(jì)80年代,晶體管的效率是必要的,以便交付任何產(chǎn)品。在20世紀(jì)90年代,這僅僅是一個(gè)產(chǎn)品定義的問(wèn)題。面積仍然是重要的,但現(xiàn)在它可以被交易的性能,功能和易用性。所得到的器件的硅片效率較低。在幾年前的發(fā)明階段,這是不可想象的。
B.設(shè)計(jì)自動(dòng)化變得必不可少
在擴(kuò)展階段,F(xiàn)PGA器件容量隨著成本的下降而迅速增長(zhǎng)。FPGA應(yīng)用程序?qū)τ谑謩?dòng)設(shè)計(jì)而言變得太大。1992年,旗艦產(chǎn)品Xilinx XC4010交付了一個(gè)(聲稱(chēng))最多10000個(gè)門(mén)。到1999年,Virtex XCV1000被評(píng)為一百萬(wàn)。在20世紀(jì)90年代早期,在擴(kuò)張階段開(kāi)始時(shí),自動(dòng)布局和路由是首選的,但不是完全可信的。到20世紀(jì)90年代末,自動(dòng)化綜合,布局布線,是設(shè)計(jì)過(guò)程中需要采取的步驟。沒(méi)有自動(dòng)化,設(shè)計(jì)的努力就會(huì)太棒了?,F(xiàn)在,F(xiàn)PGA公司的壽命取決于設(shè)計(jì)自動(dòng)化工具的目標(biāo)設(shè)備的能力。那些控制他們軟件的FPGA公司控制著他們的未來(lái)。
圖7.更長(zhǎng)線長(zhǎng)分段性能縮放。
來(lái)自工藝縮放的更便宜的金屬導(dǎo)致更多可編程的互連線,使得自動(dòng)化的放置工具可以以較不精確的放置成功。自動(dòng)化設(shè)計(jì)工具需要自動(dòng)化友好型架構(gòu),具有常規(guī)和豐富的互連資源的架構(gòu),以簡(jiǎn)化算法決策。更便宜的電線也承認(rèn)了更長(zhǎng)的電線分割,跨越多個(gè)邏輯塊的互連線??缭蕉鄠€(gè)塊的電線有效地使物理距離邏輯更接近邏輯,從而提高性能。圖7中的圖表顯示了來(lái)自工藝技術(shù)和互連范圍組合的大的性能收益。過(guò)程縮放本身會(huì)降低曲線,但保持形狀;更長(zhǎng)的分割平坦了曲線。較長(zhǎng)的分段互連簡(jiǎn)化了布局,因?yàn)椴捎幂^長(zhǎng)的互連,將兩個(gè)模塊精確對(duì)齊以將其與高性能路徑連接起來(lái)并不是必須的。
另一方面,當(dāng)線段的整個(gè)長(zhǎng)度未被使用時(shí),金屬跡線的部分被有效地浪費(fèi)。許多硅片效率的發(fā)明架構(gòu)是以布線效率為基礎(chǔ)的,其特點(diǎn)是短線可以消除浪費(fèi)。通常,他們嚴(yán)格遵循物理硅的二維限制,從而使這些FPGA成為“蜂窩”標(biāo)簽。在擴(kuò)展階段,更長(zhǎng)的線分割是可能的,因?yàn)閺U金屬的成本現(xiàn)在是可以接受的。由最鄰近連接主導(dǎo)的體系結(jié)構(gòu)無(wú)法與利用較長(zhǎng)線分割的體系結(jié)構(gòu)的性能或易于自動(dòng)化相匹配。
類(lèi)似的效率轉(zhuǎn)變應(yīng)用于邏輯塊。在發(fā)明階段,小的簡(jiǎn)單的邏輯塊是有吸引力的,因?yàn)樗鼈兊倪壿嬔舆t很短,并且因?yàn)樵谖词褂没虿糠质褂脮r(shí)浪費(fèi)很少。當(dāng)一個(gè)三輸入函數(shù)在其中被實(shí)例化時(shí),四輸入LUT中的一半配置存儲(chǔ)器單元被浪費(fèi)了。聰明的設(shè)計(jì)人員可以手動(dòng)將復(fù)雜的邏輯結(jié)構(gòu)映射到最小數(shù)量的細(xì)粒度邏輯塊,但自動(dòng)化工具并不成功。對(duì)于更大的功能,連接幾個(gè)小塊的需求對(duì)互連提出了更高的要求。在擴(kuò)張階段,不僅有更多的邏輯塊,而且塊本身變得更加復(fù)雜。
許多具有不規(guī)則邏輯塊和稀疏互連的高效發(fā)明架構(gòu)難以自動(dòng)布局和布線。在發(fā)明階段,這不是一個(gè)嚴(yán)重的問(wèn)題,因?yàn)樵O(shè)備足夠小,手工設(shè)計(jì)是實(shí)用的。但擴(kuò)張階段的許多設(shè)備和公司都面臨著過(guò)高的面積效率?;谧钚』壿嬂速M(fèi)的細(xì)粒度體系結(jié)構(gòu)(如Pilkington nand-gate模塊,Algotronix / Xilinx 6200多路復(fù)用器2LUT模塊,交叉點(diǎn)晶體管模塊)簡(jiǎn)直就不存在了。通過(guò)互連來(lái)實(shí)現(xiàn)其效率的架構(gòu)也已經(jīng)死亡。這些包括所有最近鄰居基于網(wǎng)格的架構(gòu)。擴(kuò)展階段也注定了時(shí)間復(fù)用設(shè)備,因?yàn)橹恍枰却乱淮幚?,相?dāng)?shù)娜萘繑U(kuò)展就可以避免復(fù)雜性和性能的損失。FPGA業(yè)務(wù)中的幸存者是那些利用工藝技術(shù)進(jìn)步實(shí)現(xiàn)自動(dòng)化的公司。Altera首先將CPLD的長(zhǎng)距離連接引入Altera FLEX架構(gòu)。FLEX比其他被短導(dǎo)線占主導(dǎo)地位的FPGA的自動(dòng)化程度更高。它取得了快速的成功。20世紀(jì)90年代中期,美國(guó)電話電報(bào)公司(AT&T)/朗訊(Lucent)發(fā)布了ORCA ,賽靈思公司在擴(kuò)大XC4000互連數(shù)量和長(zhǎng)度的同時(shí)擴(kuò)大了設(shè)備規(guī)模。擴(kuò)張階段由此確立。
C.作為選擇技術(shù)的SRAM的出現(xiàn)
摩爾定律快速發(fā)展的一個(gè)方面就是需要站在過(guò)程技術(shù)的最前沿。將容量加倍和邏輯成本減半的最簡(jiǎn)單方法是針對(duì)下一個(gè)工藝技術(shù)節(jié)點(diǎn)。這迫使FPGA廠商采用領(lǐng)先的工藝技術(shù)。采用新技術(shù)難以實(shí)現(xiàn)的技術(shù)的FPGA公司在結(jié)構(gòu)上處于劣勢(shì)。非易失性可編程技術(shù)如EPROM,F(xiàn)lash和反熔絲就是這種情況。當(dāng)一種新的工藝技術(shù)可用時(shí),可用的第一個(gè)組件是晶體管和電線,這是電子電路的基本組成部分?;陟o態(tài)內(nèi)存的設(shè)備可以立即使用新的更密集的進(jìn)程。對(duì)于特定的技術(shù)節(jié)點(diǎn),防偽設(shè)備被精確地推廣為更高效,但需要數(shù)月或數(shù)年的時(shí)間才能確定新節(jié)點(diǎn)上的反熔絲。在反熔絲被證實(shí)的時(shí)候,SRAM FPGA已經(jīng)開(kāi)始在下一個(gè)節(jié)點(diǎn)上交付。防偽技術(shù)無(wú)法跟上技術(shù)發(fā)展的步伐,所以為了維持產(chǎn)品的平價(jià),它們的效率要比SRAM高一倍。
防偽裝置有第二個(gè)缺點(diǎn):缺乏重新編程能力。隨著客戶(hù)習(xí)慣于“易失性”SRAM FPGA,他們開(kāi)始體會(huì)到系統(tǒng)內(nèi)可編程性和硬件現(xiàn)場(chǎng)更新的優(yōu)勢(shì)。相比之下,一次性可編程設(shè)備需要進(jìn)行物理處理才能更新或修復(fù)設(shè)計(jì)錯(cuò)誤。反熔絲設(shè)備的替代品是一個(gè)廣泛的類(lèi)似ASIC的驗(yàn)證階段,這削弱了FPGA的價(jià)值。
摩爾定律在擴(kuò)張階段的快速發(fā)展將反熔絲和閃存FPGA降級(jí)為利基產(chǎn)品。
D. LUT作為選擇邏輯單元的出現(xiàn)
雖然在擴(kuò)張時(shí)期被記錄下來(lái)的低效率,但有幾個(gè)原因,LUT仍然存在并占據(jù)主導(dǎo)地位。首先,基于LUT的體系結(jié)構(gòu)是綜合工具的簡(jiǎn)單目標(biāo)。這個(gè)說(shuō)法在20世紀(jì)90年代中期會(huì)有爭(zhēng)議,當(dāng)時(shí)綜合供應(yīng)商抱怨FPGA不是“合成友好的”。這種觀點(diǎn)產(chǎn)生是因?yàn)榫C合工具最初是針對(duì)ASIC設(shè)計(jì)的。他們的技術(shù)映射者期望一個(gè)小型庫(kù),其中每個(gè)單元被描述為一個(gè)帶有逆變器的網(wǎng)絡(luò)。由于LUT實(shí)現(xiàn)了22n個(gè)輸入組合中的任何一個(gè),所以完整的庫(kù)將是巨大的。ASIC技術(shù)映射工作者在基于LUT的FPGA上做了apoor工作。但到了20世紀(jì)90年代中期,有針對(duì)性的LUT映射器利用了將任意函數(shù)映射到LUT中的簡(jiǎn)單性。
LUT具有隱藏的效率。LUT是一個(gè)內(nèi)存,并且存儲(chǔ)器在硅片中有效地布局。LUT還可以節(jié)省互連。FPGA可編程互連在面積和延遲方面是昂貴的。FPGA互連不像ASIC那樣簡(jiǎn)單的金屬線,而是包含緩沖區(qū),路由多路復(fù)用器和存儲(chǔ)單元來(lái)控制它們。因此,更多的邏輯成本實(shí)際上是在互連。由于LUT實(shí)現(xiàn)了其輸入的任何功能,因此自動(dòng)化工具只需要在LUT中將所需的信號(hào)一起發(fā)送,以淘汰這些輸入的功能。沒(méi)有必要為了創(chuàng)建一小組輸入的所需功能而使得多級(jí)LUT成為可能。LUT輸入引腳是可任意交換的,所以路由器不需要針對(duì)特定的引腳。結(jié)果,基于LUT的邏輯減少了實(shí)現(xiàn)功能所需的互連數(shù)量。通過(guò)良好的綜合,來(lái)自未使用的LUT功能的浪費(fèi)小于來(lái)自減少的互連要求的節(jié)省。
分布式存儲(chǔ)單元編程允許架構(gòu)自由,并使FPGA供應(yīng)商幾乎可以普遍獲得工藝技術(shù)。用于邏輯實(shí)現(xiàn)的LUT減輕了互連的負(fù)擔(dān)。Xilinx衍生的基于LUT的體系結(jié)構(gòu)出現(xiàn)在賽靈思的第二個(gè)來(lái)源:Monolithic Memories,AMD和AT&T。在擴(kuò)展階段,其他公司,特別是Altera和AT&T / Lucent也采用了存儲(chǔ)單元和LUT架構(gòu)。
插曲:FPGA 鐘形容量曲線
圖8. FPGA市場(chǎng)的增長(zhǎng)
圖8中的鐘形曲線表示ASIC應(yīng)用程序的大小分布的直方圖。某個(gè)時(shí)候的FPGA容量是X軸上的一個(gè)點(diǎn),用豎條表示。條形圖左側(cè)的所有應(yīng)用程序都是可以由FPGA來(lái)處理的應(yīng)用程序,因此FPGA的可尋址市場(chǎng)是條形圖左側(cè)曲線下方的陰影區(qū)域。在擴(kuò)展階段,摩爾定律的FPGA容量增加了,所以吧移到了右邊。當(dāng)然,應(yīng)用程序的整個(gè)鐘形曲線也向右移動(dòng),但應(yīng)用程序大小的增長(zhǎng)速度比FPGA容量增長(zhǎng)要慢。結(jié)果,代表FPGA的條形圖相對(duì)于設(shè)計(jì)的分布迅速地移動(dòng)。由于FPGA解決了曲線的低端問(wèn)題,因此即使可用容量略有增加,也承認(rèn)了大量的新應(yīng)用。在擴(kuò)展階段,F(xiàn)PGA容量覆蓋了現(xiàn)有設(shè)計(jì)的不斷增長(zhǎng)的一小部分,并逐漸成為解決大部分ASIC應(yīng)用的技術(shù)。
圖9.設(shè)計(jì)差距 來(lái)源:Synopsys,Gartner,VLSI Technology,Xilinx。
從1990年代后期在EDA供應(yīng)商中流行的“設(shè)計(jì)差距”幻燈片中也可以看出這種增加的適用性(圖9)。按照摩爾定律,ASIC和FPGA的容量在增長(zhǎng):ASIC以每年59%的速度增長(zhǎng),F(xiàn)PGA以每年48%的速度增長(zhǎng)。觀察到的平均ASIC設(shè)計(jì)開(kāi)始增長(zhǎng)速度要慢得多,每年只有25%。因此,F(xiàn)PGA容量在2000年達(dá)到了平均的ASIC設(shè)計(jì)規(guī)模,但是對(duì)于一個(gè)大的(昂貴的)FPGA。但到了2004年,預(yù)計(jì)10美元的FPGA將滿(mǎn)足ASIC的平均要求。在二十一世紀(jì)初,這個(gè)交叉點(diǎn)進(jìn)一步發(fā)展,因?yàn)镕PGA解決了ASIC市場(chǎng)的低端問(wèn)題,而這些小型設(shè)計(jì)成為了FPGA設(shè)計(jì)。平均ASIC設(shè)計(jì)尺寸計(jì)算中不再包含小型設(shè)計(jì),從而在新的千年中平均ASIC設(shè)計(jì)尺寸大幅增加。今天,由于FPGA幾乎成功吸收了ASIC業(yè)務(wù)的整個(gè)低端市場(chǎng),所以平均ASIC比圖9所顯示的要大得多。
擴(kuò)張階段回顧
通過(guò)擴(kuò)張階段,摩爾定律迅速提高了FPGA的容量,導(dǎo)致了對(duì)設(shè)計(jì)自動(dòng)化的需求,并允許更長(zhǎng)的互連分段。過(guò)于高效的架構(gòu),無(wú)法有效自動(dòng)化簡(jiǎn)單地消失。SRAM器件首先開(kāi)發(fā)新的工藝技術(shù)并主導(dǎo)業(yè)務(wù)。由于FPGA器件容量的增長(zhǎng)速度超過(guò)了應(yīng)用的需求,F(xiàn)PGA正在侵蝕ASIC領(lǐng)域。用戶(hù)不再要求使用多FPGA分區(qū)軟件:設(shè)計(jì)有時(shí)適合于現(xiàn)有的FPGA。
隨著FPGA越來(lái)越流行,EDA公司開(kāi)始為他們提供工具。然而,EDA公司的提議被懷疑。FPGA退伍軍人已經(jīng)看到PLD供應(yīng)商如何通過(guò)交出軟件而失去對(duì)其創(chuàng)新的控制。他們拒絕讓這種情況發(fā)生在FPGA領(lǐng)域。此外,主要的FPGA公司擔(dān)心客戶(hù)可能會(huì)依賴(lài)外部EDA公司的工具。如果發(fā)生這種情況,EDA公司可以通過(guò)軟件工具價(jià)格有效地提升FPGA NRE。這將削弱FPGA的價(jià)值主張,將交叉點(diǎn)轉(zhuǎn)回到較低的交易量。一些重要的FPGA-EDA聯(lián)盟是在合成域V中由定義體系結(jié)構(gòu)的物理設(shè)計(jì)工具進(jìn)行的。盡管聯(lián)盟,F(xiàn)PGA公司保持競(jìng)爭(zhēng)力的項(xiàng)目,以防止依賴(lài)的可能性。在擴(kuò)展階段,F(xiàn)PGA供應(yīng)商發(fā)現(xiàn)自己與ASIC技術(shù)和EDA技術(shù)競(jìng)爭(zhēng)。
圖10. 賽靈思市場(chǎng)營(yíng)銷(xiāo),圖片由Xilinx提供。
插曲:XILINX的市場(chǎng)
到20世紀(jì)90年代后期,擴(kuò)展階段在FPGA業(yè)務(wù)中得到了很好的理解。FPGA供應(yīng)商正在積極尋求處理技術(shù),以解決其尺寸,性能和容量問(wèn)題。每一代新工藝都帶來(lái)了許多新的應(yīng)用。圖10中的幻燈片摘自2000年Xilinx市場(chǎng)推廣演示。當(dāng)時(shí)可用的最大的FPGA Virtex 1000被描述為左下角的小黑色矩形?;脽羝@示,擴(kuò)張階段將繼續(xù)有增無(wú)減,在接下來(lái)的五年里,把城門(mén)數(shù)量增加到5000萬(wàn)。盡管摩爾定律堅(jiān)定不移,但這并沒(méi)有發(fā)生。在下面的章節(jié)中,我們將研究真正發(fā)生的事情和原因。
圖11. FPGA可尋址市場(chǎng)的增長(zhǎng)正在縮小。
累積階段, 2000–2007.
在新千年的開(kāi)始,F(xiàn)PGA是數(shù)字系統(tǒng)的通用組件。容量和設(shè)計(jì)規(guī)模不斷擴(kuò)大,F(xiàn)PGA在數(shù)據(jù)通信行業(yè)中發(fā)現(xiàn)了巨大的市場(chǎng)。二十一世紀(jì)初的網(wǎng)絡(luò)泡沫造成了對(duì)低成本的需求。硅片制造的成本和復(fù)雜性日益增加,消除了“臨時(shí)”的ASIC用戶(hù)。定制芯片對(duì)于一個(gè)小團(tuán)隊(duì)來(lái)說(shuō)成功執(zhí)行風(fēng)險(xiǎn)太大了。當(dāng)他們看到他們可以將他們的問(wèn)題融入到FPGA中時(shí),他們就成了FPGA的客戶(hù)。
就像在擴(kuò)張階段一樣,摩爾定律的必然步伐使FPGA變得更大。現(xiàn)在他們比典型的問(wèn)題大。有能力比所需要的要多,沒(méi)有什么不好的,但是也沒(méi)有什么特別的美德。結(jié)果,客戶(hù)不愿意為最大的FPGA支付高額的費(fèi)用。
僅僅增加產(chǎn)能也不足以保證市場(chǎng)的增長(zhǎng)。再看圖11,F(xiàn)PGA鐘形曲線。由于FPGA容量通過(guò)了平均設(shè)計(jì)尺寸,鐘形曲線的峰值,容量的增加承認(rèn)逐漸減少的應(yīng)用。幾乎可以保證在擴(kuò)張時(shí)期獲得成功的產(chǎn)品的尺寸,在接下來(lái)的幾年里,吸引越來(lái)越少的新客戶(hù)。
FPGA供應(yīng)商通過(guò)兩種方式解決了這一挑戰(zhàn)。對(duì)于低端市場(chǎng),他們重新關(guān)注效率,并生產(chǎn)低容量,低性能的“低成本”FPGA產(chǎn)品系列:Xilinx的Spartan,Altera的Cyclone和Lattice的EC / ECP。
對(duì)于高端市場(chǎng),F(xiàn)PGA供應(yīng)商希望能夠讓客戶(hù)更容易地填滿(mǎn)他們寬敞的FPGA。他們?yōu)橹匾δ苤谱髁塑涍壿嫞↖P)庫(kù)。這些軟邏輯功能中最值得注意的是微處理器(Xilinx MicroBlaze和Altera Nios),存儲(chǔ)器控制器和各種通信協(xié)議棧。在以太網(wǎng)MAC在Virtex-4的晶體管上實(shí)現(xiàn)之前,它是作為Virtex-II的軟核心在LUT中實(shí)現(xiàn)的。IP組件的標(biāo)準(zhǔn)接口消耗了額外的LUT,但與節(jié)省設(shè)計(jì)工作量相比,效率不高。
大型的FPGA比一般的ASIC設(shè)計(jì)更大。到2000年代中期,只有ASIC仿真器需要多芯片分區(qū)器。更多的客戶(hù)有興趣在一個(gè)單一的FPGA上聚合多個(gè)可能不相關(guān)的組件。賽靈思推出了“互聯(lián)網(wǎng)可重構(gòu)邏輯”和FPGA區(qū)域劃分,允許功能單元?jiǎng)討B(tài)插入可編程邏輯資源的一個(gè)子集。
設(shè)計(jì)的特點(diǎn)在2000年代發(fā)生了變化。大型FPGA承認(rèn)大型設(shè)計(jì)是完整的子系統(tǒng)。FPGA用戶(hù)不再只是簡(jiǎn)單地實(shí)現(xiàn)邏輯;他們需要他們的FPGA設(shè)計(jì)來(lái)遵守系統(tǒng)標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)主要是信號(hào)和協(xié)議的通信標(biāo)準(zhǔn),用于連接外部組件或在內(nèi)部組件之間通信。由于FPGA在計(jì)算密集型應(yīng)用中的作用越來(lái)越大,處理標(biāo)準(zhǔn)也開(kāi)始適用。隨著FPGA成長(zhǎng)為客戶(hù)整體系統(tǒng)邏輯的一小部分,其成本和功耗也相應(yīng)增長(zhǎng)。這些問(wèn)題比擴(kuò)張階段變得更為重要。
遵循標(biāo)準(zhǔn),降低成本和降低功耗的壓力導(dǎo)致了架構(gòu)戰(zhàn)略的轉(zhuǎn)變,從簡(jiǎn)單地增加可編程邏輯和乘以摩爾定律,如在擴(kuò)展階段所做的,到添加專(zhuān)用的邏輯塊。這些模塊包括大存儲(chǔ)器,微處理器,乘法器,靈活的I / O和源同步收發(fā)器。由專(zhuān)門(mén)設(shè)計(jì)的晶體管而不是ASIC門(mén)構(gòu)成,它們通常比ASIC的實(shí)現(xiàn)效率更高。對(duì)于使用它們的應(yīng)用程序,他們減少了可編程性的面積,性能,功耗和設(shè)計(jì)工作量。
圖12.賽靈思市場(chǎng)營(yíng)銷(xiāo) 圖片由Xilinx提供。
其結(jié)果是“平臺(tái)FPGA”,從2005年的賽靈思營(yíng)銷(xiāo)幻燈片中捕獲到,如圖12所示。與圖10相比較,不再是數(shù)百萬(wàn)門(mén)的消息,而是預(yù)定義的,性能專(zhuān)用塊。甚至“門(mén)”這個(gè)詞也從幻燈片中消失了。這個(gè)FPGA不僅僅是LUT,觸發(fā)器,I / O和可編程路由的集合。它包括乘法器,RAM塊,多個(gè)Power-PC微處理器,時(shí)鐘管理,千兆速率源同步收發(fā)器和位流加密,以保護(hù)設(shè)計(jì)的IP。FPGA工具不斷增長(zhǎng),以實(shí)現(xiàn)這一不斷增長(zhǎng)的實(shí)施目標(biāo)。
為了減輕使用新功能和滿(mǎn)足系統(tǒng)標(biāo)準(zhǔn)的負(fù)擔(dān),F(xiàn)PGA供應(yīng)商提供了邏輯發(fā)生器,通過(guò)將其專(zhuān)用功能和軟邏輯相結(jié)合來(lái)構(gòu)建目標(biāo)功能。軟邏輯的生成器和庫(kù)為軟核和強(qiáng)化處理器上的外設(shè)提供了CoreConnect,AXI和其他總線的接口。他們還構(gòu)建了圍繞串行收發(fā)器的固定功能物理接口的總線協(xié)議邏輯。Xilinx系統(tǒng)生成器和Altera DSP Builder自動(dòng)化了DSP系統(tǒng)的大部分組裝,由固定功能和LUT組合而成。為了簡(jiǎn)化微處理器系統(tǒng)的創(chuàng)建,賽靈思提供了嵌入式設(shè)計(jì)套件(EDK),而Altera則發(fā)布了其嵌入式系統(tǒng)設(shè)計(jì)套件(ESDK)。這些功能的演示包括在FPGA處理器上運(yùn)行的FPGA,在FPGA架構(gòu)中進(jìn)行視頻壓縮和解壓縮。
但是,那些不需要固定職能的積累年齡的客戶(hù)是什么呢?對(duì)于不需要Power-PC處理器,存儲(chǔ)器或乘法器的客戶(hù)來(lái)說(shuō),該塊的面積被浪費(fèi)了,有效地降低了FPGA的成本和速度。起初,F(xiàn)PGA供應(yīng)商試圖確保這些功能可以用于邏輯,如果他們不是主要用途的需要。他們提供了“大型LUT映射”軟件,將邏輯移入未使用的RAM塊。賽靈思發(fā)布了“超級(jí)控制器”,將狀態(tài)機(jī)映射到Virtex-II Pro中硬化Power-PC的微處理器代碼。但是這些措施最終被認(rèn)為是不重要的。這表明我們距離發(fā)明階段還有多遠(yuǎn),F(xiàn)PGA供應(yīng)商和客戶(hù)都只是接受了浪費(fèi)的領(lǐng)域。Xilinx副總裁表示,他將在FPGA上提供四個(gè)Power-PC處理器,并不關(guān)心客戶(hù)是否使用其中任何一個(gè)。我們給他們免費(fèi)的處理器。
表1 FPGA上選定專(zhuān)用邏輯
插曲:所有階段都如此
積累的階段并不是獨(dú)一無(wú)二的,正如增加設(shè)備的能力并不是獨(dú)特的擴(kuò)張階段或獨(dú)特的發(fā)明階段的建筑創(chuàng)新。在發(fā)明階段,門(mén),路由和三態(tài)總線是可用的,而算術(shù),內(nèi)存和專(zhuān)用I / O出現(xiàn)在擴(kuò)展階段(表1)。在FPGA的各個(gè)階段都增加了專(zhuān)用的模塊,這充分表明它們將繼續(xù)在多樣性和復(fù)雜性方面發(fā)展。一般來(lái)說(shuō),成功的專(zhuān)用功能本質(zhì)上是通用的,使用可編程LUT和互連的靈活性來(lái)定制功能。嘗試生產(chǎn)針對(duì)特定領(lǐng)域或特定應(yīng)用的FPGA尚未證明是成功的,因?yàn)樗鼈兪チ薋PGA經(jīng)濟(jì)所依賴(lài)的批量生產(chǎn)的優(yōu)勢(shì)。當(dāng)然,直到“積累階段”才引起了“通信FPGA”的興起。
累積階段回顧
A.應(yīng)用
“積累階段”中FPGA的最大變化是目標(biāo)應(yīng)用程序的變化。FPGA業(yè)務(wù)不是從通用的ASIC替代發(fā)展而是由通信基礎(chǔ)設(shè)施的采用。像Cisco這樣的公司使用FPGA來(lái)定制數(shù)據(jù)路徑,以便通過(guò)交換機(jī)和路由器轉(zhuǎn)發(fā)大量的互聯(lián)網(wǎng)和打包語(yǔ)音流量。他們的性能要求消除了標(biāo)準(zhǔn)微處理器和陣列處理器,單位體積在FPGA交叉點(diǎn)內(nèi)。新的網(wǎng)絡(luò)路由架構(gòu)和算法可以在FPGA中快速實(shí)施并在現(xiàn)場(chǎng)進(jìn)行更新。在“積累階段”,通信行業(yè)的銷(xiāo)售額迅速增長(zhǎng),超過(guò)FPGA業(yè)務(wù)的一半。
當(dāng)然,這一成功使得主要FPGA制造商為通信行業(yè)定制FPGA。通信專(zhuān)用FPGA集成了高速I(mǎi) / O收發(fā)器,數(shù)千個(gè)專(zhuān)用高性能乘法器,能夠在不犧牲吞吐量的情況下制作大量數(shù)據(jù)路徑和深度流水線。為了更好地滿(mǎn)足通信應(yīng)用需求而添加的專(zhuān)用塊和路由減少了可用的通用邏輯區(qū)域。到2000年代末,F(xiàn)PGA不像通用數(shù)據(jù)路由引擎那樣通用ASIC替代。隨著多核處理器和通用圖形處理器單元(GPGPU)的出現(xiàn),F(xiàn)PGA仍然是高吞吐量,實(shí)時(shí)計(jì)算的首選。同時(shí),F(xiàn)PGA保持其通用性。FPGA逐位可編程能力確保了它們?cè)诎刂坪推?chē)系統(tǒng)在內(nèi)的廣泛應(yīng)用中的持續(xù)使用。
B. 摩爾定律
經(jīng)典的Dennard縮放,同時(shí)在成本,容量,功耗和性能方面進(jìn)行了改進(jìn),在2000年代中期結(jié)束。后來(lái)的技術(shù)世代仍然在容量和成本方面進(jìn)行了改進(jìn)。電力也在不斷改善,但與性能之間有著明顯的折衷。從一個(gè)技術(shù)節(jié)點(diǎn)到下一個(gè)技術(shù)節(jié)點(diǎn)的性能收益是適度的,并且與節(jié)能相抵消。這種效應(yīng)在圖1中的性能增長(zhǎng)放緩中表現(xiàn)得很明顯。這些折衷也推動(dòng)了功能的積累,因?yàn)槿缭跀U(kuò)展階段那樣簡(jiǎn)單地依賴(lài)于工藝技術(shù)的縮放并不足以改善功率和性能。邏輯強(qiáng)化提供了必要的改進(jìn)。
我們現(xiàn)在將步入FPGA的下一個(gè)階段,那么下一個(gè)階段是什么呢?
圖13.按全球流程節(jié)點(diǎn)估算的芯片設(shè)計(jì)成本。
數(shù)據(jù):賽靈思和Gartner,2011。
目前階段:不再是可編程邏輯
在積累階段結(jié)束之前,F(xiàn)PGA不是門(mén)陣列,而是集成了可編程邏輯的累積模塊集合。他們?nèi)匀皇强删幊痰?,但不限于可編程邏輯。在累積階段獲得的可編程性的額外維度增加了設(shè)計(jì)負(fù)擔(dān)。設(shè)計(jì)工作是FPGA與ASIC競(jìng)爭(zhēng)的一個(gè)優(yōu)勢(shì),與新近到來(lái)的多核處理器和GPU競(jìng)爭(zhēng)是一個(gè)劣勢(shì)。
FPGA開(kāi)發(fā)者繼續(xù)承受著壓力。2008年開(kāi)始的經(jīng)濟(jì)放緩繼續(xù)推動(dòng)降低成本的愿望。這種壓力不僅體現(xiàn)在降低功能價(jià)格的要求上,而且體現(xiàn)在降低使用這些設(shè)備的成本的低功耗上。后Dennard縮放處理技術(shù)未能實(shí)現(xiàn)新工藝技術(shù)在過(guò)去幾十年中所帶來(lái)的成本,容量,性能,功耗和可靠性方面的巨大并發(fā)利益。特別需要關(guān)注的是權(quán)力和績(jī)效之間的權(quán)衡。怎么辦?
A.應(yīng)用
在積累階段,20世紀(jì)80年代把定制設(shè)備推向市場(chǎng)的ASIC公司正悄然消失。當(dāng)然,定制插座專(zhuān)用ASIC器件仍然存在,但僅限于具有非常大的體積或極端操作要求的設(shè)計(jì)。FPGA是否打敗了他們?好吧,部分。在2000年代,ASIC NRE收費(fèi)對(duì)于大多數(shù)應(yīng)用來(lái)說(shuō)太大了。這可以在圖13中看到,其中開(kāi)發(fā)成本以百萬(wàn)美元繪制在技術(shù)節(jié)點(diǎn)上。定制設(shè)備的開(kāi)發(fā)成本達(dá)到幾十億美元。一家將20%的收入用于研發(fā)的公司需要從芯片銷(xiāo)售中獲得5億美元的收s入,以此來(lái)支付億元的開(kāi)發(fā)成本。FPGA交叉點(diǎn)達(dá)到了數(shù)百萬(wàn)個(gè)單位。有很少的芯片可以銷(xiāo)售,特別是微處理器,存儲(chǔ)器和手機(jī)處理器。伴隨著另一次經(jīng)濟(jì)衰退,銷(xiāo)售不確定性和新產(chǎn)品收入的長(zhǎng)期交易,結(jié)果是不可避免的:如果應(yīng)用程序需求可以通過(guò)可編程器件滿(mǎn)足,則可編程邏輯是首選解決方案。FPGA的優(yōu)勢(shì)從最初的階段起依然在運(yùn)行:通過(guò)共享開(kāi)發(fā)成本降低總體成本。
ASIC并沒(méi)有消亡。ASIC通過(guò)以應(yīng)用特定標(biāo)準(zhǔn)產(chǎn)品(ASSP)片上系統(tǒng)(SoC)器件的形式增加可編程性而存活并擴(kuò)展。SoC結(jié)合了一系列固定功能模塊和一個(gè)微處理器子系統(tǒng)。通常為特定應(yīng)用領(lǐng)域選擇功能塊,如圖像處理或聯(lián)網(wǎng)。微處理器控制數(shù)據(jù)流,并允許通過(guò)編程以及現(xiàn)場(chǎng)更新進(jìn)行定制。SoC為硬件解決方案提供了結(jié)構(gòu),編程微處理器比設(shè)計(jì)硬件更容易。利用FPGA的優(yōu)勢(shì),可編程ASSP器件服務(wù)于更廣泛的市場(chǎng),更廣泛地分?jǐn)偲溟_(kāi)發(fā)成本。構(gòu)建ASSP SoC的公司成為無(wú)晶圓半導(dǎo)體供應(yīng)商,能夠滿(mǎn)足高開(kāi)發(fā)成本所需的銷(xiāo)售目標(biāo)。
隨著ASIC向SoC轉(zhuǎn)移,可編程邏輯供應(yīng)商開(kāi)發(fā)了可編程SoC。這絕對(duì)不是在數(shù)據(jù)通信領(lǐng)域如此流行的數(shù)據(jù)吞吐量引擎,也不是門(mén)陣列。可編程系統(tǒng)FPGA是完全可編程的片上系統(tǒng),包含存儲(chǔ)器,微處理器,模擬接口,片上網(wǎng)絡(luò)和可編程邏輯模塊。這種新型FPGA的例子是Xilinx All-Programmable Zynq,Altera SoC FPGA和Actel / Microsemi M1。
B.設(shè)計(jì)工具
這些新的FPGA具有新的設(shè)計(jì)要求。最重要的是,它們是軟件可編程的,也是硬件可編程的。微處理器并不是象“積累階段”(Age of Accumulation)那樣將簡(jiǎn)單的硬件模塊放入FPGA中,而是包含一個(gè)帶有高速緩存,總線,片上網(wǎng)絡(luò)和外設(shè)的完整環(huán)境。捆綁軟件包括操作系統(tǒng),編譯器和中間件:整個(gè)生態(tài)系統(tǒng),而不是一個(gè)集成的功能塊。一起編程軟件和硬件增加了設(shè)計(jì)復(fù)雜性。
但這仍然是冰山一角。為了實(shí)現(xiàn)替代ASIC或SoC的目標(biāo),F(xiàn)PGA繼承了這些器件的系統(tǒng)要求?,F(xiàn)代FPGA具有功率控制,如電壓調(diào)節(jié)和Stratix自適應(yīng)體偏置。最先進(jìn)的安全性是必需的,包括Xilinx Zynq SoC和Microsemi SmartFusion中的公鑰加密技術(shù)。完整的系統(tǒng)需要混合信號(hào)接口來(lái)實(shí)現(xiàn)真實(shí)的接口。這些也監(jiān)測(cè)電壓和溫度。所有這些都需要FPGA成為一個(gè)完整的片上系統(tǒng),一個(gè)可信的ASSP SoC器件。因此,F(xiàn)PGA已經(jīng)發(fā)展到邏輯門(mén)陣列通常不到面積的一半。一路上,F(xiàn)PGA設(shè)計(jì)工具已經(jīng)發(fā)展到包含廣泛的設(shè)計(jì)問(wèn)題。FPGA公司的EDA工程師數(shù)量與設(shè)計(jì)工程師的數(shù)量相當(dāng)。
C.工藝技術(shù)
盡管在過(guò)去的三十年中,工藝規(guī)模一直在穩(wěn)步持續(xù)發(fā)展,但摩爾定律對(duì)FPGA架構(gòu)的影響在不同的階段是截然不同的。為了在發(fā)明階段取得成功,F(xiàn)PGA需要積極的架構(gòu)和流程創(chuàng)新。
在擴(kuò)張階段,駕駛摩爾定律是解決不斷增長(zhǎng)的市場(chǎng)的最成功的方法。隨著FPGA逐漸成為系統(tǒng)組件,它們被要求滿(mǎn)足這些標(biāo)準(zhǔn),網(wǎng)絡(luò)泡沫破裂要求它們以更低的價(jià)格提供這些接口。FPGA行業(yè)依靠工藝技術(shù)擴(kuò)展來(lái)滿(mǎn)足其中的許多要求。
自Dennard縮放結(jié)束以來(lái),工藝技術(shù)的性能收益有限,無(wú)法達(dá)到功耗目標(biāo)。每個(gè)工藝節(jié)點(diǎn)也提供了較少的密度改進(jìn)。隨著復(fù)雜工藝變得越來(lái)越昂貴,每個(gè)新節(jié)點(diǎn)中晶體管數(shù)量的增長(zhǎng)減慢。一些預(yù)測(cè)聲稱(chēng),每個(gè)晶體管的成本將上升。像整個(gè)半導(dǎo)體行業(yè)一樣,F(xiàn)PGA產(chǎn)業(yè)依靠技術(shù)擴(kuò)展來(lái)提供改進(jìn)的產(chǎn)品。如果改進(jìn)不再來(lái)自技術(shù)擴(kuò)展,那么它們從哪里來(lái)?
減緩工藝技術(shù)改進(jìn)提高了新型FPGA電路和架構(gòu)的可行性:回到發(fā)明階段。但是這并不像回到1990年那么簡(jiǎn)單。這些改變必須在不降低FPGA的易用性的情況下進(jìn)行。這個(gè)新階段給FPGA電路和應(yīng)用工程師帶來(lái)了更大的負(fù)擔(dān)。
D.設(shè)計(jì)努力
注意最后一節(jié)的重點(diǎn)是設(shè)備屬性:成本,容量,速度和功耗。成本,容量和速度正是FPGA在20世紀(jì)80年代和90年代處于ASIC劣勢(shì)的那些屬性。然而他們興旺起來(lái)。對(duì)這些屬性的狹隘關(guān)注可能會(huì)被誤導(dǎo),就像ASIC公司在20世紀(jì)90年代對(duì)它們的狹隘關(guān)注導(dǎo)致他們低估了FPGA。盡管存在缺點(diǎn),但可編程性給了FPGA一個(gè)優(yōu)勢(shì)。這種優(yōu)勢(shì)轉(zhuǎn)化為風(fēng)險(xiǎn)更低,設(shè)計(jì)更簡(jiǎn)單。這些屬性仍然有價(jià)值,但其他技術(shù)也提供可編程性。
設(shè)計(jì)工作和風(fēng)險(xiǎn)正在成為可編程邏輯中的關(guān)鍵要求。非常大的系統(tǒng)難以正確設(shè)計(jì),需要設(shè)計(jì)師團(tuán)隊(duì)。組裝復(fù)雜的計(jì)算或數(shù)據(jù)處理系統(tǒng)的問(wèn)題促使客戶(hù)找到更簡(jiǎn)單的解決方案。隨著設(shè)計(jì)成本和時(shí)間的增加,它們成為FPGA的一個(gè)問(wèn)題,如ASIC在20世紀(jì)90年代的ASIC NRE成本。從本質(zhì)上講,大的設(shè)計(jì)成本會(huì)破壞FPGA的價(jià)值主張。
就像30年前尋求定制集成電路的客戶(hù)被ASIC吸引到FPGA一樣,現(xiàn)在很多人都被多核處理器,圖形處理器(GPU)和軟件可編程應(yīng)用特定標(biāo)準(zhǔn)產(chǎn)品(ASSP)所吸引。這些替代解決方案提供預(yù)先設(shè)計(jì)的系統(tǒng)軟件,以簡(jiǎn)化到他們的映射問(wèn)題。它們犧牲了易用性的可編程邏輯的一些靈活性,性能和功率效率。很明顯,雖然有許多FPGA用戶(hù)需要利用FPGA技術(shù)的極限,但是還有許多其他技術(shù)能力足夠的人,但是由于使用這種技術(shù)的復(fù)雜性而使他們感到害怕。
設(shè)備的復(fù)雜性和能力促使設(shè)計(jì)工具的能力增加?,F(xiàn)代的FPGA工具集包括從C,Cuda和OpenCL到邏輯或嵌入式微處理器的高級(jí)綜合匯編。供應(yīng)商提供的邏輯和處理功能庫(kù)支持設(shè)計(jì)成本。工作的操作系統(tǒng)和管理程序控制FPGA SoC操作。FPGA設(shè)計(jì)系統(tǒng)內(nèi)置了團(tuán)隊(duì)設(shè)計(jì)功能,包括構(gòu)建控制。一些功能是由供應(yīng)商自己建立的,另一些則是不斷增長(zhǎng)的FPGA生態(tài)系統(tǒng)的一部分。
顯然,可用性對(duì)于FPGA的下一個(gè)階段至關(guān)重要。這種可用性是通過(guò)更好的工具,更高級(jí)的建筑,工藝技術(shù)的開(kāi)發(fā)還是固定塊的更多積累來(lái)實(shí)現(xiàn)的?最有可能的是,就像以前的每一個(gè)年齡都需要為每個(gè)年齡段做出貢獻(xiàn)一樣,所有的技巧都需要成功。還有更多。與其他階段一樣,F(xiàn)PGA的下一個(gè)階段將只是在回顧中才會(huì)完全清楚。在整個(gè)年齡,期望看到歷史悠久的好工程:從現(xiàn)有的技術(shù)生產(chǎn)出最好的產(chǎn)品。隨著現(xiàn)有技術(shù)和“最佳”定義的不斷變化,這一良好的工程將會(huì)完成。
FPGA的未來(lái)
未來(lái)是什么?此后是什么階段?我拒絕推測(cè),而是發(fā)出一個(gè)挑戰(zhàn):記住Alan Kay的話:“預(yù)測(cè)未來(lái)的最好方法就是發(fā)明它?!?/p>