一種基于Logical Effort理論的IC設(shè)計(jì)方法解析
眾所周知,傳統(tǒng)的IC設(shè)計(jì)流程通常以文本形式的說(shuō)明開(kāi)始,說(shuō)明定義了芯片的功能和目標(biāo)性能。大部分芯片被劃分成便于操作的模塊以使它們可以分配給多個(gè)設(shè)計(jì)者,并且被EDA工具以塊的形式進(jìn)行分析。邏輯設(shè)計(jì)者用Verilog或VHDL語(yǔ)言寫(xiě)每一塊的RTL描述,并且仿真它們,直到這個(gè)RTL描述是正確的。
得到RTL描述之后,接下來(lái)就是利用邏輯綜合工具來(lái)選擇電路的拓?fù)浣Y(jié)構(gòu)和門(mén)的大小。綜合工具比手工花更少的時(shí)間得到優(yōu)化路徑和電路圖。綜合的電路通常邏輯功能是正確的,但時(shí)序是基于近似負(fù)載模型評(píng)估得到的。
電路設(shè)計(jì)完成之后,開(kāi)始版圖的實(shí)現(xiàn)。版圖通??梢远ㄖ埔部梢杂米詣?dòng)布局布線工具產(chǎn)生。接下來(lái),DRC、ERC、LVS等被用來(lái)驗(yàn)證版圖,后版圖時(shí)序驗(yàn)證工具用從版圖提取出來(lái)的電阻、電容數(shù)據(jù)來(lái)驗(yàn)證設(shè)計(jì)是否滿足時(shí)序目標(biāo)。如果電路設(shè)計(jì)階段的時(shí)序評(píng)估不精確,版圖后的時(shí)序肯定不能滿足,電路必須被修改,再執(zhí)行綜合到版圖的過(guò)程。
在電路設(shè)計(jì)過(guò)程中,最大的挑戰(zhàn)是滿足時(shí)序說(shuō)明,即時(shí)序收斂。如果時(shí)序沒(méi)有問(wèn)題,電路設(shè)計(jì)將變得更加容易。目前的EDA界都意識(shí)到這一點(diǎn):要想在版圖階段達(dá)到時(shí)序收斂,通常應(yīng)該在綜合階段就考慮更多的物理設(shè)計(jì)信息。因此,現(xiàn)在很多工具在綜合階段進(jìn)行預(yù)布局布線,以便在綜合階段盡可能多地了解后端信息。
其實(shí)這樣做并不是從本質(zhì)上解決問(wèn)題,因?yàn)樵诰C合階段的時(shí)序評(píng)估還是基于負(fù)載模型的理論,只是現(xiàn)在的模型比以前的要精確一些,但是與實(shí)際的版圖提取的負(fù)載還是有誤差,因此得到的時(shí)序收斂并不一定可信。不過(guò)這些方法可以減少迭代次數(shù),但不能真正消除迭代。
為了預(yù)知時(shí)序,其實(shí)應(yīng)該建立一個(gè)非??尚诺难舆t預(yù)算模型,也就是這個(gè)模型的延遲預(yù)算應(yīng)該非??尚???尚攀侵溉绻A(yù)知電路1比電路2要快,那么實(shí)際中確實(shí)是這樣。但是基于負(fù)載模型的方法不是非??尚?,它需要精確的寄生參數(shù)信息,但在版圖沒(méi)有得到的情況下,你是不可能有精確的寄生參數(shù)信息的。因此需要建立另外一個(gè)延遲模型,使得它不需要寄生參數(shù)信息也能得到可信的延遲估算。
Logical Effort方法采用的延遲預(yù)算模型就是這樣的一個(gè)模型,Logical Effort方法是評(píng)估CMOS電路延遲的一個(gè)簡(jiǎn)單方法。該方法通過(guò)比較不同邏輯結(jié)構(gòu)的延遲來(lái)選擇最快的候選者,該方法也能指定一條路徑上適當(dāng)?shù)倪壿嫚顟B(tài)數(shù)和邏輯門(mén)的最好晶體管大小。它是設(shè)計(jì)早期評(píng)估可選方案的理想方法,并且為更加復(fù)雜的優(yōu)化提供了一個(gè)好的開(kāi)始。
Logical Effort延遲模型
建模延遲的第一步是隔離特定的集成電路加工工藝對(duì)延遲的影響。通常,把絕對(duì)延遲表示為兩項(xiàng)之積:一項(xiàng)是無(wú)單位的延遲d,另一項(xiàng)是特征化給定工藝的延遲單位τ。即dabs=dτ。τ可以計(jì)算出來(lái),例如在0.6μm工藝下τ大約為50ps。
延遲d通常由兩部分組成,一部分叫本征延遲或寄生延遲,表示為p,另一部分正比于門(mén)輸出端負(fù)載的延遲,叫做effort延遲,表示為。即:d=f+p。
effort延遲依賴(lài)負(fù)載和邏輯門(mén)驅(qū)動(dòng)負(fù)載的特性。我們引入兩個(gè)相關(guān)的項(xiàng):Logical Effort(LE)捕捉邏輯門(mén)的特性,electrical effort(g)特征化負(fù)載的影響。即f=LE*g,所以d=LE*g+p。
Logical Effort捕捉邏輯門(mén)的拓?fù)浣Y(jié)構(gòu)對(duì)它產(chǎn)生輸出電流的影響,它獨(dú)立于晶體管的大小。electrical effort即門(mén)的增益,描述門(mén)的電子環(huán)境(即與門(mén)連接的東西)怎樣影響它的性能,也可以說(shuō)門(mén)中晶體管的大小怎樣決定門(mén)的負(fù)載驅(qū)動(dòng)能力。增益的簡(jiǎn)單定義是:g=Cout/Cin。其中Cout為邏輯門(mén)輸出端負(fù)載的電容,Cin為邏輯門(mén)輸入端的電容。
至此,我們可以如圖1所示那樣來(lái)計(jì)算延遲d。
從這里我們看到,延遲依賴(lài)門(mén)的增益,而不是它的精確寄生參數(shù)。同時(shí),Logical Effort理論中還有兩個(gè)非常完美的結(jié)論。
少的邏輯狀態(tài)不一定能產(chǎn)生最快的電路延遲。那么多少個(gè)邏輯狀態(tài)將產(chǎn)生最快的電路延遲呢?對(duì)于反向器組成的電路,Sutherland指出:最快的反向器結(jié)構(gòu)發(fā)生在Cout=3.6Cin。當(dāng)Cout=3.6Cin時(shí),我們稱(chēng)反向器的負(fù)載為完美負(fù)載。我們可以定義門(mén)的增益為Gain=Cout/(3.6*Cin),并把它作為電路單元(cell)的延遲預(yù)算。
最快的電路拓?fù)浣Y(jié)構(gòu)有一致可變的Gain,因此在物理綜合階段,可以通過(guò)仔細(xì)調(diào)整Gain的值,保持時(shí)序不變。
全新的IC設(shè)計(jì)方法
在進(jìn)行IC設(shè)計(jì)過(guò)程中,最重要的就是怎樣快速?gòu)腞TL得到GDSⅡ。利用Logical Effort理論,我們將建立新的IC設(shè)計(jì)方法。
首先對(duì)綜合庫(kù)進(jìn)行分析。庫(kù)可以是.lib、LEF、GDSⅡ等。庫(kù)中每個(gè)功能的cell會(huì)有不同的尺寸表示不同的驅(qū)動(dòng)能力。我們將為這一族cell建立一個(gè)抽象cell,叫做supercell。這個(gè)supercell有固定的本征延遲和可變的大小。在對(duì)庫(kù)進(jìn)行分析時(shí),我們會(huì)給supercell的延遲再加上一個(gè)可變延遲??勺冄舆t依賴(lài)門(mén)的負(fù)載。通常庫(kù)分析得到的可變延遲是每個(gè)cell驅(qū)動(dòng)它的完美負(fù)載得到的延遲,也叫做理想可變延遲。
supercell庫(kù)建好之后,利用這個(gè)庫(kù)和RTL代碼、設(shè)計(jì)限制等就可以進(jìn)行綜合了。綜合的關(guān)鍵部分就是創(chuàng)建好的邏輯結(jié)構(gòu)。任何設(shè)計(jì)都有許多種功能正確的電路結(jié)構(gòu)。綜合算法的目標(biāo)是發(fā)現(xiàn)最好的電路結(jié)構(gòu)來(lái)滿足時(shí)序目標(biāo)。時(shí)序優(yōu)化過(guò)程就是使每個(gè)可變延遲盡可能靠近它的理想可變延遲。
例如一個(gè)非常簡(jiǎn)單的庫(kù),僅僅由五個(gè)基本邏輯門(mén)組成:反向器、兩輸入的AND、NAND、OR和NOR門(mén)。讓我們進(jìn)一步假設(shè)反向器有8個(gè)版本,而其它的門(mén)有4個(gè)版本,不同的版本表示不同的尺寸,能提供不同的驅(qū)動(dòng)能力?,F(xiàn)在我們考慮一個(gè)簡(jiǎn)單功能的RTL表示,例如w=!((!x+y)Z)。這個(gè)功能可以用不同的邏輯門(mén)拓?fù)浣Y(jié)構(gòu)來(lái)實(shí)現(xiàn),如圖2所示的三種結(jié)構(gòu)。
利用supercell代替庫(kù)中的門(mén),gain-based的綜合只需要快速評(píng)估a、b、c三個(gè)結(jié)構(gòu),gain等于1的結(jié)構(gòu)就能提供最好的時(shí)序解決方案,而傳統(tǒng)的方法對(duì)于電路a就有128種選擇。因此gain-based的綜合時(shí)間將大大減少,并且非常簡(jiǎn)單,比傳統(tǒng)的綜合方法有更大的處理容量。
延遲計(jì)算就是利用上一節(jié)的gain-based的方法?;趕upercell,時(shí)序優(yōu)化設(shè)計(jì)完成之后,然后固定時(shí)序,使得接下來(lái)的布局布線與邏輯綜合操作在同一平面內(nèi)。
綜合之后,設(shè)計(jì)進(jìn)入到size-driven布局、load-driven布線階段。這個(gè)時(shí)候是supercell真正表演的時(shí)候。首先利用supercell來(lái)布局,同時(shí)確保指定的時(shí)序保持常數(shù)。必要的時(shí)候插入buffer,并且時(shí)鐘、電源布線開(kāi)始。線的負(fù)載是基于網(wǎng)的全局布線結(jié)構(gòu)來(lái)決定?;诿總€(gè)supercell看到的實(shí)際負(fù)載,動(dòng)態(tài)調(diào)整supercell的大小來(lái)滿足時(shí)序預(yù)算。supercell的大小調(diào)整好之后,就把supercell用庫(kù)中有適當(dāng)驅(qū)動(dòng)能力的cell來(lái)代替。這里關(guān)鍵的一點(diǎn)就是最小可能大小的門(mén)被選取來(lái)滿足時(shí)序預(yù)算。結(jié)果芯片不再臃腫。因而會(huì)減少空間競(jìng)爭(zhēng),減少功耗和信號(hào)完整性問(wèn)題。
最后利用詳細(xì)的布線工具來(lái)調(diào)整線寬和線的間距,以保持原始的時(shí)序預(yù)算,并且確保信號(hào)完整。當(dāng)然,在整個(gè)物理綜合過(guò)程中,我們也會(huì)利用DRC、ERC、LVS等工具來(lái)驗(yàn)證各個(gè)階段的版圖,也會(huì)利用參數(shù)提取工具在各個(gè)階段來(lái)提取參數(shù),為supercell的大小調(diào)整以及supercell的gain調(diào)整提供信息。
利用supercell技術(shù),從RTL到GDSⅡ的實(shí)現(xiàn)的幾個(gè)主要步驟見(jiàn)圖3。
這就是基于Logical Effort理論的新設(shè)計(jì)方法,特別適合于設(shè)計(jì)快速的CMOS電路。在這里我們只簡(jiǎn)單描述了它的設(shè)計(jì)思想。由于只是初步研究,肯定會(huì)有很多錯(cuò)誤和問(wèn)題,歡迎大家指出并討論。
評(píng)論