吳雨臻 袁書偉 鐘傳杰
(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 無錫 214122)
隨著半導(dǎo)體制造工藝的不斷發(fā)展,芯片集成度越來越高,規(guī)模越來越大,門級數(shù)目越來越多[1]。時鐘樹結(jié)構(gòu)的設(shè)計成為數(shù)字后端設(shè)計的重中之重。時鐘樹綜合(CTS)的主要目的是使時鐘偏差、相位延時盡量最小化,最大限度地為時序收斂服務(wù)[2]。在時鐘網(wǎng)絡(luò)中,通常應(yīng)用EDA工具生成二叉型時鐘樹結(jié)構(gòu)[3]。
這種方法實現(xiàn)時間短,但使用的緩沖器較多,時鐘級數(shù)與時鐘延時較大,影響時序收斂[4],更重要的是OCV(On Chip Variation)難以避免會發(fā)生[5]。在實際情況中,芯片級(TOP)設(shè)計中時鐘樹網(wǎng)絡(luò)的負(fù)載包括觸發(fā)器與模塊單元(Block)。通常負(fù)載為模塊單元的時鐘路徑延時相對很大,最終導(dǎo)致時鐘樹的最大延時過大,造成很大的時鐘偏差[6]。同時,在芯片級設(shè)計中,芯片面積很大,時鐘路徑互連線很長,使用傳統(tǒng)CTS方法生成的時鐘樹不能提供很好的時鐘傳輸速度,也難以避免噪聲的影響。
針對大規(guī)模芯片級后端設(shè)計,本文提出了一種發(fā)散性時鐘樹結(jié)構(gòu),利用該方法可以解決傳統(tǒng)CTS產(chǎn)生的芯片級時鐘樹中時鐘繞線過長、噪聲過大等缺點,得到更小的時鐘延時與更小的時鐘偏差,以滿足時序要求。
結(jié)果表明,在芯片級設(shè)計中,通過該方法實現(xiàn)的時鐘樹比傳統(tǒng)二叉樹型時鐘樹減少了27%的時鐘延時和22%的時鐘偏差,且大幅度減少了59%的串?dāng)_噪聲,從而大量減少時序違例的數(shù)目。
局部的發(fā)散型時鐘樹結(jié)構(gòu)如圖1所示,即使用驅(qū)動能力強(qiáng)大的多級驅(qū)動器將時鐘信號由時鐘源點推至芯片中心,再由該點針對負(fù)載分布進(jìn)行時鐘發(fā)散,將芯片分為若干區(qū)域,各區(qū)域分別實現(xiàn)負(fù)載為觸發(fā)器的二叉樹時鐘樹與多級驅(qū)動器直接驅(qū)動負(fù)載為模塊單元的時鐘樹相結(jié)合的方法。
圖2為發(fā)散型時鐘樹結(jié)構(gòu)的基本設(shè)計流程。
在完成芯片的模塊布局和標(biāo)準(zhǔn)單元放置以后,計算時鐘傳輸路徑的距離,根據(jù)多級驅(qū)動的驅(qū)動能力,每隔一定距離插入多級驅(qū)動以推動時鐘信號,以此保證時鐘信號具有較小的傳輸延時。將時鐘信號推至芯片中心點后,根據(jù)負(fù)載情況對芯片進(jìn)行區(qū)域劃分,同樣根據(jù)多級驅(qū)動的驅(qū)動能力來決定一個多級驅(qū)動能驅(qū)動的時鐘路徑數(shù)目,將時鐘信號分別傳輸至不同的區(qū)域。在時鐘信號到達(dá)各個區(qū)域之后,對不同類型的負(fù)載進(jìn)行分離處理。模塊單元負(fù)載采用直接由處于各個區(qū)域點的多級驅(qū)動器直接驅(qū)動的方法;觸發(fā)器負(fù)載則采用傳統(tǒng)的二叉樹型時鐘樹結(jié)構(gòu),以此降低時鐘延時,平衡負(fù)載類型不同所造成的時鐘偏差。
本文以工程編號為MD-GRAPE的芯片級模塊為例,實現(xiàn)發(fā)散型時鐘樹結(jié)構(gòu)。該芯片采用TSMC40nm工藝,芯片尺寸為18000μm×18000μm,主時鐘SCLK的工作頻率為600MHz。
芯片級設(shè)計面積巨大,時鐘緩沖器需具有很大的驅(qū)動能力,多個緩沖器并聯(lián)組成的多級驅(qū)動器可以提供較大的驅(qū)動能力,以此推動時鐘信號。
本設(shè)計選擇了一種由驅(qū)動能力和面積相對較大的CKBD24BWP緩沖器所組成的多級驅(qū)動器。典型的多級驅(qū)動器為二級驅(qū)動器,由一個第一級CKBD24BWP緩沖器推動4個次級CKBD24BWP緩沖器組成。
CKBD24BWP單元的時序信息庫中上拉轉(zhuǎn)換組(rise_transition_group)如圖3所示。
通過查閱TSMC提供的靜態(tài)時序分析(STA)指導(dǎo)文檔可知,TSMC40nm工藝對于時鐘路徑上的最大電平轉(zhuǎn)換時間約束為150ps,但對于芯片級設(shè)計而言,時鐘樹級數(shù)相較于模塊級設(shè)計而言通常會更多,各級單元的電平轉(zhuǎn)換時間會在更長的時鐘路徑上疊加,使芯片級的時鐘延時相比于模塊級設(shè)計而言更大。通過反復(fù)試驗比較,在芯片級設(shè)計中,當(dāng)時鐘路徑最大電平轉(zhuǎn)換時間控制在50ps以下時,時序能夠達(dá)到可接受的范圍。通過對比上拉轉(zhuǎn)換組信息可知,第五行第五列,即輸入電平轉(zhuǎn)換時間約為55ps,輸出電平轉(zhuǎn)換時間約為43ps時,比較符合設(shè)計要求。此時每個CKBD24BWP緩沖器可驅(qū)動的負(fù)載電容為0.1265pF,即每個第二級緩沖器數(shù)目為4的多級驅(qū)動器可驅(qū)動電容約為0.506pF的負(fù)載。
主時鐘SCLK由PLL_SCLK的PLL_SCLK/FOUTPOSTDIV輸出端輸出,距離芯片中心點約15000μm。為減小時鐘延時、降低時鐘偏差,首先需要將時鐘信號傳輸至芯片的中心點。
由于多級驅(qū)動器需要驅(qū)動較強(qiáng)信號,為防止電遷移效應(yīng),多級驅(qū)動器選用線寬為1μm的互連線,同時信號繞線占用M2~M7層大量的繞線資源,容易造成串?dāng)_,因此,選用繞線資源更足的高層金屬層M8、M9用于時鐘走線,不同層間利用多通孔相連,以保證信號傳遞的可靠性[7]。
目前后端設(shè)計通常使用Synopsis公司的EDA工具PrimeTime進(jìn)行時序分析。在TSMC40nm工藝的設(shè)計中,通常約定不同單元之間互連線長度需小于 4000μm,若互連線長度超過 4000μm,通過PrimeTime進(jìn)行時序分析產(chǎn)生的誤差將會超過可接受的范圍。
在PrimeTime使用report_delay_caculation命令得知,每1000μm線寬為1μm的互連線負(fù)載電容值約為0.120pF,即每4000μm的互連線電容約為0.480pF,即單個典型的多級驅(qū)動器可驅(qū)動長度約為4000μm的線寬為1μm的互連線。因此每4000μm插入一個多級驅(qū)動器,使用4個典型多級驅(qū)動器將時鐘信號傳輸至芯片中心點。
將時鐘信號傳輸至芯片中心位置后,根據(jù)芯片的負(fù)載分布情況對時鐘信號進(jìn)行發(fā)散,即通過多個多級驅(qū)動器將時鐘信號推至不同的區(qū)域。時鐘發(fā)散的主要目的是將時鐘信號由高層金屬層更快的傳輸至距離負(fù)載更近的位置,降低時鐘延時,減小互連線之間的串?dāng)_噪聲。
多級驅(qū)動器所驅(qū)動的總電容量包括負(fù)載電容、互連線電容以及寄生電容的總和[8]。在深亞微米設(shè)計中,較長互連線的負(fù)載電容已經(jīng)遠(yuǎn)遠(yuǎn)大于標(biāo)準(zhǔn)單元和宏單元的負(fù)載電容,成為負(fù)載總電容的主要組成部分[9]。通過查找時序信息庫(lib)文件得知,芯片級設(shè)計中的模塊單元時鐘端輸入電容約為0.02pF~0.04pF,標(biāo)準(zhǔn)單元時鐘端輸入電容約為0.003pF~0.005pF,遠(yuǎn)遠(yuǎn)小于互連線的電容。因此,在進(jìn)行時鐘發(fā)散時,各區(qū)域距離芯片中心點時鐘源點的距離是主要需要考慮的因素。
根據(jù)前后級單元互連線長度不超過4000μm距離的設(shè)計規(guī)則,將時鐘信號由芯片中心位置傳輸至各區(qū)域負(fù)載周圍的時鐘路徑節(jié)點。為平衡時鐘延時,降低時鐘偏差,在對時鐘信號發(fā)散結(jié)構(gòu)設(shè)計時需遵循以下原則:1)每一條由時鐘源點至各分支終點的路徑上的多級驅(qū)動器數(shù)目必須一致;2)單個分支終點多級驅(qū)動器距其不同負(fù)載的距離的均方差盡量小;3)不同分支終點的多級驅(qū)動器距其負(fù)載最大距離之間的均方差盡量小。
時鐘發(fā)散后的時鐘結(jié)構(gòu)如圖4所示。時鐘信號由芯片中心點M點通過Ⅰ、Ⅱ、Ⅲ三點的多級驅(qū)動器傳輸至A、B、C、D四個點的多級驅(qū)動器,再分別傳輸至各區(qū)域總計16個時鐘分支終點。
完成時鐘發(fā)散后,需要對各分支路徑上的多級驅(qū)動器進(jìn)行驅(qū)動能力調(diào)整,以平衡各路徑的傳輸延時。芯片中心點的多級驅(qū)動器到Ⅰ、Ⅱ、Ⅲ三點多級驅(qū)動器的距離保持在4000μm以內(nèi),滿足PT分析時序的要求,但它共驅(qū)動了三條總長度為約為10000μm的互連線,總電容值約為1.20pF,因此芯片中心點選擇插入第二級緩沖器數(shù)目為8的多級驅(qū)動器。同樣地,A、B點的多級驅(qū)動器分別驅(qū)動五個多級驅(qū)動器,互連線負(fù)載總長度約為15000μm,總電容值約為1.80pF,因此A、B選用第二級緩沖器數(shù)目為12的多級驅(qū)動器。C、D點的多級驅(qū)動器分別驅(qū)動三個多級驅(qū)動器,互連線負(fù)載總長度約為8000μm,總電容約為0.960pF,因此C、D點選用第二級緩沖器數(shù)目為8的多級驅(qū)動器。
由于觸發(fā)器負(fù)載與模塊單元負(fù)載的輸入電容相差較大,當(dāng)其處于同一平衡型時鐘樹時,時鐘到達(dá)不同類型負(fù)載的時鐘延時差距較大,導(dǎo)致時鐘偏差較大[10],因此,對于觸發(fā)器負(fù)載,由于觸發(fā)器數(shù)目較多,采用EDA工具可自動優(yōu)化時鐘偏差的平衡型二叉樹時鐘樹結(jié)構(gòu);對于模塊單元負(fù)載,由于其數(shù)目較少、負(fù)載電容較大,采用由多級驅(qū)動器直接驅(qū)動的時鐘樹結(jié)構(gòu)。
由16個分支終點的多級驅(qū)動器分別分出兩條時鐘路徑,一條與一個就近的多級驅(qū)動器相連,用于驅(qū)動模塊單元;另一條與一個CKBD24BWP時鐘緩沖器相連,用于驅(qū)動觸發(fā)器單元。對于每個與觸發(fā)器負(fù)載相連的CKBD24BWP緩沖器,首先使用ICC2命令create_generated_clock在其輸出端創(chuàng)建一個周期與SCLK周期相同的時鐘信號,然后使用synthesize_clock_trees-clock針對每個generated clock進(jìn)行時鐘樹綜合。對于每個與模塊單元相連的最后一級的多級驅(qū)動器,使用命令route_group將模塊單元時鐘輸入管腳與多級驅(qū)動器的輸出端相連,發(fā)散型時鐘樹結(jié)構(gòu)生長完成。完成后的發(fā)散型時鐘樹結(jié)構(gòu)如圖5所示。
在某些后端設(shè)計時,以不影響芯片功能為前提,可更改器件尺寸,或者添加緩沖器和反相器,因此也可以在那些已經(jīng)很小的延遲路徑中插入幾個緩沖單元,這樣的skew值更佳[11]。
由于模塊單元使用多級驅(qū)動器進(jìn)行驅(qū)動,時鐘信號傳輸至模塊單元的延時是小于時鐘信號傳至觸發(fā)器負(fù)載的延時的。同時,不同模塊內(nèi)部的時鐘延時也不同,這也會導(dǎo)致模塊之間時鐘偏差過大。為降低時鐘偏差,需要對時鐘樹進(jìn)行時鐘延時平衡。根據(jù)PrimeTime的時序報告,在不同模塊單元的時鐘輸入端插入不同的驅(qū)動較小的緩沖器,適當(dāng)延遲時鐘信號傳輸至模塊時鐘輸入端的時間,以此平衡不同負(fù)載時鐘路徑的時鐘延時,降低時鐘偏差。同時調(diào)整各個分支終點多級驅(qū)動器包含的CKBD24BWP緩沖器數(shù)目,以此平衡不同模塊內(nèi)部時鐘延時不同造成的影響。
利用EDA工具PrimeTime分別對發(fā)散時鐘樹結(jié)構(gòu)與傳統(tǒng)二叉樹型平衡時鐘樹結(jié)構(gòu)進(jìn)行靜態(tài)時序仿真。為減少片上偏差導(dǎo)致的時序仿真誤差,PT使用AOCV(Advance OCV)基于路徑級數(shù)和物理距離設(shè)置不同下降因子的方法[12],精確報告出兩種時鐘樹的時序質(zhì)量。兩種時鐘樹的性能比較如表1所示。
由表1可知,在大規(guī)模芯片級設(shè)計中,傳統(tǒng)二叉樹型時鐘樹時鐘級數(shù)較多,延時很大,而且抗噪聲能力很差,導(dǎo)致了建立時間違例數(shù)較大。發(fā)散型時鐘樹相比于傳統(tǒng)二叉樹型時鐘延遲和時鐘偏差較小,抗噪聲能力更強(qiáng),能更好地為時序收斂服務(wù)。
表1 兩種時鐘樹的性能比較
在大規(guī)模芯片級后端設(shè)計中,通過本文方法實現(xiàn)的發(fā)散型時鐘樹比傳統(tǒng)二叉樹型時鐘樹減少了26%的時鐘延時和22%的時鐘偏差以及59%的噪聲,大大地減少了時序違例的數(shù)量,在數(shù)字后端芯片級設(shè)計中應(yīng)用前景廣泛。
[1]程鋒.超大規(guī)模集成電路布局算法研究[D].上海:上海交通大學(xué),2005.
[2]張玲,王澧.百萬門系統(tǒng)級芯片的時鐘樹設(shè)計[J].電子與封裝,2014,14(12):21-24.
[3]LIN H T,CHUANG Y L,YANG Z H,et al.Pulsed-latch utilization for clock-tree power optimization[J].IEEE Trans VLSI Syst,2014,22(4):721-733.
[4]陽若寧.一種低功耗集成電路的時鐘分布策略[J].中南林業(yè)科技大學(xué)學(xué)報,2011,31(12):192-196.
[5]陳祺,林平分,張玥.超大規(guī)模集成電路中基于OCV的時序收斂方法[J].電子科技,2009,22(7):30-33.
[6]曾艷飛.魚骨型時鐘結(jié)構(gòu)的研究與實現(xiàn)[D].長沙:國防科學(xué)技術(shù)大學(xué),2012.
[7]Hou W,Liu D,Ho P H.Automatic register banking for low-power clock trees[C]//Quality of Electronic Design,2009.ISQED 2009.Quality Electronic Design.IEEE,2009:647-652.
[8]張巖,楊銀堂.一種新型分布式互連線功耗優(yōu)化模型[J].西安電子科技大學(xué)學(xué)報(自然科學(xué)版),2014,41(4):36-40.
[9]孫驥.超大規(guī)模集成電路時鐘線網(wǎng)的布線及優(yōu)化算法研究[D].上海:上海交通大學(xué),2005.
[10]楊賀,嚴(yán)偉.點接魚骨型時鐘網(wǎng)路設(shè)計[J].微電子學(xué)與計算機(jī),2016,33(7):11-14.
[11]童瓊,張曉林,蘇琳琳等.雙頻雙系統(tǒng)導(dǎo)航芯片的時鐘樹分析和設(shè)計[J]. 微電子學(xué),2011,41(2):246-250.
[12]嚴(yán)偉,范光宇,朱兆偉,鄭永力.一種改進(jìn)型FBT時鐘樹結(jié)構(gòu)[J].微電子學(xué),2017,47(1):92-95.