IC設(shè)計(jì)中Accellera先進(jìn)庫格式語言與EDA工具的結(jié)合應(yīng)用
先進(jìn)庫格式(ALF)是一種提供了庫元件、技術(shù)規(guī)則和互連模型的建模語言,不同抽象等級的ALF模型能被EDA同時用于IC規(guī)劃、原型制作、實(shí)現(xiàn)、分析、優(yōu)化和驗(yàn)證等應(yīng)用中。本文在介紹ALF概念的基礎(chǔ)上,詳細(xì)討論了使用ALF時庫元件與IC的設(shè)計(jì)流程,同時還介紹了IC分層實(shí)現(xiàn)與原型制作的方法。
在IC設(shè)計(jì)中,常常會發(fā)現(xiàn)半導(dǎo)體性能與得到的設(shè)計(jì)結(jié)果之間存在差距,這些差距最終要靠新一代EDA工具來彌合。一般說來,要想消除差距就必須將以前孤立的設(shè)計(jì)任務(wù)集成到一起,或者將以前零散的設(shè)計(jì)方案進(jìn)行統(tǒng)一。
例如過去在設(shè)計(jì)和測試之間就存在隔閡,現(xiàn)在用可測性設(shè)計(jì)的概念可加以解決,在綜合和布局之間的矛盾最近也有了物理綜合概念方案,下一個計(jì)劃目標(biāo)是針對設(shè)計(jì)和掩膜生成之間的問題,希望能用可制造性設(shè)計(jì)的概念解決。
然而在庫的創(chuàng)建和具體設(shè)計(jì)之間依然還存在矛盾,就像數(shù)據(jù)總在前后端設(shè)計(jì)之間傳來傳去類似,帶有預(yù)定義建模概念的庫也是在供應(yīng)商和用戶之間倒來倒去。
庫元件由供應(yīng)商進(jìn)行定義,建模概念則是EDA應(yīng)用所要求的,設(shè)計(jì)人員沒有選擇,有什么庫元件就只能用什么,不可能去深入理解更不用說修改了,庫的內(nèi)容可能會超出所選EDA工具處理的范圍。隨著設(shè)計(jì)復(fù)雜性、性能和費(fèi)用不斷增加,預(yù)定義庫的概念也很成問題,例如在設(shè)計(jì)項(xiàng)目開始時,用戶可能會在用于某種特定技術(shù)的庫實(shí)際出現(xiàn)以前,就希望能了解用該技術(shù)實(shí)現(xiàn)設(shè)計(jì)是否有意義。
在設(shè)計(jì)實(shí)現(xiàn)過程中,用戶需要創(chuàng)建一些模塊作為可重復(fù)使用的庫元件,結(jié)束時如果可用庫元件(如具有正確驅(qū)動能力的單元)不多,用戶將只需做很少的布局優(yōu)化就能滿足性能目標(biāo)。在設(shè)計(jì)過程中任何時候,用戶都可能要按不同程度的抽象和精度對時序、功率、電氣性能、擁塞、路由性能及其它設(shè)計(jì)特性進(jìn)行評估。
Accellera ALF是一個新完成的IEEE標(biāo)準(zhǔn),其設(shè)計(jì)可使用戶對庫及設(shè)計(jì)流程中的應(yīng)用有更強(qiáng)的控制和影響能力。ALF不像傳統(tǒng)庫格式那樣僅僅是一個數(shù)據(jù)信息庫,它是一種智能型自擴(kuò)展建模語言,可對庫元素的功能、電氣和物理模型,包括技術(shù)規(guī)則、單元、構(gòu)建模塊和互連等提供語義支持。
ALF支持完整的RTL到功能、ASIC和SoC技術(shù)庫電氣性能與布局視圖的GDSII描述,適合從單元到復(fù)雜的分層設(shè)計(jì)模塊。ALF是一個經(jīng)生產(chǎn)驗(yàn)證的標(biāo)準(zhǔn),得到先進(jìn)半導(dǎo)體供應(yīng)商和用于0.13μm及更小工藝技術(shù)的下一代EDA工具的支持。
ALF的抽象范圍可用于行為、RTL、門級和布局,它不是憑空開發(fā)的,而是現(xiàn)有庫格式的超集,很容易從現(xiàn)有格式轉(zhuǎn)換過來。ALF的結(jié)構(gòu)原理非常簡單很容易掌握,它主要關(guān)注內(nèi)容而不是格式細(xì)節(jié)和各種限制。
從應(yīng)用的觀點(diǎn)看,語言元素可和建模域聯(lián)系起來,它可以是功能域、電氣域或物理域。但ALF描述功能主要來自與域無關(guān)的語言元素,如模板(用于重復(fù)使用庫描述)和算術(shù)模型(用于數(shù)學(xué)描述量的計(jì)算)。
庫元件創(chuàng)建和描述
ALF可用來指定一個庫元素如單元所需的功能和描述,單元規(guī)格包括單元名稱和終端(即引腳)與單元所執(zhí)行功能的形式描述,形式描述可以在VHDL或Verilog等語言中生成硬件描述語言(HDL)仿真模型。
可生成多種HDL模型用于不同的目的,這里的不同根據(jù)用戶對模型風(fēng)格的愛好而不是由單元功能來決定。例如某個模型可以用一種粗略的方式處理未知邏輯狀態(tài),以便快速仿真,而另一個模型則可用非常具體的方式處理未知邏輯狀態(tài),這樣仿真就要慢一些,但更精確。ALF模型可作為公共參考,用于所有這些HDL模型。
單元的物理布局以GDSII格式表示,SPICE格式的晶體管級網(wǎng)表可從物理層中提取,這樣的晶體管網(wǎng)表中包括了寄生電氣分量?;蛘咴O(shè)計(jì)人員也可用手工或EDA工具創(chuàng)建晶體管網(wǎng)表,將ALF描述的功能規(guī)范映射到晶體管網(wǎng)表中。這種網(wǎng)表的精度要低于從布局中提取,但對制作原型庫還是有用的。
晶體管網(wǎng)表和各鐘HDL模型都能和ALF描述的功能規(guī)范進(jìn)行比較,更重要的是,晶體管網(wǎng)表還能用來描述單元的性能,以便通過運(yùn)行SPICE仿真來測量時序、功率、噪聲和其它電氣特性。
SPICE仿真由描述工具進(jìn)行控制,該工具從ALF表示的規(guī)范中推斷出相關(guān)信息,只要這個信息與單元本身的功能相關(guān),例如需要描述的時序曲線可在ALF中表示,也可從ALF中推出。描述工具的輸出是庫單元模型,帶有特性數(shù)據(jù),同時也在ALF中表示,另外也可用庫編輯器將所有庫單元模型組合成一個二進(jìn)制文件,作為EDA應(yīng)用工具的數(shù)據(jù)準(zhǔn)備。
IC實(shí)現(xiàn)與性能分析
ALF庫可用在以單元作為構(gòu)建模塊的IC實(shí)現(xiàn)流程中(圖1)。在該流程里,RTL設(shè)計(jì)描述通過RTL綜合工具轉(zhuǎn)換成網(wǎng)表,網(wǎng)表含有單元示例,這里稱為門而不是晶體管,它使用ALF庫尋找將RTL描述映射到含有單元示例網(wǎng)表所需的庫元件。ALF單元模型不會描述單元中的晶體管。
等價檢查工具將RTL設(shè)計(jì)描述與網(wǎng)表進(jìn)行比較,以確定RTL到網(wǎng)表的轉(zhuǎn)換是否正確,它可用與RTL綜合工具相同的ALF庫。同樣,HDL模擬工具(圖1中沒有顯示)也能用來確定RTL設(shè)計(jì)描述和網(wǎng)表行為在響應(yīng)給定激勵時是否與預(yù)期的一樣,該模擬工具可使用ALF模型或從ALF模型提取出來的HDL模型。
圖1的流程已經(jīng)進(jìn)行了簡化,像數(shù)據(jù)通路結(jié)構(gòu)創(chuàng)建、與可測性設(shè)計(jì)(DFT)有關(guān)的結(jié)構(gòu)創(chuàng)建以及特殊掃描插入等特殊網(wǎng)表轉(zhuǎn)換沒有顯示在圖中,ALF單元模型含有與這些應(yīng)用有關(guān)的信息。
單元布放和內(nèi)部互連布線過程簡稱為布局,電源或時鐘網(wǎng)絡(luò)結(jié)構(gòu)之類特殊布局沒有在圖1中明確表示。ALF單元模型含有抽象物理信息,像單元大小和形狀、單元引腳和路由障礙位置、大小和形狀等等,這些都與布局有關(guān)。
同樣,與單元內(nèi)布線圖有關(guān)的抽象信息也能在ALF中表示,包括特定層布線區(qū)域、邊界和連接特性,這些信息與制造能力有關(guān),像天線規(guī)則和金屬密度檢查之類。除了單元模型,布線規(guī)則也在ALF中表示,這部分包括布線段寬度和長度的限制、布線段之間的距離以及通孔之間的距離等。
已實(shí)現(xiàn)的IC不僅要按功能和布局進(jìn)行校正,還必須滿足電氣性能條件制約,主要是時序方面,其它電氣性能如功耗、信號完整性和可靠性也變得越來越重要,信號完整性指信號波形的干凈程度、對串?dāng)_噪聲的抵抗性和電壓降。
可靠性是指在電遷移應(yīng)力、熱電效應(yīng)和熱不穩(wěn)定性存在情況下的長期運(yùn)行穩(wěn)定性。ALF單元模型支持用于時序、功率、信號完整性和可靠性的數(shù)據(jù)描述,如可靠性數(shù)據(jù)可描述為對電壓、電流或工作頻率的限制條件。
ALF的一個特殊之處是這些數(shù)據(jù)在激勵中的表達(dá)方式,它通過矢量表達(dá)式進(jìn)行表述,數(shù)據(jù)可用這種特性與特定環(huán)境的運(yùn)行條件聯(lián)系起來,以完成更為精確的性能分析。
IC實(shí)現(xiàn)過程每一步都要進(jìn)行性能分析,RTL綜合、單元布放和互連布線應(yīng)用已經(jīng)包含了靜態(tài)時序分析(STA)和其它性能分析功能。同樣,在每步完成之后,還可進(jìn)行獨(dú)立的性能分析,以便更精確地測量得到的性能。
電氣性能不僅取決于單元間的相互作用,還與連線所引起的寄生現(xiàn)象有關(guān)。網(wǎng)表生成以后,寄生參數(shù)可以用線負(fù)載模型(WLM)進(jìn)行統(tǒng)計(jì)預(yù)估。布局后通過預(yù)先估算布放單元引腳間特定的布線長度能精確預(yù)計(jì)到寄生參數(shù),布線完成后,實(shí)際寄生參數(shù)利用標(biāo)準(zhǔn)寄生參數(shù)交換格式(SPEF)在文件中進(jìn)行提取和表達(dá)。
ALF互連模型能夠描述統(tǒng)計(jì)的WLM,它是一個根據(jù)估計(jì)的布線或互連分析模型進(jìn)行寄生參數(shù)評估的規(guī)則。互連分析模型可以指定寄生現(xiàn)象所需間隔,以及根據(jù)寄生參數(shù)示例和驅(qū)動器單元電氣模型來計(jì)算時序、噪聲、電壓和電流。特定驅(qū)動器單元電氣模型所用數(shù)據(jù)在ALF中表現(xiàn)為單元特性數(shù)據(jù)的一部分。
IC分層實(shí)現(xiàn)與原型生成
以單元作為構(gòu)建模塊的IC實(shí)現(xiàn)流程受到單元和網(wǎng)絡(luò)等目標(biāo)數(shù)目的制約,可由設(shè)計(jì)人員和應(yīng)用流程進(jìn)行處理。對于超過目標(biāo)限制但還可以處理的IC,可以使用下面方法,這些方法也可組合使用。
* 自底向上設(shè)計(jì):首先由單元創(chuàng)建較大的構(gòu)建模塊,然后使用這些模塊來實(shí)現(xiàn)IC。
* 自頂向下設(shè)計(jì):首先將設(shè)計(jì)分成子設(shè)計(jì),實(shí)現(xiàn)子設(shè)計(jì)作為模塊,然后將這些模塊組裝起來。
* 原型制作:首先為整個設(shè)計(jì)做一個簡化所謂的虛擬實(shí)現(xiàn),然后將虛擬實(shí)現(xiàn)分割為不同的模塊,使用虛擬實(shí)現(xiàn)的結(jié)果作為每個模塊實(shí)際實(shí)現(xiàn)的限制條件,最后再把各模塊組裝起來。
所有這些方法的共同點(diǎn)是創(chuàng)建模塊,以減少應(yīng)用面對的對象數(shù)量,模塊創(chuàng)建流程見圖2。
模塊可用基本IC實(shí)現(xiàn)流程來創(chuàng)建(見圖2),可以再使用的模塊一般稱為IP。對“硬”模塊來說,實(shí)現(xiàn)流程主要的輸出是帶布局布線的門級網(wǎng)表,保存下來后最終轉(zhuǎn)換為物理布線圖,而“軟”模塊只有設(shè)計(jì)主要輸出即RTL設(shè)計(jì)表述被保存下來。
設(shè)計(jì)流程輸出只用于模塊描述,即創(chuàng)建用于模塊的抽象模型,模塊描述包括了在特性描述和接下來的抽象中反復(fù)進(jìn)行的性能分析。抽象含有減少物理實(shí)現(xiàn)數(shù)據(jù)以及性能分析數(shù)據(jù)和特定模型的關(guān)系方面的內(nèi)容,模型規(guī)范和模型本身兩者都能用ALF進(jìn)行表述。
流程的變量包括IC部分實(shí)現(xiàn),如只做RTL綜合和布放而沒有布線,這特別適用于不保留實(shí)現(xiàn)數(shù)據(jù)的軟模塊。不保留模塊實(shí)現(xiàn)數(shù)據(jù)的概念是通過之后在其它模塊上下文中完成,而不是在前端單獨(dú)實(shí)現(xiàn),這樣可獲得更好的整體性能效果。
根據(jù)模塊是用作硬模塊還是軟模塊,ALF模型能表述不同等級的抽象。用作硬模塊的ALF模型具有和單元ALF模型相同的特性,此外,網(wǎng)表和表述實(shí)現(xiàn)流程輸出的寄生參數(shù)可部分保留在ALF模型中,特別是在模塊邊界處。這樣就能在一個IC實(shí)現(xiàn)的上下文中對相鄰模塊之間的電氣相互作用進(jìn)行精確分析。另一方面,用于軟模塊的ALF模型可以表述一個統(tǒng)計(jì)范圍,或者描述數(shù)據(jù)的上下邊界,而不是“硬”的特性數(shù)據(jù),這是因?yàn)閷?shí)際模塊實(shí)現(xiàn)具有一定程度可變性,此外統(tǒng)計(jì)得出的WLM也能裝在模塊模型中。
ALF支持用參數(shù)表示模塊特定建模特性,即可用各種物理形狀和大小以及可變位寬與特性實(shí)現(xiàn)的模塊,ALF里的組、模板、靜態(tài)和動態(tài)模板等概念都能這樣用。
不管是硬模塊還是軟模塊,創(chuàng)建IC現(xiàn)在可以用模塊抽象模型作為庫元件而不是單元。用類似方法,由于單元ALF模型不能反映晶體管級實(shí)現(xiàn)的細(xì)節(jié),所以模塊的ALF模型無法揭示門級實(shí)現(xiàn)的細(xì)節(jié)。然而模塊ALF模型依然能提供足夠的信息用于執(zhí)行或開發(fā)IC實(shí)現(xiàn)應(yīng)用,還能分析性能以及在邏輯與物理設(shè)計(jì)方面的兼容性。IC設(shè)計(jì)是在特定限制條件下進(jìn)行的,環(huán)境限制包括封裝特性、PCB、工藝范圍如電壓及溫度(PVT)條件等,其它條件屬于通用可應(yīng)用物理設(shè)計(jì)規(guī)則,如可用布線層、保留用于電源的布線數(shù)和在芯片邊緣與中心可用于I/O引腳的位置等。
原型制作可用來評估設(shè)計(jì)能否在這些條件下實(shí)現(xiàn),ALF中的電氣特性數(shù)據(jù)如時序、功率、噪聲、物理與電氣規(guī)則、寄生參數(shù)評估模型等均能表達(dá)為環(huán)境條件的數(shù)學(xué)方程式。圖3顯示了IC原型制作和層次實(shí)現(xiàn)的流程,其中包含了ALF模型不同的抽象級。
設(shè)計(jì)規(guī)劃和原型制作使用模塊預(yù)定義模型作為庫元件,稱為“庫模塊模型”。設(shè)計(jì)被分割成子設(shè)計(jì),在模塊創(chuàng)建過程中,將模塊實(shí)現(xiàn)和特性描述組合用于每個子設(shè)計(jì),用于每個模塊的可應(yīng)用庫元件就是單元。
模塊創(chuàng)建以后輸出的是子設(shè)計(jì)特性模型,稱為“設(shè)計(jì)模塊模型”。設(shè)計(jì)模塊模型可反復(fù)進(jìn)行設(shè)計(jì)規(guī)劃,結(jié)果可能需要對設(shè)計(jì)進(jìn)行細(xì)化和再劃分。按子設(shè)計(jì)限制條件對每個模塊進(jìn)行評估后,再按通用設(shè)計(jì)限制對虛擬組裝模塊作評估,如果評估滿意,模塊實(shí)現(xiàn)的結(jié)果即每個模塊帶布局和布線的網(wǎng)表將被實(shí)際組裝形成IC。
IC設(shè)計(jì)可以使用單元、硬模塊加軟模塊、固定規(guī)范模塊以及參數(shù)化模塊等各種組合作為庫元件,有些庫元件可獨(dú)立于設(shè)計(jì)使用,而另外一些則要在設(shè)計(jì)中創(chuàng)建,只能用于特定的設(shè)計(jì)。軟模塊抽象模型可和用于硬模塊的更詳細(xì)的模型相連,模塊實(shí)現(xiàn)過程中,抽象模型也可用更詳細(xì)的模型來替代,整個流程都要使用技術(shù)規(guī)則和互連模型。