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