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