鮑進(jìn)威,田 豐,喻小虎,張 建,歐 鋼
(國(guó)防科學(xué)技術(shù)大學(xué) 衛(wèi)星導(dǎo)航與定位中心,湖南 長(zhǎng)沙410073)
集成電路經(jīng)歷了小規(guī)模集成(SSI)、中規(guī)模集成(MSI)、大規(guī)模集成(LSI),發(fā)展到目前的超大規(guī)模集成(VLSI)和特大規(guī)模集成(ULSI)階段,同時(shí)隨著芯片特征尺寸的縮小、設(shè)計(jì)復(fù)雜性的提高、時(shí)鐘速度的增快、電源電壓的降低、布線層數(shù)的增加,使得深亞微米下的大規(guī)模集成電路的設(shè)計(jì)復(fù)雜度越來越高,由此引出的一系列新的設(shè)計(jì)挑戰(zhàn),作為電路系統(tǒng)的時(shí)間參考,時(shí)鐘信號(hào)在同步電路系統(tǒng)中占據(jù)著重要地位[1],而時(shí)鐘分布電路的設(shè)計(jì)是高性能電路設(shè)計(jì)中最具有挑戰(zhàn)性最重要的部分之一。
在Encounter中有兩類方案設(shè)計(jì)時(shí)鐘分布:一個(gè)是時(shí)鐘樹綜合(CTS),一個(gè)是時(shí)鐘網(wǎng)格(Mesh)。時(shí)鐘樹是一種通過插入緩沖器(buffer)連接的時(shí)鐘網(wǎng)絡(luò),它的時(shí)鐘源點(diǎn)定義為時(shí)鐘輸入引腳(或產(chǎn)生的時(shí)鐘節(jié)點(diǎn))。時(shí)鐘樹綜合可以完全依靠全自動(dòng)的EDA工具最大限度地減少時(shí)鐘偏差,并通過減少時(shí)鐘緩沖器數(shù)目來降低功耗。而針對(duì)時(shí)鐘網(wǎng)格則有人曾提出過時(shí)鐘網(wǎng)格+局部樹(MLT)的時(shí)鐘結(jié)構(gòu)[2-3],但是完全用手動(dòng)來設(shè)計(jì) MLT時(shí)鐘結(jié)構(gòu)將會(huì)使設(shè)計(jì)變得很復(fù)雜,使芯片的設(shè)計(jì)周期變長(zhǎng)。同時(shí)由于現(xiàn)有的MLT時(shí)鐘結(jié)構(gòu)的設(shè)計(jì)一般是通過預(yù)留金屬層來建立一個(gè)網(wǎng)格結(jié)構(gòu)來提供時(shí)鐘信號(hào)的,這樣會(huì)存在浪費(fèi)布線資源的問題。本文的重點(diǎn)是對(duì)MLT的時(shí)鐘結(jié)構(gòu)進(jìn)行優(yōu)化,將時(shí)鐘設(shè)計(jì)的兩種方法結(jié)合起來,形成時(shí)鐘網(wǎng)格(Mesh)+局部樹自動(dòng)綜合的結(jié)構(gòu)(MLTAS),并將時(shí)鐘網(wǎng)格嵌入到時(shí)鐘網(wǎng)絡(luò)的Stripes中,以節(jié)約布線資源。
在物理設(shè)計(jì)中的時(shí)鐘設(shè)計(jì)方法比較有限,最常用是單一的時(shí)鐘樹綜合(CTS),而另一種不常用的方法就是時(shí)鐘網(wǎng)格+局部樹(MLT),這兩種方法各有利弊。
時(shí)鐘樹也稱為時(shí)鐘網(wǎng)絡(luò)分布,它是指時(shí)鐘源和時(shí)鐘所控制的寄存器時(shí)鐘端之間的一系列的組合邏輯。它的邏輯結(jié)構(gòu)是逐步增大增多的時(shí)鐘緩沖器和反相器組成的樹狀結(jié)構(gòu),因此被形象稱為時(shí)鐘樹。其簡(jiǎn)化模型如圖1。
圖1 時(shí)鐘樹結(jié)構(gòu)的簡(jiǎn)化模型
時(shí)鐘樹的結(jié)構(gòu)設(shè)計(jì)包括三個(gè)方面[4]:時(shí)鐘樹的層數(shù),每層的分支數(shù)和每個(gè)分支的驅(qū)動(dòng)器種類[5-6]。時(shí)鐘樹的設(shè)計(jì)將影響芯片的時(shí)鐘偏移和延時(shí)的大小。由于每層負(fù)載電容不同,所以時(shí)鐘樹的層數(shù)越少則不確定性越小,從而時(shí)鐘偏移越小。分支數(shù)越多則需要越多的驅(qū)動(dòng)和連線,將導(dǎo)致面積的增加和由于連線而產(chǎn)生的潛在的時(shí)鐘偏移不確定性。而分支少會(huì)使所需的層數(shù)增加,也會(huì)導(dǎo)致時(shí)鐘偏移的不確定性和延時(shí)的增大。選擇驅(qū)動(dòng)器要保證有足夠的驅(qū)動(dòng)能力,但驅(qū)動(dòng)能力大會(huì)增大上一層驅(qū)動(dòng)器的電容負(fù)載,并導(dǎo)致延時(shí)和功耗的增加,所以選擇不同層的驅(qū)動(dòng)器時(shí)要選擇其平衡點(diǎn),已達(dá)到在滿足驅(qū)動(dòng)能力的情況下延時(shí)最小。
時(shí)鐘樹綜合[7]就是根據(jù)設(shè)計(jì)和單元庫(kù)的物理信息,在時(shí)鐘路徑上插入一個(gè)時(shí)鐘緩沖器和反相器組成的樹狀結(jié)構(gòu),使得時(shí)鐘信號(hào)嚴(yán)格按照設(shè)計(jì)要求到達(dá)芯片寄存器的時(shí)鐘端口。時(shí)鐘樹綜合在整個(gè)后端設(shè)計(jì)流程中位于布局之后,布線之前。
在實(shí)際的MLT設(shè)計(jì)中,時(shí)鐘分布網(wǎng)絡(luò)[8]通常被劃分為兩部分:全局的和局部的時(shí)鐘網(wǎng)絡(luò)。全局的網(wǎng)絡(luò)是將時(shí)鐘信號(hào)從時(shí)鐘源分配到各個(gè)局部區(qū)域,通常它有一個(gè)對(duì)稱的結(jié)構(gòu)。然后本地的時(shí)鐘網(wǎng)絡(luò)再將時(shí)鐘分配到各個(gè)時(shí)鐘元素,它通常是非對(duì)稱的。結(jié)構(gòu)如圖2所示。
圖2 MLT結(jié)構(gòu)模型
在Encounter中,半自動(dòng)的時(shí)鐘網(wǎng)格工具可以被用于構(gòu)建頂層的網(wǎng)格結(jié)構(gòu)。網(wǎng)格可以被劃分為三部分:頂層鏈,全局網(wǎng)格,局部分布,如圖3所示。
頂級(jí)鏈為網(wǎng)格的前級(jí)驅(qū)動(dòng)提供合適的輸入轉(zhuǎn)換時(shí)間,或?yàn)榫W(wǎng)格增加額外的插入延遲,這種串聯(lián)的緩沖器鏈在整個(gè)網(wǎng)格結(jié)構(gòu)中是可選的。
圖3 全局網(wǎng)格結(jié)構(gòu)圖[9]
局部樹也是一個(gè)可選的部分,如果不定義局部樹的結(jié)構(gòu),時(shí)鐘網(wǎng)格會(huì)平衡所有網(wǎng)格段的偏差。
全局網(wǎng)格使用多個(gè)(大于等于零)前級(jí)驅(qū)動(dòng)級(jí),然后是一級(jí)主驅(qū)動(dòng)。主驅(qū)動(dòng)用來驅(qū)動(dòng)一個(gè)最終的全局網(wǎng)格線網(wǎng),最終的網(wǎng)格驅(qū)動(dòng)器驅(qū)動(dòng)主干和分支網(wǎng)格。
在Encounter工具中存在兩種網(wǎng)格結(jié)構(gòu):
1)H-tree[9]
這種結(jié)構(gòu)的網(wǎng)格的優(yōu)點(diǎn)是前級(jí)驅(qū)動(dòng)高度對(duì)稱,因此,對(duì)于具有很多觸發(fā)器的大型時(shí)鐘域來說可以較好的控制偏差。缺點(diǎn)就是它比其他網(wǎng)格結(jié)構(gòu)需要更多的高的功耗以及布線資源,如圖4。
圖4 H-tree結(jié)構(gòu)示意圖
2)Fishbone[9]
Fishbone的主驅(qū)動(dòng)對(duì)一個(gè)主干線網(wǎng)(脊干)使用多點(diǎn)驅(qū)動(dòng),而主干線網(wǎng)則驅(qū)動(dòng)許多正交的分支,被多點(diǎn)驅(qū)動(dòng)的前級(jí)驅(qū)動(dòng)的主干構(gòu)成了前級(jí)驅(qū)動(dòng)階段,并被放置在距離下一級(jí)的驅(qū)動(dòng)輸入足夠近的地方,如圖5。
我們已經(jīng)對(duì)兩種方法原理做了介紹,對(duì)兩種設(shè)計(jì)方法的優(yōu)劣做一下比較。
圖5 Fishbone結(jié)構(gòu)示意圖
從表1可以清晰的看到這兩種方法的優(yōu)缺點(diǎn),所以為了揚(yáng)長(zhǎng)避短,在兩者之中取一個(gè)平衡,同時(shí)獲得很好的性能。我們提出一種改進(jìn)的設(shè)計(jì)方法。將時(shí)鐘設(shè)計(jì)的兩種方法結(jié)合起來,形成時(shí)鐘網(wǎng)格(Mesh)+ 局部樹自動(dòng)綜合 (Local Tree auto synthesize)的結(jié)構(gòu)(MLTAS),同時(shí)為了節(jié)約布線資源,將時(shí)鐘網(wǎng)格嵌入到時(shí)鐘網(wǎng)絡(luò)的Stripes中。
表1 CTS和MLT優(yōu)劣比較
時(shí)鐘網(wǎng)格(Mesh)+局部樹自動(dòng)綜合(Local Tree auto synthesize)的結(jié)構(gòu)(MLTAS)是結(jié)合了CTS和MLT兩種時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)方法。它的原理就是上述兩種設(shè)計(jì)原來的結(jié)合。在局部樹的設(shè)計(jì)上它是采用了自動(dòng)時(shí)鐘樹綜合來實(shí)現(xiàn),充分利用了布線和緩沖器內(nèi)插算法的EDA工具來做自動(dòng)化綜合,從而減少了芯片設(shè)計(jì)的周期。而在全局網(wǎng)絡(luò)的設(shè)計(jì)則采用的是時(shí)鐘網(wǎng)格設(shè)計(jì),通過網(wǎng)格設(shè)計(jì)的高度對(duì)稱性來減少時(shí)鐘偏差,同時(shí)為了節(jié)約布線資源,也即節(jié)省功耗,我們不是通過預(yù)留金屬層來建立網(wǎng)格結(jié)構(gòu)而是將時(shí)鐘網(wǎng)格嵌入到時(shí)鐘Stripes中,以節(jié)約布線資源的目的。MLTAS同時(shí)具備了比MLT設(shè)計(jì)簡(jiǎn)單,設(shè)計(jì)周期短,布線資源節(jié)約的優(yōu)勢(shì),又達(dá)到比CTS設(shè)計(jì)減少時(shí)鐘偏差的目的。
為了實(shí)現(xiàn)MLTAS設(shè)計(jì)方法,我們將它應(yīng)用于北斗用戶系統(tǒng)的一款0.18μm的SOC芯片設(shè)計(jì)上。MLTAS設(shè)計(jì)是一個(gè)分兩階段的自底向上的過程,第一階段是通過自動(dòng)時(shí)鐘樹綜合來構(gòu)建底層接近零偏差的局部樹,第二階段是構(gòu)建上層零偏差的全局網(wǎng)絡(luò),從而大大減少時(shí)鐘偏差。
局部樹的構(gòu)建可以通過手動(dòng)方式來完成,這樣可以達(dá)到時(shí)鐘偏差的可控性設(shè)計(jì),但為了設(shè)計(jì)簡(jiǎn)單,提高設(shè)計(jì)效率,同時(shí)又能到達(dá)預(yù)期的設(shè)計(jì)效果。這部分是通過自動(dòng)時(shí)鐘樹綜合來構(gòu)建底層接近零偏差的局部樹。MLTAS的Local Tree部分采用的就是全自動(dòng)的時(shí)鐘樹綜合來完成的。設(shè)計(jì)思路是:根據(jù)完全的自動(dòng)時(shí)鐘樹綜合設(shè)計(jì)的CTS分析結(jié)果,追溯時(shí)鐘網(wǎng)絡(luò),以獲得時(shí)鐘的結(jié)構(gòu)信息,根據(jù)所得的結(jié)果,重新尋找時(shí)鐘源的輸入端,并且以新的時(shí)鐘源的輸入端為根節(jié)點(diǎn)(Root Pin)做自動(dòng)時(shí)鐘樹綜合。在局部樹的構(gòu)建過程中本設(shè)計(jì)是將單一時(shí)鐘樹綜合后時(shí)鐘樹結(jié)構(gòu)中的LEVEL3的標(biāo)準(zhǔn)門單元都提取出來作為新的時(shí)鐘源輸入端,簡(jiǎn)易示意圖如圖6,并將前面的驅(qū)動(dòng)全部刪除,而這些提取的時(shí)鐘源輸入端又直接連接到網(wǎng)格結(jié)構(gòu)中的樹枝上(或連接在樹枝上的buffer上面)。在局部樹的構(gòu)建過程中首先要將原先的時(shí)鐘樹的規(guī)格修改,將提取出的時(shí)鐘節(jié)點(diǎn)作為新的時(shí)鐘源輸入端,同時(shí)要對(duì)時(shí)鐘偏差,信號(hào)跳變時(shí)間,時(shí)鐘到達(dá)時(shí)鐘端的延遲時(shí)間,最大扇出等做適當(dāng)?shù)男薷?,以得到更好的局部信?hào)分布結(jié)構(gòu)。
圖6 CTS綜合后的簡(jiǎn)易時(shí)鐘樹結(jié)構(gòu)示意圖
其中含Level的方框即可以代表buffer也可以代表標(biāo)準(zhǔn)時(shí)鐘門單元。圖7分別是單一時(shí)鐘樹綜合(CTS)設(shè)計(jì)和局部樹自動(dòng)綜合(LTAS)設(shè)計(jì)結(jié)果的比較,其中左邊為CTS的效果圖,右邊是局部樹自動(dòng)綜合的效果圖。
通過兩個(gè)圖的對(duì)比可以看出左邊的CTS后的時(shí)鐘信號(hào)是從最左邊的時(shí)鐘根節(jié)點(diǎn)來提供的,而右邊的LTAS后的時(shí)鐘信號(hào)則是從提取的時(shí)鐘源輸入端而不是原先的根節(jié)點(diǎn)提供的。
圖7 CTS后效果圖VS局部樹自動(dòng)綜合(LTAS)后的效果圖
一般的時(shí)鐘網(wǎng)格設(shè)計(jì)都是通過預(yù)留金屬層以建立一個(gè)網(wǎng)格結(jié)構(gòu)來提供時(shí)鐘信號(hào),這樣會(huì)造成功耗的增加,布線資源(布線層數(shù)、過孔,線長(zhǎng)等)的浪費(fèi)。由于本款芯片設(shè)計(jì)是一個(gè)六層金屬的設(shè)計(jì),考慮到電源供電的充分性,即在第4、5、6層都有電源網(wǎng)絡(luò)分布,同時(shí)又要節(jié)約布線資源,沒有給全局網(wǎng)格的構(gòu)建再預(yù)留單獨(dú)的金屬層,而是在設(shè)計(jì)中將全局網(wǎng)格設(shè)計(jì)在第5、6層。為了不將網(wǎng)格結(jié)構(gòu)與電源網(wǎng)絡(luò)的位置相沖突,必須將全局網(wǎng)格嵌入到電源網(wǎng)絡(luò)Stripes之間的空隙中,以達(dá)到設(shè)計(jì)要求的同時(shí),節(jié)約布線資源和功耗。
在綜合全局網(wǎng)格之前,首先定義網(wǎng)格的配置文件[10],包括布線的類型(金屬線寬、間距,布線分布層數(shù))、網(wǎng)格的級(jí)數(shù)、網(wǎng)格緩沖器的類型,根節(jié)點(diǎn),葉子節(jié)點(diǎn)。還要規(guī)定網(wǎng)格的結(jié)構(gòu)類型,規(guī)定樹干、樹枝以及網(wǎng)格緩沖器的放置方式。比如樹干、樹枝放置的間距,分布方式,樹干、樹枝和緩沖器三者之間的接觸頻率。在全局網(wǎng)格的構(gòu)建中,為了得到更好的時(shí)鐘偏差,選擇的是H-tree的四級(jí)網(wǎng)格結(jié)構(gòu)。同時(shí)為了將網(wǎng)格結(jié)構(gòu)嵌入到Stripes中,將樹干之間的間距和樹枝之間的間距選取特殊的值而不讓其自動(dòng)去設(shè)置。然后將網(wǎng)格的規(guī)格文件讀入系統(tǒng),此文件中將包含有關(guān)時(shí)鐘端的信息,即規(guī)定哪些器件的輸入端作為時(shí)鐘的輸入端。下面是Encounter中用來設(shè)計(jì)時(shí)鐘網(wǎng)格的過程:首先是提取出所有時(shí)鐘源輸入端,并將提取出的時(shí)鐘源輸入端作為時(shí)鐘根節(jié)點(diǎn),進(jìn)行時(shí)鐘樹自動(dòng)綜合,綜合后再做優(yōu)化;第二步就是將這些時(shí)鐘源的輸入端作為網(wǎng)格結(jié)構(gòu)的葉子節(jié)點(diǎn)進(jìn)行網(wǎng)格綜合,并做布線,金屬線剪裁以及優(yōu)化,如圖8。
在Encounter中完成上述操作后,可以看到嵌入到Stripes中的時(shí)鐘網(wǎng)格結(jié)果,如圖9。
圖中的高亮顯示的是網(wǎng)格結(jié)構(gòu)的樹干,次亮顯示的是樹枝,而淺色顯示的縱橫線網(wǎng)則是Stripes,從中我們可以很清晰看到時(shí)鐘網(wǎng)格已經(jīng)嵌入到時(shí)鐘網(wǎng)絡(luò)的Stripes之中。
為了體現(xiàn)MLTAS設(shè)計(jì)方法性能的優(yōu)越性,在相同設(shè)計(jì)面積和相同時(shí)鐘頻率的條件下,將其與CTS設(shè)計(jì)進(jìn)行了比較。如表2所示,從CTS設(shè)計(jì)和MLTAS設(shè)計(jì)的結(jié)果中我們很容易得出,MLTAS在插入緩沖器方面比樹形結(jié)構(gòu)有一定優(yōu)勢(shì),而在時(shí)鐘偏差方面更是獲得了較大的優(yōu)化。下面我們從設(shè)計(jì)結(jié)果的數(shù)據(jù)來加以說明。
表2 CTS和MLTAS結(jié)果的比較
從表中可以明顯的看到MLTAS設(shè)計(jì)比單一的CTS設(shè)計(jì)在總的buffer數(shù)量上要少36個(gè),所以在高性能的芯片設(shè)計(jì)中MLTAS設(shè)計(jì)在緩沖器數(shù)量上會(huì)帶來一定的優(yōu)勢(shì)。同時(shí)我們也可以看到MLTAS流程比單一的CTS流程的時(shí)鐘偏差要小許多,總的時(shí)鐘偏差減少了194.3ps,占CTS設(shè)計(jì)總時(shí)鐘偏差的34.6%,得到了較大的優(yōu)化。
結(jié)合CTS和MLT兩種時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)方法提出了時(shí)鐘網(wǎng)格(Mesh)+本地樹自動(dòng)綜合(Local Tree Auto Synthesize)的一種新的時(shí)鐘設(shè)計(jì)方法。將該設(shè)計(jì)方法應(yīng)用到北斗用戶系統(tǒng)的一款0.18 μm的SOC芯片設(shè)計(jì)上,并詳細(xì)論述了設(shè)計(jì)的思路。最后在相同設(shè)計(jì)條件的情況下,通過比較自動(dòng)綜合的樹結(jié)構(gòu)和MLTAS的時(shí)鐘設(shè)計(jì)的結(jié)果,得到MLTAS相比單一樹形結(jié)構(gòu)的CTS流程可以實(shí)現(xiàn)減少總的緩沖器數(shù)量和時(shí)鐘偏差的效果,從而得出了本SOC芯片設(shè)計(jì)上,MLTAS設(shè)計(jì)比單一樹結(jié)構(gòu)的CTS設(shè)計(jì)具有更好的優(yōu)越性,也體現(xiàn)了MLTAS也比CTS更適合高性能的復(fù)雜系統(tǒng)的芯片設(shè)計(jì)之中。
[1]汪 珺.基于Garfield5設(shè)計(jì)中時(shí)鐘樹綜合技術(shù)研究[D].江蘇:東南大學(xué)碩士學(xué)位論文,2006:1-2.
[2]Yeh C,Wilk G,Chen H.Clock distribution architecture:a comparative study[C]//Proc of the Int Symp on Quality Electronic Design.San Jose,CA,USA ,2006:85-91.
[3]Wilke G R,Murgal R.Design and analysis of“Tree+Local Meshes”clock architecture[C]//Proc of the Int Symp on Quality Electronic Design.San Jose,CA,USA,2007:165-170.
[4]殷瑞相,郭 瑢.同步數(shù)字集成電路設(shè)計(jì)中的時(shí)鐘樹分析[J].汕頭大學(xué)學(xué)報(bào)·自然科學(xué)版,2005,20(3):75-80.
[5]Chi M C,Huang S H.A reliable clock tree design methodology for ASIC designs[J].Chung Yuan Journal,2000,28(3):115-122.
[6]Chung J,Cheng Chung-kuan.Optimal buffered clock tree synthesis[C]//ASIC Conference and Exhibit,Proceedings,Seventh Annual IEEE International,USA:Rochester,1994:130-133.
[7]劉輝華,劉 振,李蜀霞,等.層次化時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)研究[J].微電子學(xué)與計(jì)算機(jī),2008,25(11):52-53.
[8]顧 琴,辜建偉,李玉童.在Encounter中實(shí)現(xiàn)網(wǎng)格+局部樹的時(shí)鐘設(shè)計(jì)流程[J].電子設(shè)計(jì)應(yīng)用,2008(12):57-58.
[9]Cadence.Encounter user guide[R].2007.
[10]顧 琴,林正浩.用 Encounter實(shí)現(xiàn) Mesh-Local-Tree結(jié)構(gòu)的時(shí)鐘設(shè)計(jì)流程[J].半導(dǎo)體技術(shù),2008,33(7):628-629.