寄存器聚類在時(shí)鐘樹綜合中的實(shí)現(xiàn)方法
【專利摘要】本發(fā)明提供了一種寄存器聚類在時(shí)鐘樹綜合上的實(shí)現(xiàn)方法,該寄存器聚類方法以降低時(shí)鐘樹互連電容為標(biāo)準(zhǔn),通過最小生成樹的構(gòu)筑方式,得到時(shí)鐘樹寄存器的最小生成樹,使得時(shí)鐘樹的互連線長趨于一個(gè)最小值,進(jìn)而降低時(shí)鐘樹的功耗。在進(jìn)行寄存器聚類時(shí),通過給寄存器簇設(shè)置負(fù)載電容的閾值,使得本地寄存器簇的時(shí)鐘偏移和時(shí)鐘延時(shí)得到控制。通過給寄存器簇分配最合適的緩沖器,使得時(shí)鐘偏移和時(shí)鐘延時(shí)得到降低并為時(shí)鐘樹綜合做好標(biāo)記。整個(gè)寄存器聚類過程都未移動(dòng)任何寄存器的物理位置,算法以Tcl語言實(shí)現(xiàn),且僅在IC Compiler中編譯運(yùn)行,使得實(shí)施操作更為簡易。
【專利說明】
寄存器聚類在時(shí)鐘樹綜合中的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明是一種應(yīng)用于移動(dòng)芯片數(shù)字后端設(shè)計(jì)中時(shí)鐘樹綜合寄存器聚類算法的實(shí) 現(xiàn)方法,屬于數(shù)字電路后端設(shè)計(jì)領(lǐng)域。
【背景技術(shù)】
[0002] 近年來,集成電路的發(fā)展突飛猛進(jìn),隨著集成電路特征尺寸的不斷縮小,集成電路 集成度和速度不斷提高,集成電路的設(shè)計(jì)也變得愈加復(fù)雜。芯片生產(chǎn)出來后能否正常工作 取決于時(shí)序要求,而時(shí)鐘是芯片的心臟,因此時(shí)鐘樹設(shè)計(jì)在整個(gè)芯片設(shè)計(jì)中占有極其重要 的作用。
[0003] 時(shí)鐘樹有H型、網(wǎng)格型和二叉樹型等三種基本結(jié)構(gòu)。對于超大規(guī)模集成電路來說, 由于芯片內(nèi)部會(huì)劃分幾十至上百個(gè)模塊,距離時(shí)鐘源較遠(yuǎn)的模塊內(nèi)部寄存器的延時(shí)會(huì)比較 大,而距離時(shí)鐘源距離較近的模塊內(nèi)部寄存器的延時(shí)較小。這將會(huì)造成大的時(shí)序偏移,使時(shí) 鐘樹的性能指標(biāo)變差。這種情況下,為了優(yōu)化時(shí)鐘偏移指標(biāo),可以考慮使用多點(diǎn)時(shí)鐘樹結(jié)構(gòu) 的優(yōu)化設(shè)計(jì)。多點(diǎn)時(shí)鐘樹即每個(gè)子模塊內(nèi)部根據(jù)多個(gè)時(shí)鐘輸入點(diǎn),形成多條子時(shí)鐘樹。所有 時(shí)鐘緩沖器的輸出端都與時(shí)鐘網(wǎng)格相連,連接點(diǎn)稱為分接點(diǎn)。分接點(diǎn)的位置分布基于各個(gè) 子模塊的負(fù)載,子時(shí)鐘的時(shí)鐘樹綜合由模塊內(nèi)寄存器組的幾何位置決定。
[0004] 多點(diǎn)時(shí)鐘樹相對于普通的網(wǎng)格型時(shí)鐘樹主要區(qū)別在于,多點(diǎn)時(shí)鐘樹網(wǎng)格下的模塊 被均勻規(guī)劃成多個(gè)時(shí)鐘樹綜合區(qū)域,每個(gè)區(qū)域內(nèi)分配一個(gè)時(shí)鐘緩沖器,各個(gè)區(qū)域的時(shí)鐘樹 綜合將以該時(shí)鐘緩沖器的輸出端為起點(diǎn)執(zhí)行。使用多點(diǎn)時(shí)鐘樹有降低時(shí)鐘延時(shí),緩解〇 C V (On Chip Variation)的影響,減少時(shí)鐘偏移,加強(qiáng)時(shí)鐘樹抗干擾能力等作用。然而對于模 塊內(nèi)部時(shí)序要求不高的時(shí)鐘樹而言,這種結(jié)構(gòu)屬于大材小用,同時(shí)它也會(huì)帶來增加時(shí)鐘樹 功耗,具體實(shí)施困難,性能提升不明顯等問題。
[0005] 傳統(tǒng)的寄存器聚類算法針對寄存器聚類的標(biāo)準(zhǔn)各不相同,優(yōu)化的結(jié)果也各有不 同。其中主要的聚類方法有基于寄存器的翻轉(zhuǎn)率進(jìn)行聚類,通過改變寄存器的物理位置進(jìn) 行聚類,平均寄存器簇的負(fù)載電容,縮小時(shí)鐘樹最短線長等方法對寄存器進(jìn)行聚類。但是以 上這些聚類方法,要么改變了寄存器位置(有可能影響時(shí)序),要么沒考慮時(shí)鐘樹功耗,要么 沒給出特定細(xì)節(jié)的設(shè)定方案,而這些細(xì)節(jié)往往決定著整個(gè)設(shè)計(jì)的實(shí)施。
[0006] 發(fā)明目的
[0007] 本發(fā)明提出了一種針對于時(shí)鐘樹功耗新的優(yōu)化方法,解決了時(shí)鐘樹結(jié)構(gòu)優(yōu)化空間 小,傳統(tǒng)寄存器算法實(shí)施困難等問題。該發(fā)明的目的在于,在不影響網(wǎng)表的前提下,通過最 小生成樹的構(gòu)筑方式,降低時(shí)鐘樹的互連電容并對時(shí)鐘樹寄存器進(jìn)行低功耗聚類,進(jìn)而降 低時(shí)鐘樹的功耗。本文采用的寄存器聚類方法主要針對時(shí)鐘樹葉子級寄存器拓?fù)浣Y(jié)構(gòu)的優(yōu) 化。文中用到了普林姆算法作為寄存器聚類算法的先行準(zhǔn)備和緩沖器分配算法作為其后續(xù) 補(bǔ)充。由于從始至終,算法都沒有改變寄存器的初始位置,因此,算法的實(shí)際操作性非常強(qiáng), 它可集成進(jìn)入任意時(shí)鐘樹綜合的流程之中。
[0008] 技術(shù)方案
[0009] 本發(fā)明提出的寄存器聚類方法用于芯片后端設(shè)計(jì)時(shí)鐘樹綜合的過程中,實(shí)現(xiàn)寄存 器聚類算法的方法步驟如下:
[0010] la)利用普林姆算法,以時(shí)鐘樹互連線長趨于最小值為標(biāo)準(zhǔn),生成時(shí)鐘寄存器的最 小生成樹;
[0011] lb)在生成最小生成樹的過程中利用寄存器與緩沖器之間的距離閾值Mmax對寄存 器進(jìn)行初始聚類,得到時(shí)鐘寄存器的初始寄存器簇;
[0012] lc)確定單個(gè)寄存器簇的負(fù)載電容閾值,對初始寄存器簇進(jìn)行低功耗聚類,得到時(shí) 鐘寄存器的最終寄存器簇;
[0013] Id)對最終寄存器簇進(jìn)行本地緩沖器分配,給每個(gè)寄存器簇分配驅(qū)動(dòng)能力合適的 緩沖器。
[0014] 技術(shù)效果
[0015] 本發(fā)明所提出的寄存器聚類方法通過考慮時(shí)間復(fù)雜度,時(shí)鐘寄存器物理位置和時(shí) 鐘寄存器互聯(lián)電容三個(gè)方面問題,對時(shí)鐘樹寄存器進(jìn)行低功耗聚類,使其能夠適用于大規(guī) 模集成電路時(shí)鐘樹綜合的物理設(shè)計(jì)。該方法對時(shí)鐘樹寄存器進(jìn)行聚類時(shí),考慮到了可能帶 來的信號路徑時(shí)序方面的影響,提出了不改變寄存器的位置并設(shè)置寄存器簇最大電容值的 方案,使得信號路徑時(shí)序在不受到影響的同時(shí),時(shí)鐘樹的時(shí)鐘偏移和時(shí)鐘延時(shí)也一并減小。 在降低時(shí)鐘樹功耗方面,該方案以降低時(shí)鐘樹互連電容為標(biāo)準(zhǔn),引用普林姆算法建立寄存 器的最小生成樹使得時(shí)鐘樹的互連線長趨于最小值,同時(shí)得到寄存器的分組數(shù)和寄存器 簇。本發(fā)明方法主要利用Tel語言設(shè)計(jì),在IC Compiler上實(shí)現(xiàn),不需要引入第三方EDA工具 來進(jìn)行編譯或仿真,因此在實(shí)現(xiàn)方法上非常簡易。在基于Voltus的運(yùn)行環(huán)境下,相比于普通 時(shí)鐘樹綜合流程,寄存器聚類算法使得時(shí)鐘樹功耗得到了近13%的降低,其中動(dòng)態(tài)功耗的 降低占80%以上。在IC Compiler的環(huán)境中,在時(shí)鐘偏移和時(shí)鐘延時(shí)上分別得到了 18%和 7.8%的降低。
【附圖說明】
[0016] 圖1為本發(fā)明方法流程圖;
[0017]圖2為寄存器最小生成樹示意圖;
[0018]圖3為寄存器和互連線的轉(zhuǎn)換模型圖;
[0019] 圖4為緩沖器驅(qū)動(dòng)扇出寄存器示意圖。
【具體實(shí)施方式】
[0020] 下面以一具體實(shí)例對本發(fā)明做進(jìn)一步詳細(xì)說明。
[0021] 實(shí)施例1
[0022] 如圖1所示,本發(fā)明寄存器聚類算法在時(shí)鐘樹綜合中的實(shí)現(xiàn)方法包括如下步驟: [0023] a)首先,依據(jù)項(xiàng)目中定義的最大扇出數(shù)(Max Fanout)Nfa_t,預(yù)估寄存器簇內(nèi)寄存 器的個(gè)數(shù)NReg,確定寄存器與緩沖器之間的距離閾值Mmax,NReg在1至NFanmjt之間,不同的NReg對 應(yīng)著不同的距離閾值M max,計(jì)算公式見下文公式6。
[0024] b)接著,參照普林姆算法的思想,以最小互連線長作為構(gòu)筑時(shí)鐘寄存器最小生成 樹的標(biāo)準(zhǔn),并在生成最小生成樹的過程中,利用距離閾值Mmax對寄存器進(jìn)行初始聚類,得到 初始寄存器簇,并得到分組數(shù)即初始寄存器簇的個(gè)數(shù)。由于不同的Mmax對應(yīng)著不同的初始寄 存器簇,因此嘗試所有可能的Mmax,最終選擇寄存器互連線長度最小的那個(gè)初始寄存器簇。
[0025] c)預(yù)估時(shí)鐘樹總體負(fù)載電容,并利用之前得到的分組數(shù),算出單個(gè)寄存器簇的負(fù) 載電容閾值。利用該電容閾值,對初始寄存器簇進(jìn)行低功耗聚類,得到最終寄存器簇,使得 時(shí)鐘樹在得到最低負(fù)載電容的同時(shí)獲得時(shí)鐘偏移和時(shí)鐘延時(shí)的降低。
[0026] d)最后,給每個(gè)寄存器簇分配合適的緩沖器,緩沖器的分配同樣以寄存器簇的負(fù) 載電容為標(biāo)準(zhǔn),而不是以傳輸時(shí)間作為標(biāo)準(zhǔn)。合適的緩沖器分配使得本地緩沖器的功耗得 以降低,本地傳輸時(shí)間也得到很好地控制。
[0027] 時(shí)鐘樹總體負(fù)載電容預(yù)估的原理如下:時(shí)鐘樹所有寄存器簇的負(fù)載電容值Ctotai可 由公式1表示。式中C表示寄存器簇i中所有寄存器的電容,Cf表示寄存器簇i中所有互連 線的電容。
[0028] C/0/^2(C;'+C;) ⑴
[0029] n表示寄存器簇的數(shù)目,寄存器的電容值可以通過查找Foundry廠提供的標(biāo)準(zhǔn)單元 庫得到。由于在做時(shí)鐘樹之前,互連線的長度未知,因此只能設(shè)定長度的一個(gè)預(yù)估值。通過 最短時(shí)鐘樹繞線算法(DME a 1 gor i thm)得到的時(shí)鐘樹線長等于.O^/V , D表示時(shí)鐘樹的寄 存器集合中兩個(gè)最遠(yuǎn)的寄存器之間的曼哈頓距離,N表示所有時(shí)鐘寄存器的個(gè)數(shù)。由于1C Compiler的時(shí)鐘樹繞線算法與最短時(shí)鐘樹繞線算法一致,因此可以通過公式2預(yù)估時(shí)鐘樹 總的寄存器和互連線的電容值。
[0030] dt』j^+Cj^D (2) i=A
[0031] 公式中,Ci表示單個(gè)時(shí)鐘寄存器的電容,、表示預(yù)估的時(shí)鐘樹線長,<^表示單位 互連線的電容。CwSFoundry廠對線電容多次模擬仿真得到的一個(gè)值,它是將線的寬度和高 度等因素綜合考慮在內(nèi)而得出的一個(gè)相對準(zhǔn)確的值。由于時(shí)鐘樹的繞線優(yōu)先級在整個(gè)芯片 中是最高的,時(shí)鐘繞線通常是普通信號線寬度的兩倍,因此時(shí)鐘樹的繞線受外界干擾較小, 可以通過來粗略估計(jì)互連線的電容值。單個(gè)寄存器簇的負(fù)載電容閾值可通過公式3 得出。其中K為分組數(shù)。
[0032] Climit=[C/ total/K] (3)
[0033] 實(shí)施例2
[0034] (1)時(shí)鐘樹分組的設(shè)計(jì)
[0035]假設(shè)芯片內(nèi)部某一區(qū)域時(shí)鐘寄存器的分布如圖2所示,按照以下步驟得到合理的 寄存器分組數(shù):
[0036]步驟a:參照普林姆算法的思想,隨機(jī)選取一個(gè)寄存器作為起點(diǎn)(在此選擇A寄存 器)。此時(shí),將A當(dāng)作初始寄存器簇C( 1 ),該寄存器隨之從寄存器集合Nreg中移除。設(shè)置寄存器 與緩沖器之間的距離閾值Mmax的大小。
[0037]步驟b:在剩下的寄存器中找出距離A最近的寄存器B,若它們之間的距離小于等于 Mmax,即寄存器B與當(dāng)前寄存器簇中心(此時(shí)為A)的距離小于等于1^且當(dāng)前寄存器簇的大小 在最大扇出范圍內(nèi),則把A和B合并,同時(shí)更新寄存器簇的中心點(diǎn)坐標(biāo)為A和B的中點(diǎn)坐標(biāo)。同 理,在余下的寄存器中找到C和D加入寄存器簇C(l)并更新C(l)的中點(diǎn)坐標(biāo)。
[0038] 步驟c:寄存器E為距離C(l)最近的寄存器,但它們之間的距離大于Mmax的值,因此 將E作為新的初始寄存器簇C(2)。同理,找出剩余寄存器中所有能夠加入C(2)的寄存器F、G、 H〇
[0039] 步驟d:依此類推,可得到四組初始寄存器簇。它們分別為"AB⑶","EFGH","IJKL" 和"MN0P"。由于Mmax的限制,這些寄存器簇的半徑都不會(huì)超過M max,進(jìn)而對時(shí)鐘偏移做了一個(gè) 初步的限制。通過這種方式,既得到了分組數(shù)K也得到了初始寄存器簇。
[0040] (2)寄存器簇的緩沖器分配的設(shè)計(jì)
[00411公式(4)為互連線轉(zhuǎn)換模型的表達(dá)式。表達(dá)式中,de是由Elmore延時(shí)模型算出的互 連線延時(shí),Sle為互連線上的轉(zhuǎn)換衰退值(Slew Degradation)。
[0042] Sle = ln 9Xde (4)
[0043] 公式(5)為寄存器輸入轉(zhuǎn)換Sl(r)表達(dá)式。由公式可以看出寄存器輸入轉(zhuǎn)換的大小 由緩沖器的上升沿輸出轉(zhuǎn)換值Sl?t(b)和互連線轉(zhuǎn)換衰退值Sl e共同決定。
[0044] S/(r) = ^SIjlli(bf+SI; (5)
[0045] 圖3為一個(gè)簡單的緩沖器驅(qū)動(dòng)寄存器示意圖,結(jié)合公式4和公式5可知,圖中寄存器 的輸入轉(zhuǎn)換受緩沖器的輸出轉(zhuǎn)換和互連線轉(zhuǎn)換共同影響。
[0046] 然而,人工得到緩沖器的輸出轉(zhuǎn)換值非常困難。此外,即便手工算出的轉(zhuǎn)換值,但 通常情況下該值的誤差非常大沒有任何參考意義,不能將寄存器的輸入轉(zhuǎn)換值作為緩沖器 分配算法中插入緩沖器的依據(jù)。因此,在此以負(fù)載電容作為插入依據(jù)。具體實(shí)施步驟如下: [0047]步驟a:選定項(xiàng)目中所有驅(qū)動(dòng)能力適中的緩沖器,它們按照驅(qū)動(dòng)力大小升序的方式 排序。
[0048] 步驟b:考慮極為特殊的情況,當(dāng)寄存器簇中只有一個(gè)寄存器時(shí),不給其分配緩沖 器。
[0049] 步驟c:對于每一個(gè)非單個(gè)寄存器的寄存器簇,計(jì)算寄存器簇的負(fù)載電容,同時(shí)遍 歷緩沖器的最大驅(qū)動(dòng)電容,給寄存器簇分配最合適的緩沖器。
[0050] (3)距離閾值Mmax的設(shè)計(jì)
[0051] 緩沖器根據(jù)驅(qū)動(dòng)能力的大小來驅(qū)動(dòng)不同扇出數(shù)的負(fù)載。此外,對于相同扇出數(shù)的 負(fù)載而言,驅(qū)動(dòng)能力強(qiáng)的緩沖器所帶負(fù)載的距離可以更遠(yuǎn)。在設(shè)定寄存器簇的驅(qū)動(dòng)緩沖器 時(shí),應(yīng)該考慮驅(qū)動(dòng)能力適中的緩沖器。這樣才能在性能和功耗上得到一個(gè)折衷。
[0052] 以圖4所示緩沖器驅(qū)動(dòng)扇出寄存器示意圖為例,各寄存器結(jié)構(gòu)相同,該寄存器簇的 負(fù)載電容可由公式6表示:
[0053] Cbuf = NReg*Cr+NReg*Mmax*Cw (6)
[0054]式中Cbuf為緩沖器的最大負(fù)載電容,緩沖器的合理最大負(fù)載電容值可以通過計(jì)算 標(biāo)準(zhǔn)單元庫中的查找表得到。若緩沖器所帶負(fù)載電容超出Cbuf,則緩沖器內(nèi)部延時(shí)將變大, 可能造成時(shí)序違規(guī)。Cr表示該寄存器簇中單個(gè)寄存器的電容,N Reg表示該寄存器簇中的寄存 器個(gè)數(shù),Cw表示寄存器簇中單位互連線的電容,Mmax表示該寄存器簇中寄存器與緩沖器之間 的距離閾值。
[0055] 在公式6中,Cbuf、C#PCW可以通過查詢標(biāo)準(zhǔn)單元庫得到。在做數(shù)字后端設(shè)計(jì)前,通常 會(huì)設(shè)置緩沖器的最大扇出值NFa_t,即緩沖器所能驅(qū)動(dòng)的寄存器的最大個(gè)數(shù)。因此,NReg值的 范圍為1至NF_ut之間,可以根據(jù)具體應(yīng)用取經(jīng)驗(yàn)值。在確定了以上四個(gè)參數(shù)后,距離閾值 Mmax便可通過公式計(jì)算得出。
【主權(quán)項(xiàng)】
1. 一種寄存器聚類算法在時(shí)鐘樹綜合中的實(shí)現(xiàn)方法,其特征在于,該方法包括如下步 驟: la) 利用普林姆算法,以時(shí)鐘樹互連線長趨于最小值為標(biāo)準(zhǔn),生成時(shí)鐘寄存器的最小生 成樹; lb) 在生成最小生成樹的過程中利用寄存器與緩沖器之間的距離閾值對寄存器進(jìn)行初 始聚類,得到時(shí)鐘寄存器的初始寄存器簇; lc) 確定單個(gè)寄存器簇的負(fù)載電容閾值,對初始寄存器簇進(jìn)行低功耗聚類,得到時(shí)鐘寄 存器的最終寄存器簇; ld) 對最終寄存器簇進(jìn)行本地緩沖器分配,給每個(gè)寄存器簇分配驅(qū)動(dòng)能力合適的緩沖 器。2. 根據(jù)權(quán)利要求1所述的寄存器聚類算法在時(shí)鐘樹綜合中的實(shí)現(xiàn)方法,其特征在于單 個(gè)寄存器簇負(fù)載電容閾值的確定:確定時(shí)鐘樹總的寄存器和互連線的電容值,將該總電容 值和寄存器簇個(gè)數(shù)相除得到單個(gè)寄存器簇的負(fù)載電容閾值。3. 根據(jù)權(quán)利要求2所述的寄存器聚類算法在時(shí)鐘樹綜合中的實(shí)現(xiàn)方法,其特征在于時(shí) 鐘樹總的互連線電容值通過最短時(shí)鐘樹繞線算法預(yù)估得到。4. 根據(jù)權(quán)利要求1所述的寄存器聚類算法在時(shí)鐘樹綜合中的實(shí)現(xiàn)方法,其特征在于緩 沖器的分配方式:緩沖器的分配是以寄存器簇的負(fù)載電容作為標(biāo)準(zhǔn)。
【文檔編號】G06F17/50GK105930591SQ201610261567
【公開日】2016年9月7日
【申請日】2016年4月26日
【發(fā)明人】劉昊, 符仕聰
【申請人】東南大學(xué)