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