伍艷春
摘 要本文提出了一種clock mesh與H-tree相結(jié)合的混合時(shí)鐘樹設(shè)計(jì)方法,同時(shí)通過對(duì)設(shè)計(jì)中的寄存器按照一定規(guī)則進(jìn)行分組并分別布局在相同大小的網(wǎng)格中從而具備一定的對(duì)稱性和規(guī)則性,可更好的優(yōu)化H-tree結(jié)構(gòu),提高H-tree的性能從而提高了整個(gè)混合時(shí)鐘樹的性能。實(shí)驗(yàn)表明,該混合時(shí)鐘樹結(jié)構(gòu)可顯著減少時(shí)鐘樹長(zhǎng)度和時(shí)鐘分支間的skew,降低OCV影響。
【關(guān)鍵詞】clock mesh H-tree 寄存器組布局 clock skew
1 引言
隨著芯片規(guī)模的不斷增大,設(shè)計(jì)復(fù)雜度的不斷提升,同種工藝下對(duì)性能追求的極限化,時(shí)鐘網(wǎng)絡(luò)的分布越來越重要。如何減小時(shí)鐘skew、降低OCV影響,對(duì)時(shí)鐘樹綜合來說,是個(gè)嚴(yán)峻的挑戰(zhàn)。業(yè)界常用的時(shí)鐘樹設(shè)計(jì)方法有很多種,比如H-tree、二叉樹、clock mesh、魚骨等,其中H-tree的時(shí)鐘偏斜skew小,但對(duì)設(shè)計(jì)的規(guī)則性要求嚴(yán)格;clock mesh的時(shí)鐘樹長(zhǎng)度小、延時(shí)小、OCV影響小,但局部時(shí)鐘偏斜較大。為了充分利用這兩種時(shí)鐘樹結(jié)構(gòu)的優(yōu)點(diǎn),本文提出了一種混合時(shí)鐘樹設(shè)計(jì)方法,能有效的減小時(shí)鐘偏斜skew、降低OCV影響。
2 混合時(shí)鐘樹結(jié)構(gòu)
混合時(shí)鐘樹結(jié)構(gòu)如圖1所示。它主要由三部分組成:H-tree結(jié)構(gòu)pre-mesh、clock mesh、H-tree結(jié)構(gòu)local tree。因其包含不同的時(shí)鐘樹結(jié)構(gòu),故稱之為混合時(shí)鐘樹結(jié)構(gòu)。
該混合時(shí)鐘樹先通過H-tree結(jié)構(gòu)將時(shí)鐘源分布到clock mesh上,clock mesh上的時(shí)鐘以就近原則連接到附近的local tree起點(diǎn),local tree再通過H-tree結(jié)構(gòu)將時(shí)鐘信號(hào)分布到每個(gè)寄存器的時(shí)鐘端;同時(shí),由于local H-tree末端驅(qū)動(dòng)的寄存器布局經(jīng)特殊處理后具有一定的對(duì)稱性,可更好的優(yōu)化H-tree的性能。因到達(dá)每個(gè)寄存器的pre-mesh H-tree和local H-tree的級(jí)數(shù)基本相同,clock mesh又將時(shí)鐘信號(hào)在全局范圍內(nèi)均勻分布,從而可保證時(shí)鐘源端到各寄存器的時(shí)鐘樹長(zhǎng)度基本均衡,時(shí)鐘偏斜很?。煌瑫r(shí),通過對(duì)寄存器進(jìn)行分組,將存在時(shí)序關(guān)系的寄存器集中布局在局部區(qū)域,共享同一個(gè)時(shí)鐘樹分支,由于同一時(shí)鐘樹分支中共同的時(shí)鐘路徑很長(zhǎng),OCV影響很小。
3 設(shè)計(jì)方法及實(shí)例
本章節(jié)詳細(xì)描述了在一個(gè)40nm工藝、面積為3200um*6200um的設(shè)計(jì)中運(yùn)用該混合時(shí)鐘樹結(jié)構(gòu)的具體方法,并通過PT時(shí)序分析說明了該時(shí)鐘樹結(jié)構(gòu)時(shí)鐘路徑短,latency、skew很小等優(yōu)點(diǎn)。
3.1 寄存器組布局
local tree設(shè)計(jì)采用H-tree結(jié)構(gòu)。但H-tree對(duì)其所要驅(qū)動(dòng)的寄存器布局有嚴(yán)格的要求,要求其布局盡量具有對(duì)稱性,這樣才能更好的保證H-tree長(zhǎng)度的均衡性,時(shí)鐘skew才會(huì)更小。因此,在進(jìn)行l(wèi)ocal H-tree設(shè)計(jì)前,需先對(duì)設(shè)計(jì)中的寄存器進(jìn)行處理,讓寄存器以一定的規(guī)則布局在規(guī)整的局部區(qū)域內(nèi)。本文采用的方法是:
(1)將設(shè)計(jì)中的寄存器按一定的規(guī)則如按命名規(guī)則進(jìn)行分類,將具有相同名稱前綴的寄存器聚成一類。為了讓H-tree結(jié)構(gòu)的驅(qū)動(dòng)能力更強(qiáng)、時(shí)鐘樹延時(shí)更短、時(shí)鐘skew更小,每一聚類最多只能包含一級(jí)ICG單元(可以無ICG),寄存器數(shù)量必須在5與64之間。
(2)寄存器分組完成后,將每個(gè)寄存器組分別創(chuàng)建group bound,通過設(shè)置合適的利用率如90%指導(dǎo)工具將bound內(nèi)的寄存器集中布局在一定大小的范圍內(nèi);針對(duì)相鄰bound距離過小、內(nèi)部寄存器數(shù)量過少的情況,需依據(jù)一定的規(guī)則如間距大小、寄存器數(shù)量等對(duì)相關(guān)bound進(jìn)行合并,合并后的寄存器布局更集中,每個(gè)bound內(nèi)部寄存器的數(shù)量更均衡(其數(shù)量必須不大于64個(gè))。
(3)寄存器布局規(guī)則化,將die以一定大小的網(wǎng)格grid(比如(20倍row height)寬*(16倍row hight)高,grid面積基本為64個(gè)寄存器的面積)進(jìn)行網(wǎng)格狀劃分,對(duì)每個(gè)bound的位置進(jìn)行微調(diào),保證每個(gè)bound中心點(diǎn)均位于grid內(nèi),每個(gè)grid內(nèi)最多64個(gè)寄存器。
通過上述處理后,每個(gè)寄存器組均布局在相同大小規(guī)則的grid內(nèi),且每個(gè)寄存器組內(nèi)寄存器數(shù)量基本均衡,grid的規(guī)則化,為每一個(gè)local H-tree分支的對(duì)稱設(shè)計(jì)提供了前提條件。
3.2 local H-tree設(shè)計(jì)
由于每個(gè)local H-tree的分支只需驅(qū)動(dòng)其grid內(nèi)最多64個(gè)寄存器,因此,local H-tree只需要兩級(jí)驅(qū)動(dòng),分別為sink buffer tree和grid buffer tree:
(1)sink buffer tree:每個(gè)grid分成上下左右共四個(gè)小網(wǎng)格,每個(gè)小網(wǎng)格內(nèi)包含16個(gè)寄存器,每個(gè)小網(wǎng)格內(nèi)插入一個(gè)sink buffer,用于驅(qū)動(dòng)16個(gè)寄存器;為了平衡該sink buffer到16個(gè)寄存器的tree長(zhǎng)度,將該sink buffer布局在16個(gè)寄存器布局位置的中心。
(2)grid buffer tree:每個(gè)grid內(nèi)均有4個(gè)sink buffer,為了驅(qū)動(dòng)這四個(gè)buffer,需要在每個(gè)grid內(nèi)部插入一個(gè)grid buffer,作為local H-tree的起點(diǎn)。由于該grid buffer直接與clock mesh相連,針對(duì)grid內(nèi)有ICG單元的情況,將該grid buffer插在ICG單元之前,如果grid內(nèi)沒有ICG單元,為了平衡各local tree分支間的級(jí)數(shù),需先在4個(gè)sink buffer前插入一級(jí)專門用來平衡ICG單元的buffer,再在該buffer前面插入grid buffer,grid buffer布局在每個(gè)grid的中心,以此平衡grid buffer到4個(gè)sink buffer之間的距離
如圖2所示,是local H-tree在一個(gè)grid內(nèi)的分布示意圖。Grid為圖示黃色線內(nèi)區(qū)域,grid buffer布局在grid中間位置,其驅(qū)動(dòng)的4個(gè)sink buffer分別位于各自驅(qū)動(dòng)的16個(gè)寄存器的中間位置,grid 與 sink buffer以H-tree的結(jié)構(gòu)進(jìn)行時(shí)鐘走線,grid buffer作為local tree的起點(diǎn),在clock mesh布局后,將與附近的clock mesh相連,完成local tree與clock mesh的連接。
3.3 clock mesh與pre-mesh H-tree設(shè)計(jì)
clock mesh與電源網(wǎng)格類似,設(shè)置好clock mesh橫縱向金屬層,網(wǎng)格寬度、網(wǎng)格間隔等約束,使用命令create_clock_mesh即可完成clock mesh的創(chuàng)建。
時(shí)鐘源到clock mesh的分布,采用pre-mesh H-tree結(jié)構(gòu),本文采用的設(shè)計(jì)方法如下:
(1)pre-mesh H-tree級(jí)數(shù)的計(jì)算:為了更好的驅(qū)動(dòng)clock mesh,pre-mesh最后一級(jí)H-tree buffer數(shù)量必須足夠多,至少每200um左右需插入一級(jí)clock buffer。級(jí)數(shù)與buffer間距的關(guān)系如下公式所示:buffer間距=die(寬)/2H-tree(級(jí)數(shù))。
(2)pre-mesh H-tree的分布:先從clock port端插入一級(jí)buffer,將該buffer布局在芯片中央位置,作為H-tree的起點(diǎn);再?gòu)脑撈瘘c(diǎn)插入相應(yīng)級(jí)數(shù)的H-tree buffer,每一級(jí)buffer驅(qū)動(dòng)其后一級(jí)的4個(gè)buffer,這四個(gè)buffer分別位于該buffer的上下左右四個(gè)點(diǎn),形成H結(jié)構(gòu),H結(jié)構(gòu)的橫向間距=die寬/2該級(jí)H-tree級(jí)數(shù),縱向間距= die高/2該級(jí)H-tree級(jí)數(shù)。
(3)H-tree結(jié)構(gòu)縱向中心buffer的插入:為了讓h-tree結(jié)構(gòu)的時(shí)鐘走線呈H結(jié)構(gòu),也為了更好的驅(qū)動(dòng)能力,需分別在每級(jí)四個(gè)buffer的縱向中心點(diǎn)插入一級(jí)buffer,該buffer與前級(jí)buffer處于同一水平線上。
(4)驅(qū)動(dòng)buffer的插入:當(dāng)H結(jié)構(gòu)縱向buffer間距過大、驅(qū)動(dòng)能力不夠時(shí),需以一定間隔(如每200um左右)插入一個(gè)驅(qū)動(dòng)buffer,以滿足每?jī)蓚€(gè)互連buffer之間的驅(qū)動(dòng)能力。
(5)當(dāng)H-Tree結(jié)構(gòu)完成后,將最后一級(jí)buffer的輸出連接到clock mesh上,完成premesh H-tree與clock mesh的連接。
如圖4所示,是pre-mesh H-tree的分布示意圖及pre-mesh與clock mesh的連接示意圖。pre-mesh H-tree共有5級(jí)驅(qū)動(dòng),最后一級(jí)驅(qū)動(dòng)buffer以大概200um的間距均勻的布局,該級(jí)buffer的輸出以就近原則連接到周圍的clock mesh上。
3.4 混合時(shí)鐘樹延時(shí)結(jié)果
由于pre-mesh H-tree結(jié)構(gòu)最終驅(qū)動(dòng)同一根clock net(clock mesh),布局布線工具目前無法獲取從時(shí)鐘源到clock mesh之間各分支的clock延時(shí),本文通過第三方電路仿真分析工具Hspice來獲取clock mesh的延時(shí)信息。具體的分析方法如下:
(1)在布局布線工具中分析clock mesh電路結(jié)構(gòu),生成clock mesh spice網(wǎng)表及相應(yīng)的measure文件,并收集需要獨(dú)立使用仿真工具分析的clock net和clock cell,將其加到生成的measure文件中。
(2)使用Hspice仿真工具,輸入1)生成的相關(guān)文件,以SDC文件格式計(jì)算并生成可被布局布線工具識(shí)別的延遲信息,完成clock mesh電路的延時(shí)計(jì)算。
(3)將生成的sdc 文件加載到布局布線工具中,即可完成clock mesh電路延時(shí)的反標(biāo)。
將clock mesh的延時(shí)信息在PT中進(jìn)行反標(biāo)兵分析整個(gè)是鐘樹的latency及skew,發(fā)現(xiàn)時(shí)鐘skew很小,在30ps以內(nèi)。
4 總結(jié)
本文通過綜合考慮各種時(shí)鐘樹結(jié)構(gòu)的優(yōu)缺點(diǎn),提出一種混合時(shí)鐘樹結(jié)構(gòu),該結(jié)構(gòu)由pre-mesh H-tree、clock mesh、local H-tree三部分組成,并通過對(duì)設(shè)計(jì)中的寄存器按照一定原則進(jìn)行分組處理并集中布局在指定大小的grid內(nèi),保證了H-tree的設(shè)計(jì)規(guī)則性,從而更好的優(yōu)化了H-tree的性能。本文結(jié)論表明,該時(shí)鐘樹結(jié)構(gòu)可顯著減少時(shí)鐘樹長(zhǎng)度、增加同一grid內(nèi)時(shí)鐘樹的共同路徑長(zhǎng)度從而減少OCV影響,同時(shí)能很好的均衡不同grid內(nèi)各時(shí)鐘樹分支,減少時(shí)鐘skew。
參考文獻(xiàn)
[1]陳彥白.Fishbone和CTS時(shí)鐘樹的比較[D].上海 :復(fù)旦大學(xué),2008.
作者單位
南京電子技術(shù)研究所 江蘇省南京市 210039