因應(yīng)混合信號設(shè)計需求與日俱增,,以單一數(shù)據(jù)庫且自動化程度高的全芯片混合信號設(shè)計、分析和驗證解決方案隨之而起,,透過模擬和數(shù)字仿真引擎的結(jié)合,,以及與芯片完工整修等其它工具的有效連結(jié),,來達(dá)到生產(chǎn)力與精確度的大幅提升。
直到最近,,絕大部分的IC本質(zhì)上還都是純數(shù)字(Purely Digital)或純模擬(Purely Analog)的設(shè)計,,因此,,早期以IC為主的電子系統(tǒng)一般都由許多相對簡單的模擬和數(shù)字芯片,,組裝在電路板上相互連接,。例如1970年代由摩托羅拉(Motorola)所發(fā)展出的第一臺行動電話Dyna-Tac,即是由兩個模擬芯片(其一是現(xiàn)貨,,另一是客制化組件)和十五個數(shù)字芯片(其中十三個是現(xiàn)貨,,另兩個是客制化組件)所組成。
由于早期的IC都是模擬式或數(shù)字式,,因此用來建立或驗證這些組件的計算機(jī)輔助設(shè)計工具,,也是針對數(shù)字領(lǐng)域或是模擬領(lǐng)域所量身訂做。
隨后,,為符合無線網(wǎng)絡(luò)通訊協(xié)議和標(biāo)準(zhǔn)的復(fù)雜要求,,并因應(yīng)使用者愈來愈多的功能需求:如MP3播放器、全球衛(wèi)星定位系統(tǒng)(GPS),、數(shù)字相機(jī)等,,類似行動電話等產(chǎn)品所使用的模擬及數(shù)字芯片數(shù)量不斷增加。
此外,,為了滿足成本,、大小、重量和電力消耗方面的需要,,業(yè)者也必須整合更多的功能,,以減少芯片數(shù)目。剛開始,,模擬功能的群組會合并到特定的模擬芯片上,,而數(shù)字功能的集合則合并到數(shù)字芯片上。近來則是將模擬和數(shù)字功能一起合并至單一的混合式信號(Mixed-signal)裝置中,。例如最新式的高階行動電話,,除少數(shù)微小且非常專屬的裝置外,通常只包含一顆容量較大,、性能較高的混合信號IC,,含有大量模擬和數(shù)字功能,再加上一顆特殊的射頻(RF)芯片,。
多年來,,雖然傳統(tǒng)的模擬、數(shù)字設(shè)計及驗證工具在容量及效能上有一定程度的進(jìn)展,,但基本架構(gòu)仍以1990年代中期的技術(shù)為基礎(chǔ),,而且仍然限于模擬或數(shù)字領(lǐng)域。舉例來說,,模擬和數(shù)字工具及設(shè)計流程使用不同的數(shù)據(jù)庫,,因此阻隔了兩個領(lǐng)域之間的信息交換,造成數(shù)字和模擬的設(shè)計團(tuán)隊大多各自為政,幾乎不了解對方在做什么,。
弄清數(shù)字/模擬/混訊/客制化設(shè)計定義
由于不同電子設(shè)計自動化(EDA)公司對于全客制化(Full-custom)和混合信號等用詞的認(rèn)知不盡相同,,為避免誤解,在此先說明本文定義,。所謂數(shù)字IC系指以離散(亦即非連續(xù))數(shù)值描述輸入,、處理、儲存,、輸出等信息的組件,;而模擬IC則是以連續(xù)變化的信號描述輸入、處理,、輸出等信息的組件,;混合信號IC則包含數(shù)字和模擬功能混合體的組件。
至于全客制化設(shè)計,,則是指構(gòu)成一個裝置或裝置中某一部分的晶體管(Transistor),、電阻(Resistor)等各組件的每一個幾何組件,大小和形狀都是個別以手工制作,。因此,,一般而言,模擬設(shè)計亦屬于全客制化設(shè)計,。相對的,,絕大部分的數(shù)字設(shè)計主要是使用預(yù)先定義的邏輯功能鏈接庫(Libraries of Logical Functions),其中,,晶體管的大小和彼此間的連接已預(yù)先定義,。
有些純數(shù)字裝置如內(nèi)存芯片(Memory Chip)及高階微處理器(High-end Microprocessor)可能屬于全客制化的類別,但這些是特例,,通常只有高度客制化,、高度獨(dú)特性、專門性的設(shè)計環(huán)境支持,。
數(shù)字設(shè)計工具進(jìn)展快速
1960年代前期,,數(shù)字IC設(shè)計正值萌芽階段,電子電路都是以手工制作,,使用筆,、紙及模板,以手工繪制電路(原理)圖,,圖上有各種符號,,代表各個邏輯閘(Logic Gate)及功能,以及彼此之間的連接,。
每一個設(shè)計團(tuán)隊通常至少有一名成員精通于邏輯電路的最小化(Minimization)和最佳化(Optimization),,以便在最后階段將原本的閘極(Gate)改為功能相同,,但速度更快且/或面積更小的硅芯片。
功能驗證(Functional Verification)是為確保設(shè)計能夠符合原先規(guī)畫的功能,。一般而言是由一群工程師圍著一張桌子,,逐一檢視原理圖(Schematic)的所有功能,判斷是否有任何問題,。同樣地,時序驗證(Timing Verification)也是以筆,、紙進(jìn)行,,以確認(rèn)輸入到輸出及內(nèi)部路徑延遲符合設(shè)計要求,而且諸如設(shè)定和保留等參數(shù)與任何內(nèi)部緩存器均無違反時序,。少數(shù)時候,,這項作業(yè)可能會使用到機(jī)械或機(jī)電式計算器。
最后,,以手繪制整套的邏輯閘結(jié)構(gòu),,或更精確地說,構(gòu)成邏輯閘之晶體管及電阻的結(jié)構(gòu),,以及彼此間互連的藍(lán)圖,。然后,使用這些由正方形及矩形等簡單幾何形狀構(gòu)成的藍(lán)圖來建立光罩,,據(jù)以制造實際的硅芯片,。
從以上描述與先前定義來看,此款數(shù)位IC會歸類為「全客制化」,,因為構(gòu)成晶體管,、電阻等各組件的每一個幾何組件的大小和形狀系個別以手工制作。
然而,,以手工方式設(shè)計極為耗時且容易出錯,,亟須加以改善,許多公司及學(xué)術(shù)機(jī)構(gòu)因而投入各種不同的研究方向,,彼此競爭,。以原理圖設(shè)計為例,閘極級(Gate-level)的原理圖設(shè)計(Schematic Capture)軟件包開始出現(xiàn),,功能驗證方面,,1960年代晚期和1970年代初,開始出現(xiàn)事件驅(qū)動邏輯仿真器(Event-driven Logic Simulator)形式的特殊程序,。
在閘極抽象層建立數(shù)字設(shè)計,,可以比擬為使用匯編語言建立軟件程序,就匯編程序的效率及所需的計算機(jī)內(nèi)存而言,,是很好的選擇,,但在設(shè)計及驗證上要花費(fèi)很長的時間,而且很不容易移植到另一臺計算機(jī)。同樣地,,閘極抽象層在設(shè)計及驗證上非常費(fèi)時,,而且不容易移植到新的代工廠或制程/技術(shù)節(jié)點(diǎn)(Technology Node)。
軟件方面,,程序開發(fā)者的解決辦法是改用高階的程序語言,,例如C語言,再將這些高級語言編譯成計算機(jī)所需要的機(jī)器指令,,優(yōu)點(diǎn)是可以使軟件開發(fā)人員迅速精準(zhǔn)地捕捉程序的意圖并驗證其功能,,此外,以C語言撰寫的程序很容易移植到其它計算機(jī)平臺,。
同樣地,,數(shù)字邏輯方面,設(shè)計人員開始采用進(jìn)一步的抽象設(shè)計,,稱為緩存器轉(zhuǎn)移級(Register Transfer Level, RTL),。1980年代晚期及1990年代初登場的邏輯合成,可將RTL解譯成對應(yīng)的閘極級通訊匣層電路表(Gate-level Netlist),?!盖岸恕沟暮铣杉夹g(shù)及能夠取得閘極級通訊匣層電路表,以及具體實施設(shè)計的「后端」自動布局繞線引擎,,兩者相輔相成,。
就小型的設(shè)計而言,使用合成引擎(Synthesis Engine)不一定能夠獲得與手工設(shè)計一樣好的閘極抽象層,,但能夠迅速簡潔地捕捉設(shè)計意圖,,因此可大幅提升設(shè)計人員的生產(chǎn)力。此外,,合成引擎能夠自動在速度(效率)及面積之間作取舍,,加上識別及處理關(guān)鍵路徑的能力,因此合成引擎可回報更好的整體結(jié)果給設(shè)計人員,。正如同將C語言的程序編譯用于不同的計算機(jī),,RTL及邏輯合成使數(shù)字設(shè)計更容易移植到新的代工廠或制程/技術(shù)節(jié)點(diǎn)。
模擬設(shè)計工具進(jìn)化牛步
相較比數(shù)位電路的同類型工具,,模擬電路的計算機(jī)輔助設(shè)計及驗證工具,,更早出現(xiàn),在模擬電子系統(tǒng)設(shè)計的初期,,電子電路是靠手工建立,。晶體管層級(Transistor-level)的原理圖是使用筆、紙及模板以手工繪制,,并初步的進(jìn)行「筆紙」分析和驗證,。
例如晶體管,、電阻器、電容器和電感器等離散式(個別封裝)組件建構(gòu)的設(shè)計,,通常都會依設(shè)計建造實體的原型件,,把它放到測試臺上,量測實際的數(shù)值以決定其性能,,然后調(diào)校組件的數(shù)值,,必要時增加/移除組件,以達(dá)到預(yù)期效果,。
顯然,,對于建造第一個模擬IC而言,這種方式并不理想,,因為重作IC設(shè)計的成本極高,因此,,在1960年代晚期和1970年代初,,有些大學(xué)及公司開始著手模擬仿真器(Analog Simulator)設(shè)計,藉由這些程序,,學(xué)生及工程師可仿真模擬電路運(yùn)作,,不須實際建造。早期的仿真器中,,最著名的應(yīng)是集成電路仿真程序(Simulation Program with Integrated Circuit Emphasis, SPICE),,這套程序是由加州大學(xué)柏克萊分校所開發(fā),在1970年代初開始廣泛應(yīng)用,。
經(jīng)過多年的演進(jìn),,模擬模擬在復(fù)雜的下層模型、算法,、仿真引擎的容量以及性能等方面有極大的進(jìn)展?,F(xiàn)在大部分使用的模擬工具,其構(gòu)想都可追溯至1990年代早期及中期,,這些工具的底層架構(gòu)原本即非針對混合信號設(shè)計環(huán)境的復(fù)雜需求所設(shè)計,。
更重要的是,現(xiàn)今模擬設(shè)計及驗證工具本質(zhì)上只限于設(shè)計及仿真晶體管層級的原理圖,。截至目前,,包括將模擬功能高度抽象化進(jìn)而產(chǎn)生晶體管層級的設(shè)計,模擬電路自動最佳化,,和模擬電路自動布局與繞線(Placed and Route)等方面,,進(jìn)展不大。以致于現(xiàn)今模擬IC大部分仍是全客制化,,以手工辛苦打造,,不僅成本高,、耗時且容易出錯,這種晶體管層級的設(shè)計方式,,也無法輕易轉(zhuǎn)移至新的代工廠或制程/技術(shù)節(jié)點(diǎn),。
混合信號工具問題重重
截至目前,在真正的混合信號設(shè)計工具的進(jìn)展上仍相當(dāng)緩慢,。如前所述,,為符合成本、大小,、重量及電力消耗等需求,,模擬及數(shù)字功能已逐漸結(jié)合至單一的混合信號裝置中,為實踐這類設(shè)計,,多家EDA公司正致力把既有的模擬和數(shù)字仿真引擎「結(jié)合」在一起,。就連以往專精于數(shù)字設(shè)計的公司,也開始購買成熟的模擬解決方案,,來解決此一問題,,并藉以獲得更多模擬客戶,提高市場占有率,。
不過,,這種做法卻容易使得一些不適合整合的個別工具被勉強(qiáng)拼湊在一起。例如,,模擬及數(shù)字工具使用不同的數(shù)據(jù)庫,,非常不利于兩個領(lǐng)域之間的信息交換。此外,,如前所述,,現(xiàn)今大部分的模擬工具都可追溯至1990年代早期及中期,其底層架構(gòu)從一開始就非針對混合信號設(shè)計環(huán)境所發(fā)展,。
相較于數(shù)字設(shè)計已可達(dá)到45奈米的技術(shù)節(jié)點(diǎn),,多數(shù)的模擬設(shè)計至今仍采用5~10年前的制程技術(shù),如130奈米和250奈米技術(shù)節(jié)點(diǎn),;最新進(jìn)的制程也僅到90奈米,,主要因為模擬設(shè)計的移植必須從頭開始創(chuàng)建電路。此外,,即使使用今日最新技術(shù)的混合信號及全客制化設(shè)計環(huán)境,,數(shù)字和模擬設(shè)計團(tuán)隊多半還是各自為政,幾乎不了解對方作業(yè)內(nèi)容,。這兩個領(lǐng)域的首度接觸,,往往是發(fā)生在芯片完工整修(Chip Finishing)制程中,亦即模擬和數(shù)字區(qū)塊的布局及繞線時,。
芯片完工整修制程通常是以手工執(zhí)行,,有數(shù)項工作是在芯片光罩設(shè)計完成的前一個步驟進(jìn)行,。由于缺乏自動化,芯片完工整修的活動和動作通常無法回饋給主設(shè)計,,因而易導(dǎo)致設(shè)計的再利用性不佳,。
提高設(shè)計工具整合度與自動化效能
為解決混合信號設(shè)計工具所面臨的問題,EDA業(yè)者藉由結(jié)合SPICE和Fast SPICE兩者的性能優(yōu)點(diǎn),,推出新一代電路仿真器FineSim SPICE,,可在兼顧SPICE仿真器準(zhǔn)確性的前提下,加快仿真和分析速度,。FineSim SPICE采用先進(jìn)的原生平行技術(shù)(Native Parallel Technology, NPT)算法,,能夠透過多顆中央處理器(CPU)并行處理,實現(xiàn)線性加速及擴(kuò)充容量,。
現(xiàn)在,,EDA業(yè)者也正推動真正統(tǒng)一、自動,、全芯片的混合信號設(shè)計,、分析和驗證解決方案,希望藉由更高的整合性和自動化程度,,大幅提升芯片完工修整,、模擬/客制化數(shù)字設(shè)計等領(lǐng)域的產(chǎn)量(圖1),。此套名為Titan的工具顯著提升芯片完工整修制程的時程關(guān)鍵性(Schedule-critical)功能,,在效率與可預(yù)測性方面獲得重大進(jìn)展,移除現(xiàn)行客制化布局和標(biāo)準(zhǔn)單元(Standard-cell)實作系統(tǒng)之間費(fèi)時又復(fù)雜的循環(huán),,并透過一條實時聯(lián)機(jī),,使標(biāo)準(zhǔn)單元數(shù)據(jù)庫與每一次的客制化布局編輯保持同步,將標(biāo)準(zhǔn)單元系統(tǒng)封裝在整個系統(tǒng)中(圖2),。
圖1 Titan透過整合及自動化提高產(chǎn)量
圖2 傳統(tǒng)設(shè)計環(huán)境中,,客制化布局與標(biāo)準(zhǔn)單元布局及繞線之間的循環(huán)可能成為芯片完工整修的弱點(diǎn)。
在標(biāo)準(zhǔn)單元設(shè)計規(guī)則檢查(DRC)/布局與原理圖對照(LVS)無誤且設(shè)計通過全部的簽核分析檢查后,,流程的布局及繞線部分便告完成,。此時,標(biāo)準(zhǔn)單元數(shù)據(jù)庫必須以某種標(biāo)準(zhǔn)格式(例如GDSII)匯出,,然后匯入一個包含所有制造層的全客制化系統(tǒng)中,。
簽核DRC之前,要先加入光罩設(shè)計必要的客制化布局結(jié)構(gòu),,例如覆晶凸塊(Flip-chip Bump)連接及頂層繞線(Top-layer Routing),,并規(guī)畫對準(zhǔn)靶材(Alignment Target)和畫線網(wǎng)線等,再于客制化環(huán)境中執(zhí)行DRC簽核,。這些工作完成后,,必須回到布局及繞線環(huán)境,,針對所有會影響布局及繞線區(qū)域的變更,重新進(jìn)行驗證,。因此,,設(shè)計人員必須反復(fù)回到布局及繞線系統(tǒng),也就須要再次執(zhí)行繁瑣的數(shù)據(jù)匯出和匯入作業(yè),。更嚴(yán)重的是,,這個階段如果要求執(zhí)行工程變更命令(ECO),就必須再次反復(fù)執(zhí)行循環(huán),,以分析驗證任何變更,。
為減少此一困擾,Titan透過與其它設(shè)計引擎如Talus的有效連接,,以及DRC/LVS分析及驗證引擎的緊密整合,,來避免執(zhí)行前述循環(huán)的需要??椭苹季汁h(huán)境中只要有所變更,,Talus便會得知,立即可以重新執(zhí)行簽核檢查,,而且毋須傳送數(shù)據(jù)庫,,標(biāo)準(zhǔn)單元數(shù)據(jù)仍然是在Talus的內(nèi)存中,客制化數(shù)據(jù)則在Titan的客制化環(huán)境中,。
正如整合到數(shù)字布局及繞線系統(tǒng)可大幅提高效率,,Titan也使模擬及特殊信號繞線的自動化和標(biāo)準(zhǔn)化向前邁進(jìn)一大步,透過直覺式的應(yīng)用布局條件,,以互動的方式定義或完全透過指令碼進(jìn)行自動化,,其可在數(shù)秒內(nèi)完成總線繞線(Bus Routing)、屏蔽(Shielding),、偏差分對繞線(Differential Pair Routing),、星形繞線(Star Routing)和其它特殊的繞線,毋須以手工方式耗費(fèi)數(shù)日的時間,。這點(diǎn)對于ECO而言尤其重要,,因為重新繞線能夠自動執(zhí)行,不會延誤時程,。
除具備完整的芯片完工整修能力外,,Titan也可和寄生提取標(biāo)準(zhǔn)工具QuickCap TLx緊密整合于FineSim電路仿真器,以便在真正的混合信號設(shè)計方面,,達(dá)成全芯片電路仿真(Full-chip Circuit Simulation),,為設(shè)計的模擬部分提供SPICE的精確度,數(shù)字部分則可達(dá)到Fast SPIE的精確度,,讓模擬及數(shù)字接口能夠充分仿真驗證后,,再制造出實際的硅芯片,。
另一方面,可完全編寫指令碼的Tcl/Tk接口以及一個整合式圖形使用者接口(GUI),,亦是現(xiàn)今混合信號設(shè)計工具不可或缺的功能,,以便利用選單、快速鍵,、浮動式控制板等,,對設(shè)計進(jìn)行全部的檢視、編輯,、繞線及驗證,,讓設(shè)計的模擬和數(shù)字部分的原理圖、布局,、DRC錯誤,、寄生值(Parasitic Values)等擁有完整除錯功能。
顯而易見的,,基于統(tǒng)一,、自動、全芯片的混合信號設(shè)計解決方案,,將為日益復(fù)雜的模擬及混合信號IC設(shè)計帶來新的生產(chǎn)力和價值,。