如何選擇滿足FPGA設(shè)計(jì)需求的工藝?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
FPGA在系統(tǒng)中表現(xiàn)出的特性是由芯片制造的半導(dǎo)體工藝決定的,當(dāng)然它們之間的關(guān)系比較復(fù)雜。過(guò)去,在每一節(jié)點(diǎn)會(huì)改進(jìn)工藝的各個(gè)方面,每一新器件的最佳工藝選擇是尺寸最小的最新工藝?,F(xiàn)在,情況已不再如此。
取而代之的是,當(dāng)今的可編程邏輯供應(yīng)商必須研究各種工藝選擇,才能滿足采用FPGA的設(shè)計(jì)的各類(lèi)需求。本文將介紹三類(lèi)工藝特性,它們與現(xiàn)代FPGA內(nèi)部結(jié)構(gòu)的聯(lián)系,以及FPGA對(duì)采用了這些工藝的系統(tǒng)的影響。其中將特別介紹圍繞名為FinFET的晶體管加速應(yīng)用的革命性變革,Altera怎樣采用獨(dú)特的FinFET工藝,特別是Intel 的14nm三柵極工藝進(jìn)一步提高FPGA密度、性能和功效,而這是平面FET技術(shù)發(fā)展根本無(wú)法實(shí)現(xiàn)的。
工藝特性
對(duì)于IC設(shè)計(jì)人員,有三類(lèi)由工藝決定的特性,這些特性一起體現(xiàn)了工藝。它們是特征層距、晶體管行為和可用性。
層距是指成品IC類(lèi)似特性之間的最小間隔,有助于確定管芯尺寸和容量,還能夠間接地決定電路速率和功耗。管芯的每一特征層——晶體管、本地互聯(lián)、接觸,以及連續(xù)的上面金屬層,都有自己的層距。由工藝工程師根據(jù)光刻極限和其他工藝約束、成本以及工藝設(shè)計(jì)人員認(rèn)為客戶會(huì)怎樣使用工藝來(lái)選擇這些不同層的間距。這些層距相互作用,決定了某一類(lèi)電路中晶體管的實(shí)際密度。
讓我們從底層開(kāi)始。在某一電路中封裝多少晶體管大致取決于兩個(gè)問(wèn)題:晶體管能夠靠得多近,互聯(lián)之間有多大的間距才能滿足它們的連接要求。兩者都會(huì)帶來(lái)限制,這取決于電路設(shè)計(jì)和布局。當(dāng)然,晶體管能夠封裝的距離有多近取決于其大小和形狀。
從本地互聯(lián)、接觸層往上,越到上面的金屬層堆疊(圖1),層距就越會(huì)急劇增大。一般而言,本地互聯(lián)和下面金屬層連接附近的晶體管,決定了標(biāo)準(zhǔn)單元或者 SRAM等仔細(xì)封裝的結(jié)構(gòu)的密度。上面的金屬層連接電路,最終將功能模塊連接起來(lái),實(shí)現(xiàn)總線連線,分配電源和時(shí)鐘連接。上層的數(shù)量和層距對(duì)于芯片設(shè)計(jì)人員而言也非常重要,這是因?yàn)樗鼈儧Q定了芯片不同部分之間連接的帶寬和功耗。
圖1.堆疊越高,金屬層距越大,如這一傳統(tǒng)的Altera CPLD所示。
晶體管特性
最簡(jiǎn)單的情況是,數(shù)字設(shè)計(jì)人員對(duì)于其晶體管只關(guān)心三方面:它們有多大、晶體管開(kāi)關(guān)能有多快、它們的功耗有多大。多年來(lái),這三方面互相協(xié)調(diào)發(fā)展的非常好:每一新工藝節(jié)點(diǎn)的晶體管尺寸都在減小,開(kāi)關(guān)更快,功耗更低。
但在最近的工藝代,隨著晶體管尺寸的減小,功耗分成了兩個(gè)不同的部分:由開(kāi)關(guān)活動(dòng)造成的動(dòng)態(tài)功耗,以及晶體管無(wú)法關(guān)斷的電流所消耗的泄漏功耗。速度和動(dòng)態(tài)功耗一直是相關(guān)的,在每一新工藝節(jié)點(diǎn),速度逐漸提高,開(kāi)關(guān)功耗慢慢下降,而靜態(tài)功耗在每一新節(jié)點(diǎn)都在增大。現(xiàn)在,如果希望晶體管非??斓剡M(jìn)行開(kāi)關(guān),那么,它會(huì)泄漏。如果希望降低泄漏電流,晶體管的速度就會(huì)變慢。相應(yīng)地在芯片級(jí),某些28nm SoC,一半的功耗都是靜態(tài)泄漏功耗。
工藝和電路設(shè)計(jì)人員對(duì)此進(jìn)行了反擊。工藝工程師為芯片設(shè)計(jì)人員提供了具有不同速度和泄漏電流的各類(lèi)晶體管。電路設(shè)計(jì)人員仔細(xì)地選擇了晶體管,考慮了它們的關(guān)斷時(shí)鐘能力和供電電壓,以便有效的管理功耗。這些創(chuàng)新使得設(shè)計(jì)人員能夠開(kāi)發(fā)基于單元的數(shù)字模塊,同時(shí)具有較好的峰值性能和較低的泄漏。
但是,平面FET的問(wèn)題卻越來(lái)越嚴(yán)重。在以后的工藝代中,越來(lái)越難以進(jìn)一步降低平面FET的工作電壓。今天,很多工藝工程師同意,在20nm節(jié)點(diǎn)以后,再也不可能降低平面FET的延時(shí)功耗:電路設(shè)計(jì)人員圍繞這一指標(biāo)來(lái)綜合考慮速度和功耗。雖然已經(jīng)盡最大努力來(lái)延長(zhǎng)傳統(tǒng)平面FET的生命周期,但是,它還是在逐漸淡出。
今天,很多工藝設(shè)計(jì)人員相信,未來(lái)屬于一類(lèi)新晶體管:FinFET,即 Intel把他們的這類(lèi)器件稱(chēng)之為三柵極晶體管。實(shí)際上,晶體管是豎立在其側(cè)面的,在其他三個(gè)裸露側(cè)封裝柵極,F(xiàn)inFET的柵極能夠更好地控制通過(guò)溝道的電流,與同樣大小的平面FET相比,在速度一定時(shí),顯著降低了泄漏(技術(shù)上,更低的閾值電壓)。更低的泄漏使得設(shè)計(jì)人員能夠以較低的電壓實(shí)現(xiàn)要求的工作頻率,同時(shí)降低了動(dòng)態(tài)和泄漏功耗,或者在一定的總功耗水平上,以更高的速度工作。
而且,由于晶體管是豎立在其側(cè)面上,影響驅(qū)動(dòng)電流的溝道寬度不會(huì)直接限制晶體管彼此之間封裝的距離。因此,F(xiàn)inFET陣列要比使用相同溝道寬度的平面FET陣列的密度高得多。而且,由于器件的尺寸,F(xiàn)inFET原理上要比最小尺寸的平面FET的一致性更好。工藝工程師解釋說(shuō),平面器件在理論上已經(jīng)變得非常小,以至于可以數(shù)出溝道中摻雜原子的數(shù)量。不管出于什么原因,在生產(chǎn)過(guò)程中一些原子出錯(cuò)是難以控制的,這會(huì)導(dǎo)致晶體管閾值電壓有很大的不同,因此,其電氣性能也會(huì)不同。FinFET對(duì)這類(lèi)變化的敏感度要低得多。
FinFET在幾方面顯示出完全不會(huì)有平面FET那樣越來(lái)越多的問(wèn)題。FinFET可以封裝得更靠近一些。它們有更低、一致性更好的閾值電壓,不會(huì)出現(xiàn)不可接受的泄漏電流。較低的閾值電壓支持工作在較低的供電電壓下,顯著降低了功耗,或者工作在正常電壓下,但是大幅度提高了速度。
何時(shí)可以得到
第三個(gè)關(guān)鍵的工藝問(wèn)題并不是技術(shù)上的;它是可用性問(wèn)題。特別是器件仿真模型規(guī)劃、測(cè)試芯片、實(shí)例,以及代工線產(chǎn)品等必須要滿足系統(tǒng)設(shè)計(jì)人員的開(kāi)發(fā)計(jì)劃要求。必須盡早為FPGA設(shè)計(jì)人員提供工藝模型,以便他們估算芯片能夠?qū)崿F(xiàn)多高的性能,在系統(tǒng)設(shè)計(jì)流程早期將這一信息傳遞給系統(tǒng)規(guī)劃人員。必須為硬件原型開(kāi)發(fā)提供實(shí)例和開(kāi)發(fā)套件,以便開(kāi)始硬件和軟件集成。當(dāng)然,進(jìn)行系統(tǒng)投產(chǎn)時(shí),應(yīng)能夠批量提供 FPGA。
“可用性”是回答上面討論的問(wèn)題的答案——為什么不采用FinFET來(lái)開(kāi)發(fā)所有的東西?但還有另外一種回答。在目前的很多應(yīng)用中,現(xiàn)有的28nm或新出現(xiàn)的20nm平面FET工藝能夠滿足系統(tǒng)設(shè)計(jì)的特殊需求。這些系統(tǒng)設(shè)計(jì)不需要等待FinFET工藝。為了解這是怎樣工作的,我們需要查看現(xiàn)代FPGA中的每一類(lèi)結(jié)構(gòu)。
FPGA內(nèi)部
半導(dǎo)體工藝的技術(shù)特征表現(xiàn)在系統(tǒng)行為上,就是影響FPGA內(nèi)部的很多不同結(jié)構(gòu)。在以前的工藝代中,認(rèn)為FPGA是統(tǒng)一的可編程邏輯架構(gòu),周?chē)峭ㄓ肐/O可配置環(huán),這種看法當(dāng)時(shí)是正確的。但在今天,這種模型已經(jīng)不正確。
現(xiàn)代FPGA含有四種不同類(lèi)型的功能模塊:可編程邏輯架構(gòu)、基于單元的數(shù)字知識(shí)產(chǎn)權(quán)(IP)、手動(dòng)設(shè)計(jì)的模塊RAM,以及定制模擬IP(圖2)。這些都會(huì)對(duì)新工藝特性有不同的影響。
圖2.現(xiàn)代FPGA混合了可編程邏輯、基于單元的IP以及模擬模塊,如這一Altera Stratix V圖所示。
FPGA 邏輯架構(gòu)實(shí)際上是大量經(jīng)過(guò)復(fù)制的定制設(shè)計(jì)邏輯單元(LE)陣列——微小SRAM,復(fù)用器和寄存器,以及交換結(jié)構(gòu),覆蓋了非常復(fù)雜的多層金屬。因此,可編程架構(gòu)的設(shè)計(jì)是要在LE實(shí)現(xiàn)多少功能以及單元需要多少互聯(lián)之間達(dá)到很好的平衡。對(duì)于某一體系結(jié)構(gòu),架構(gòu)的總密度對(duì)底層和中間金屬層的層距非常敏感。但是,由于規(guī)劃人員嘗試使用互聯(lián)堆疊下面所有的可用區(qū)域,因此,對(duì)于LE中晶體管的封裝密度也非常敏感。用戶在邏輯架構(gòu)中實(shí)現(xiàn)的電路的速度和功效取決于晶體管特性,也與架構(gòu)密度,互聯(lián)RC產(chǎn)品和晶體管驅(qū)動(dòng)電流有關(guān)。
因此,一般而言,能夠提供較小金屬層距以及封裝更緊密的晶體管的工藝可以實(shí)現(xiàn)密度較高的邏輯架構(gòu),對(duì)于用戶電路,性能更好,功耗更低。泄漏電流是邏輯架構(gòu)的一個(gè)特殊問(wèn)題,這是因?yàn)?,芯片設(shè)計(jì)人員并不知道用戶怎樣使用可編程邏輯,他們使用電路級(jí)功耗管理技術(shù)來(lái)降低基于單元的設(shè)計(jì)的靜態(tài)功耗,這種方法能力有限。
相反,基于單元的數(shù)字IP有關(guān)鍵通路,這些通路主要是通過(guò)本地短互聯(lián)或者底層金屬直接互相連接的快速晶體管?,F(xiàn)代FPGA中的這一類(lèi)結(jié)構(gòu)包括數(shù)字信號(hào)處理(DSP)模塊、I/O和存儲(chǔ)器控制器、增強(qiáng)CPU內(nèi)核,等等。這些IP模塊的大小主要受仔細(xì)封裝的標(biāo)準(zhǔn)單元庫(kù)的密度的影響,以及庫(kù)中各種單元的影響。在可編程架構(gòu)中,用戶可以開(kāi)發(fā)需要的任何電路,而基于單元的硬核IP是預(yù)先定義好的,因此,芯片設(shè)計(jì)人員可以采用所有的功耗管理技術(shù)。這樣,硬核數(shù)字IP將極大的受益于更小的工藝尺寸以及更高的晶體管速度,在系統(tǒng)層,可以使用功耗管理技術(shù),調(diào)整平面FET較大的泄漏電流。
模塊RAM是一類(lèi)特殊的基于單元的IP。一般使用代工線提供的,經(jīng)過(guò)手動(dòng)優(yōu)化的SRAM單元進(jìn)行開(kāi)發(fā),但是,F(xiàn)PGA設(shè)計(jì)人員通常會(huì)調(diào)整陣列,在模塊應(yīng)用的范圍內(nèi),優(yōu)化速度、密度和功耗。由于模塊非常靈活,因此,很難在FPGA RAM上實(shí)現(xiàn)功耗管理策略。FPGA中的其他結(jié)構(gòu)可能不會(huì)對(duì)晶體管的所有特性變化敏感。
這些考慮意味著,某一系統(tǒng)應(yīng)用FPGA的最佳工藝選擇取決于系統(tǒng)設(shè)計(jì)對(duì)可編程架構(gòu)和基于單元的邏輯的相對(duì)壓力。對(duì)系統(tǒng)總體性能還有一定影響的是在架構(gòu)中實(shí)現(xiàn)的模塊的行為,28nm或者20nm工藝中端FPGA能夠以較低的成本在較短的時(shí)間內(nèi)實(shí)現(xiàn)所需要的系統(tǒng)性能。
最后,還有高性能模擬IP的問(wèn)題,這些IP是目前鎖相環(huán)(PLL)和串化器解串器(SerDes)電路的主要構(gòu)成。這些設(shè)計(jì)并沒(méi)有采用最小層距,相反,使用了各種尺寸的晶體管、電路布局和金屬層間距,這些通常涉及到了手動(dòng)布局。它們對(duì)于晶體管的電氣行為非常敏感,包括,數(shù)字工程師不太關(guān)心的一些參數(shù)。數(shù)字設(shè)計(jì)人員仿真邏輯功能,模擬設(shè)計(jì)人員仿真晶體管。對(duì)于模擬設(shè)計(jì)人員,另一個(gè)絕對(duì)關(guān)鍵的問(wèn)題是一致性:很多標(biāo)準(zhǔn)電路依靠密切匹配的成對(duì)的晶體管來(lái)實(shí)現(xiàn)。
在 finFET上還有一些爭(zhēng)論。某些模擬設(shè)計(jì)人員指出,您不能為FinFET選擇任意寬度。由于晶體管是豎立在側(cè)面,意味著是在縱向測(cè)量寬度,因此,它們必須有相同的寬度。您可以使用一個(gè)最小寬度的FinFET,或者,您希望電流更大,可以將幾個(gè)并聯(lián)起來(lái)使用。這些設(shè)計(jì)人員擔(dān)心,模擬設(shè)計(jì)人員很難甚至無(wú)法在其熟悉的電路拓?fù)渲惺褂眠@些新晶體管。
但是,其他有經(jīng)驗(yàn)的模擬設(shè)計(jì)人員指出,更高的速度、更強(qiáng)的溝道控制,以及,特別是 FinFET更好的一致性,對(duì)于模擬設(shè)計(jì)都非常有利,遠(yuǎn)遠(yuǎn)抵消了晶體管寬度的量化問(wèn)題。爭(zhēng)論還在繼續(xù),而Intel在CPU中模擬結(jié)構(gòu)上的工作表明,它們使用其22nm三柵極工藝開(kāi)發(fā)了這一結(jié)構(gòu),三柵極晶體管極大的提高了高精度模擬設(shè)計(jì)的性能。
采用合適的工藝開(kāi)始定制
工藝特性以不同的方式影響FPGA的不同結(jié)構(gòu)。相似地,不同的應(yīng)用對(duì)這些 FPGA結(jié)構(gòu)有不同的要求。結(jié)果,在一定時(shí)期內(nèi),沒(méi)有一種工藝技術(shù)能夠?yàn)槎喾N應(yīng)用提供最合適的平臺(tái)。計(jì)劃、成本和性能要求促使FPGA中的某些結(jié)構(gòu)采用混合定制方法來(lái)實(shí)現(xiàn),以滿足FPGA設(shè)計(jì)對(duì)多種工藝選擇的要求。
三個(gè)例子可以說(shuō)明這一點(diǎn)。首先,考慮一個(gè)單芯片電機(jī)控制 SoC(圖3)。芯片接收來(lái)自四個(gè)電機(jī)的連桿傳感器位置數(shù)據(jù),都是較高的kHz速率,以較低的MHz速率驅(qū)動(dòng)四個(gè)驅(qū)動(dòng)電路板。它連接至中速DDR2 DRAM,進(jìn)行編碼和數(shù)據(jù)存儲(chǔ),連接至工業(yè)以太網(wǎng),將SoC連接至工廠車(chē)間控制網(wǎng)絡(luò)。
圖3.單芯片多軸電機(jī)控制器結(jié)合了基于單元的DSP電路來(lái)計(jì)算FOC算法,可編程邏輯對(duì)I/O信號(hào)進(jìn)行編碼和解碼,CPU用于管理和功能安全算法。
芯片實(shí)際上支持兩項(xiàng)主要任務(wù)。第一項(xiàng)是在FPGA DSP模塊中進(jìn)行計(jì)算的現(xiàn)場(chǎng)定位控制(FOC)算法,實(shí)際上是每一電機(jī)大量的矩陣算術(shù)。可編程架構(gòu)中的I/O電路以相對(duì)較低的速率和功耗,對(duì)位置數(shù)據(jù)進(jìn)行解碼,對(duì)信號(hào)進(jìn)行編碼,以便驅(qū)動(dòng)電路板。第二項(xiàng)任務(wù)是功能安全封裝,一組設(shè)計(jì)用于保護(hù)機(jī)器運(yùn)行以及設(shè)備完整性的功能,運(yùn)行在SoC FPGA的嵌入式ARM Cortex-A9 CPU上。
這一設(shè)計(jì)有兩個(gè)很大的難點(diǎn)。第一,客戶希望不斷提高能效和精度,降低噪聲,這些都要求更大的帶寬,更復(fù)雜的算法,進(jìn)行FOC計(jì)算。因此,應(yīng)用程序要求使用硬核DSP模塊和RAM。第二,成本問(wèn)題,這個(gè)問(wèn)題更嚴(yán)重。
對(duì)形勢(shì)進(jìn)行分析,這一應(yīng)用最關(guān)鍵的FPGA結(jié)構(gòu)是硬核IP模塊、模塊RAM,以及隨著功能安全要求的提高,還有CPU內(nèi)核。這些模塊相應(yīng)地要求半導(dǎo)體工藝良好的標(biāo)準(zhǔn)單元庫(kù),合適的SRAM以及盡可能低的價(jià)格。現(xiàn)在,Altera的Cyclone V SoC產(chǎn)品采用了TSMC的28低功耗(28LP)工藝,很好的結(jié)合了高性能硬核IP和存儲(chǔ)器,降低了成本,可以及時(shí)供貨。
幫助駕駛員開(kāi)車(chē)
第二個(gè)例子是下一代汽車(chē)輔助駕駛系統(tǒng)(ADAS)設(shè)計(jì)。這一SoC接收來(lái)自汽車(chē)?yán)走_(dá)和幾個(gè)HD視頻攝像機(jī)的數(shù)據(jù),使用圖像處理例程和人工智能(AI)算法算出車(chē)輛的位置,驅(qū)動(dòng)兩個(gè)實(shí)時(shí)顯示屏,向車(chē)輛控制模塊發(fā)送命令,進(jìn)行換擋、剎車(chē)和傳動(dòng)系統(tǒng)控制。大部分I/O數(shù)據(jù)流會(huì)通過(guò)一對(duì)冗余的10G以太網(wǎng)端口。由于嚴(yán)格的推出計(jì)劃,必須在2013年年中開(kāi)始系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)。
這一系統(tǒng)中的難點(diǎn)是進(jìn)行大量的視頻和雷達(dá)信號(hào)處理,識(shí)別目標(biāo),滿足分類(lèi)和AI例程的計(jì)算需求,以及大量的本地和外部寬帶存儲(chǔ)器的需求。這些需求主要依靠可編程架構(gòu)來(lái)滿足,使用了DSP硬核IP、模塊RAM和外部 DRAM。由于計(jì)算負(fù)載是偶發(fā)的,車(chē)輛沒(méi)有移動(dòng)或者慢速行駛時(shí),計(jì)算很少,而計(jì)算強(qiáng)度基于環(huán)境的復(fù)雜度,因此,需要很好地進(jìn)行功耗管理。這類(lèi)FPGA需要金屬層距和晶體管性能優(yōu)于目前中端FPGA的工藝,以便滿足可編程架構(gòu)和硬核IP的性能目標(biāo)。但是,設(shè)計(jì)最初并不需要FinFET那樣的速度和功耗。 Altera的20nm產(chǎn)品系列基于TSMC的20nm芯片系統(tǒng)(20SoC)平面工藝,很好的同時(shí)實(shí)現(xiàn)了帶寬、計(jì)算性能和可用性。
最后,讓我們進(jìn)一步了解一下近期會(huì)怎樣。新一代數(shù)據(jù)中心將不僅僅包括高密度服務(wù)器類(lèi)CPU芯片簇,而且還有大容量的高速FPGA。這些FPGA以及CPU和共享高速緩存將位于超高速本地網(wǎng)中,用作虛擬的動(dòng)態(tài)重新配置網(wǎng)絡(luò)數(shù)據(jù)包引擎和計(jì)算加速器。
這類(lèi)芯片要求很高的晶體管密度和金屬層距,提高芯片的容量和帶寬,特別是,考慮到服務(wù)器機(jī)架?chē)?yán)格的散熱和功耗限制以及較高的占空比,這些都限制了動(dòng)態(tài)功耗管理的效率,因此,功耗性能點(diǎn)超出了任何建議的平面晶體管的能力范圍。此外,為能夠連接超高速數(shù)據(jù)網(wǎng)絡(luò),以支持外部存儲(chǔ)器極大的帶寬,這些FPGA需要的集成模擬電路性能水平超出了目前針對(duì)FPGA所討論的電路性能。這些應(yīng)用促使Altera選擇了Intel的14nm三柵極工藝。
結(jié)論
本文介紹了三種場(chǎng)景,每一種都結(jié)合了硬核IP應(yīng)用、可編程架構(gòu)應(yīng)用、存儲(chǔ)器帶寬,以及I/O帶寬,很好地滿足了不同半導(dǎo)體工藝的要求。這一工藝實(shí)際上就是 Altera的定制方法:每一類(lèi)應(yīng)用的FPGA性能、余量、計(jì)劃和成本都能夠滿足系統(tǒng)要求。最好的選擇給系統(tǒng)開(kāi)發(fā)人員帶來(lái)了明顯的優(yōu)勢(shì)。