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