采用Magma Talus的時(shí)鐘樹實(shí)施
第I章:引言
好的時(shí)鐘樹對(duì)整個(gè)芯片的建立和保持時(shí)序收斂、功耗及魯棒性均較為有益。由于我們芯片是層次化、高速、數(shù)百萬門極電路的設(shè)計(jì),因此對(duì)時(shí)鐘樹有許多特殊要求。在本文中,我們介紹了一種‘如何使用Talus CTS引擎來設(shè)計(jì)可滿足特定要求的時(shí)鐘樹’的方法。第II章描述了高速VLSI芯片的設(shè)計(jì)和時(shí)鐘樹要求。第III章說明了時(shí)鐘樹創(chuàng)建的詳細(xì)實(shí)施過程。第IV章介紹了來自我們親身CTS體驗(yàn)的最佳實(shí)踐。第V章總結(jié)了我們對(duì)Talus CTS的使用。
第II章:設(shè)計(jì)與時(shí)鐘樹要求
我們的芯片以500+ MHz的高頻率工作,包含有超過千萬個(gè)門極電路。芯片的設(shè)計(jì)采用的是深亞微米工藝技術(shù)。芯片包含了如PLL等模擬設(shè)備以及數(shù)百萬個(gè)SRAM和軟宏(soft macro);有數(shù)十個(gè)時(shí)鐘域。對(duì)于一個(gè)有著如此規(guī)模的芯片,下述幾個(gè)是必須要達(dá)到的關(guān)鍵目標(biāo): 1. 建立時(shí)序收斂;2.充足的保持時(shí)序容限(margin)以實(shí)現(xiàn)良率;3. 快慢兩個(gè)角點(diǎn)中時(shí)鐘樹的平衡;4.最小化時(shí)鐘網(wǎng)絡(luò)延遲以減少抖動(dòng),實(shí)現(xiàn)芯片可靠性;5.最小化時(shí)鐘網(wǎng)絡(luò)功耗以降低整個(gè)芯片的功耗;6. 最小化時(shí)鐘網(wǎng)絡(luò)上串?dāng)_耦合,達(dá)成時(shí)序收斂和良率。
第III章:實(shí)施
本章說明了采用Talus創(chuàng)建時(shí)鐘樹的幾個(gè)主要步驟。除了使用Talus內(nèi)置命令以外,我們也可采用半定制腳本來增強(qiáng)某些功能。通過Talus與半定制腳本的結(jié)合使用,我們可在時(shí)鐘樹設(shè)計(jì)上獲得非常好的結(jié)果(QOR)。
1. 克隆時(shí)鐘門控(ICG)
ICG克隆是時(shí)鐘樹創(chuàng)建成功的關(guān)鍵,它對(duì)時(shí)序、時(shí)鐘樹結(jié)構(gòu)和功耗均有巨大影響。ICG單元可影響到時(shí)鐘路徑和數(shù)據(jù)路徑。如何克隆和設(shè)置它們至為重要。如果ICG單元是設(shè)置在時(shí)鐘樹的頂層,那么它可降低時(shí)鐘網(wǎng)絡(luò)功耗;原因在于當(dāng)ICG被禁用時(shí),ICG后的子樹也將被完全關(guān)閉。不過,ICG單元設(shè)置在時(shí)鐘樹的較高層會(huì)使得ICG的enable引腳上的建立時(shí)序更難以達(dá)成。因此它算是時(shí)序與功耗間的一種折衷方案。好的ICG克隆應(yīng)能夠最小化時(shí)鐘樹功耗,同時(shí)還不會(huì)引入無法解決的時(shí)序問題。Talus提供了兩種ICG單元克隆方式:一種是“run route clock”期間的內(nèi)置引擎;另一種是獨(dú)立ICG克隆。從我們的經(jīng)驗(yàn)來說,獨(dú)立ICG克隆可提供更好時(shí)序和樹結(jié)構(gòu),同時(shí)它對(duì)芯片功耗問題也很有幫助,設(shè)計(jì)師在如何克隆ICG單元的方式上也擁有更多的控制和配置能力。
在我們的設(shè)計(jì)中,我們通過使用腳本來預(yù)設(shè)ICG的enable引腳上的建立時(shí)序容限和時(shí)鐘引腳上的轉(zhuǎn)換率以及門控單元最大扇出數(shù)。容限是為了彌補(bǔ)時(shí)鐘樹創(chuàng)建后ICG單元和常規(guī)觸發(fā)器間的偏移,能夠降低ICG單元CTS后時(shí)序變壞的可能。結(jié)合使用這些約束,Talus在ICG克隆上可起到很好作用。Talus極具智能,可有選擇地克隆在E引腳上建立時(shí)序棘手的ICG單元,同時(shí)讓ICG單元保有未被克隆時(shí)的良好時(shí)序余量(slack)。那些未被克隆ICG單元能夠設(shè)置于時(shí)鐘樹較高層,這對(duì)降低動(dòng)態(tài)功耗來說較為有益。
圖-1顯示了Talus “run gate clone”后的結(jié)果。我們能夠看出Talus基于觸發(fā)器的位置自動(dòng)將其扇出的觸發(fā)器分成幾組。由于它同時(shí)將RC考慮在內(nèi),因此ICG克隆后,引腳轉(zhuǎn)換率仍是不錯(cuò)。有時(shí),我們會(huì)發(fā)現(xiàn)觸發(fā)器分組方式并非最佳,導(dǎo)致克隆ICG單元的布局也并不是最好的,那么我們可以應(yīng)用一些定制腳本對(duì)這些觸發(fā)器進(jìn)行重新分組并優(yōu)化布局。
圖-1
表-1顯示了“run route clock”期間的自動(dòng)克隆與獨(dú)立ICG克隆間比較。我們對(duì)幾個(gè)重要的時(shí)鐘網(wǎng)絡(luò)標(biāo)準(zhǔn)進(jìn)行了比較。結(jié)果很容易就判定“run route clock”期間的自動(dòng)克隆所產(chǎn)生的插入延遲更長(zhǎng)、樹層更多以及葉轉(zhuǎn)換(leaf transition)速度更慢。
2.以最短延遲創(chuàng)建平衡的時(shí)鐘樹
在時(shí)鐘綜合之前,我們需要通過“force plan clock”來定義時(shí)鐘約束。
force plan clock $m –balanced_routing –buffer –inverter –max_skew
我們也需要在創(chuàng)建時(shí)鐘樹前對(duì)指定的時(shí)鐘采取額外的控制。為了在快慢兩個(gè)角點(diǎn)上獲得平衡的時(shí)鐘樹,考慮RC分布的同時(shí)平衡層數(shù)差不多的時(shí)鐘樹至為重要?;ミB線延遲的伸縮范圍隨著橫跨各個(gè)角點(diǎn)金屬層的不同而有所不同。Talus提供了一個(gè)選項(xiàng)“-balanced_routing”,可指出以平衡方式執(zhí)行的時(shí)鐘布線,從而滿足了這種要求。
我們也通過下列命令將時(shí)鐘網(wǎng)絡(luò)的布線層限制于metal4和metal5:
force model routing layer $m lowest metal4 –net_type clock
force model routing layer $m highest metal5 –net_type clock
Talus遵從上述這些指令來創(chuàng)建時(shí)鐘樹;多數(shù)的時(shí)鐘網(wǎng)絡(luò)是在metal4和metal5進(jìn)行的布線。據(jù)實(shí)驗(yàn)結(jié)果顯示,如樹層、時(shí)鐘樹延遲和葉轉(zhuǎn)換等大多數(shù)樹結(jié)構(gòu)在起始樹創(chuàng)建后就已形成。它對(duì)于評(píng)估樹質(zhì)量并決定是否需要向前移動(dòng)來說至為重要。同時(shí),它也能幫助解決時(shí)鐘樹問題并加速迭代。Talus提供了一整套的樹分析命令以及功能強(qiáng)大的GUI;但分析工作主要針對(duì)整個(gè)時(shí)鐘樹或整個(gè)時(shí)鐘域而進(jìn)行;它并不支持對(duì)子分支樹結(jié)構(gòu)和時(shí)序的分析。為了分析時(shí)鐘樹的詳細(xì)信息,我們開發(fā)了一些腳本以依據(jù)分支和域報(bào)告時(shí)鐘樹。對(duì)于時(shí)序收斂,我們關(guān)心的是葉轉(zhuǎn)換(leaf slew)直方圖和每個(gè)時(shí)鐘域的最大插入延遲;對(duì)于時(shí)鐘分布,我們關(guān)心的是樹層、緩沖區(qū)/觸發(fā)器/鎖存器分布。
下方表-2和表-3是一時(shí)鐘分支的時(shí)鐘分析報(bào)告樣本。從結(jié)構(gòu)報(bào)告,我們不難發(fā)現(xiàn)所有觸發(fā)器都在第7層和第8層。這對(duì)于時(shí)鐘樹的魯棒性和多角時(shí)序關(guān)連來說非常重要。葉轉(zhuǎn)換也很不錯(cuò)。平均轉(zhuǎn)換率完全符合我們的設(shè)計(jì)要求。
據(jù)數(shù)據(jù)顯示,通過定量的控制和數(shù)據(jù)庫準(zhǔn)備工作,“run route clock”能夠處理復(fù)雜的時(shí)鐘樹結(jié)構(gòu)并產(chǎn)生優(yōu)秀的結(jié)果質(zhì)量。
3.調(diào)整時(shí)鐘樹以減少偏移
調(diào)整時(shí)鐘樹是一項(xiàng)棘手的工作。首先,它要視起始時(shí)鐘樹的質(zhì)量而定;其次,對(duì)它有一定要求,要求在盡可能少增加樹延遲和面積的同時(shí)達(dá)成偏移目標(biāo)。時(shí)鐘偏移會(huì)影響建立和保持時(shí)序,最終影響整個(gè)芯片的時(shí)序收斂。其基本目標(biāo)是要在不影響整體結(jié)構(gòu)并保持轉(zhuǎn)換率等標(biāo)準(zhǔn)的前提下插入緩沖器以調(diào)整時(shí)鐘偏移(clock skew)。
Talus使用“run gate clock”來調(diào)整時(shí)鐘樹。如只針對(duì)偏移目標(biāo),這個(gè)功能的作用并不能很好發(fā)揮出來。尤其對(duì)于有些小分支,Talus可能會(huì)增加極長(zhǎng)的緩沖鏈以平衡偏移,緩沖器間的距離很小。單元延遲在這些緩沖鏈的分支延遲中占主要部分;而其它常規(guī)分支延遲則是互連線延遲占主要部分。這可能導(dǎo)致橫跨不同角點(diǎn)的巨大偏移問題。我們開發(fā)了一個(gè)半定制腳本來指導(dǎo)Talus應(yīng)對(duì)這個(gè)問題。它可限制用于偏移平衡的緩沖器類型、緩沖器間線長(zhǎng)距離以及新網(wǎng)絡(luò)的布線方式。通過這些額外的控制,我們通??色@得100ps全局偏移和僅100ps左右的時(shí)鐘樹延遲增加。
第IV章:來自CTS實(shí)驗(yàn)的最佳實(shí)踐
1. 采用適當(dāng)葉轉(zhuǎn)換(leaf slew)來創(chuàng)建時(shí)鐘樹
表-4顯示了葉轉(zhuǎn)換是如何影響到時(shí)序和功耗。它依據(jù)不同葉轉(zhuǎn)換時(shí)間對(duì)建立時(shí)序、保持時(shí)序和功耗進(jìn)行了對(duì)比;當(dāng)轉(zhuǎn)換時(shí)間的增加、建立和保持時(shí)序總負(fù)余量提高時(shí)很容易就可發(fā)現(xiàn)這種情況。轉(zhuǎn)換時(shí)間快對(duì)時(shí)鐘網(wǎng)絡(luò)功耗也較為有益。隨著轉(zhuǎn)換時(shí)間的提高,短路功耗會(huì)相應(yīng)增加。它也是轉(zhuǎn)換目標(biāo)與樹面積間的一種折衷權(quán)衡。過緊的轉(zhuǎn)換會(huì)導(dǎo)致時(shí)鐘樹面積、層數(shù)和延遲的提高。它需要多次迭代的實(shí)驗(yàn)來才可獲得最佳效果。
2. 指定緩沖器/反向器類型以指導(dǎo)Talus,實(shí)現(xiàn)更好QOR。
Talus的CTS性能易受到時(shí)鐘單元類型的影響。如果不加以適當(dāng)約束,Talus呈現(xiàn)給您的將會(huì)是具有長(zhǎng)插入延遲的差的樹結(jié)構(gòu)。驅(qū)動(dòng)能力弱的時(shí)鐘單元也同樣用于時(shí)鐘樹,這可能導(dǎo)致不同角點(diǎn)時(shí)序水平的顯著降低。表-5是兩個(gè)CTS結(jié)果間相同分支的比較:一個(gè)有時(shí)鐘緩沖區(qū)和轉(zhuǎn)換器控制,另一個(gè)則無。從表中,您可看出,通過采用時(shí)鐘單元約束,Talus可創(chuàng)建更好的時(shí)鐘樹。
3. 優(yōu)化時(shí)鐘布線。
我們通常期望時(shí)鐘網(wǎng)絡(luò)可采用更高優(yōu)先級(jí)、更好布線類型來進(jìn)行布線。但光是這樣還不夠,特別是在深亞微米技術(shù)中,串?dāng)_效應(yīng)對(duì)整個(gè)芯片的時(shí)序和良率都有重大影響。時(shí)鐘信號(hào)通常以極高速度地運(yùn)行,切換的頻率比數(shù)據(jù)信號(hào)的都要高。因此如何隔離時(shí)鐘線和常規(guī)信號(hào)就顯得至為重要。首先,我們要盡可能多地在厚層上進(jìn)行時(shí)鐘信號(hào)布線。厚層的單元電阻和接地電容較低。顯而易見,分配長(zhǎng)的時(shí)鐘網(wǎng)絡(luò)到厚層中并采用更寬的寬度和更大的空間也可改善時(shí)鐘轉(zhuǎn)換。Talus可定義非默認(rèn)規(guī)則并設(shè)置首要層從而實(shí)現(xiàn)它。出于對(duì)有些關(guān)鍵時(shí)鐘的考慮,推薦防止串?dāng)_的方式就是用接地信號(hào)對(duì)時(shí)鐘線進(jìn)行屏蔽(shield)。由于非默認(rèn)規(guī)則布線對(duì)可布性有影響,因此它是時(shí)序與布線間一種折衷方案。在我們的設(shè)計(jì)中,我們根據(jù)線長(zhǎng)、驅(qū)動(dòng)單元類型及等級(jí)來定義不同規(guī)則。最終,它可使得時(shí)序網(wǎng)絡(luò)更具魯棒性。
第V章:結(jié)論
在我們的案例中,Talus CTS引擎能夠處理非常復(fù)雜的樹結(jié)構(gòu)。它提供了充足的CTS行為配置選項(xiàng)。CTS引擎的核心十分強(qiáng)大,足以創(chuàng)建一個(gè)平衡的基本時(shí)鐘樹。但如前幾章所講述的,它也是有些局限性。幸運(yùn)的是,基于TCL環(huán)境和易于訪問的DB,我們開發(fā)了一些功能強(qiáng)大的半定制腳本來指導(dǎo)CTS引擎并增強(qiáng)其性能。通過這種方式,我們的大部分設(shè)計(jì)要求都可得到滿足。