文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.199804
中文引用格式: 邊少鮮,David He,欒曉琨,等. 基于Innovus提升芯片性能的物理實現(xiàn)方法[J].電子技術(shù)應(yīng)用,2019,45(8):48-52,60.
英文引用格式: Bian Shaoxian,David He,Luan Xiaokun,et al. A physical implementation method based on Innovus to improve chip performance[J]. Application of Electronic Technique,2019,45(8):48-52,60.
0 引言
隨著集成電路工藝發(fā)展,物理設(shè)計流程已相對成熟,但是隨著芯片規(guī)模增大,頻率提升,復(fù)雜度提升,芯片的物理實現(xiàn)變得越來越困難。研究和實踐均表明,插入緩沖器是物理設(shè)計有效的優(yōu)化互連延時的方法,但是,緩沖器插入有其局限性。目前的研究及電子設(shè)計自動化(Electronics Design AutomationEDA)工具大多都沒有考慮寄存器和邏輯單元布局(placement)后物理位置的影響,寄存器和邏輯單元通常被認(rèn)為放置在最佳位置。由于時鐘樹綜合(Clock Tree Synthesis,CTS),緩沖器的數(shù)量急劇增加,結(jié)果可能會發(fā)生顯著變化。由于這些原因,在物理設(shè)計階段仍可能發(fā)現(xiàn)許多時序違反,因此很難避免冗長的設(shè)計迭代。
本文通過建立適用于高性能芯片設(shè)計的物理設(shè)計流程,并對緩沖器的特性及作用進(jìn)行分類討論,提出一種在布局階段對設(shè)計進(jìn)行二次優(yōu)化的方法,并結(jié)合這個方法給出相應(yīng)的物理設(shè)計流程。最終使物理設(shè)計性能得到優(yōu)化。
1 物理設(shè)計介紹
1.1 物理實現(xiàn)方式
隨著芯片設(shè)計復(fù)雜度增加,規(guī)模增大,頻率提升,從RTL到GDSII過程的每一步,對于EDA工具、工程師和計算機硬件都是巨大的挑戰(zhàn)[1],設(shè)計收斂的關(guān)鍵問題往往集中在某些模塊,層次化設(shè)計就是“自上向下”地將大而復(fù)雜的設(shè)計分割成多個分割塊,然后對各個分割塊單獨進(jìn)行物理設(shè)計。層次化設(shè)計已經(jīng)成為大規(guī)模復(fù)雜芯片后端設(shè)計的主流方法[2]。對于分割塊的物理設(shè)計是在邏輯網(wǎng)表基礎(chǔ)上以標(biāo)準(zhǔn)單元作為最底層的子節(jié)點進(jìn)行“自下而上”的展平式設(shè)計的。各分割塊物理設(shè)計完成后合并到頂層完成整個設(shè)計。
1.2 傳統(tǒng)布局布線流程
芯片設(shè)計的物理實施通常被簡稱為布局布線(Place-and-Route,PR)[2]。由于布局布線的起點是插入掃描鏈后的門級網(wǎng)表,先進(jìn)行導(dǎo)入設(shè)計(Load design),即將門級網(wǎng)表和約束文件導(dǎo)入PR工具中;然后進(jìn)行Floorplan對輸入輸出管腳(Input Output port,I/O)、硬核(hard intellectual property,IP)和宏模塊進(jìn)行物理位置的規(guī)劃;接著進(jìn)行placement,即PR工具自動放置標(biāo)準(zhǔn)單元;接下來用緩沖器將時鐘送到各寄存器、IP、宏模塊的時鐘輸入端進(jìn)行CTS;再進(jìn)行布線(Route),在滿足工藝規(guī)則、設(shè)計規(guī)則以及邏輯規(guī)則的約束下,將單元和I/O用金屬連接起來;布線結(jié)束后會根據(jù)設(shè)計的最終檢查標(biāo)準(zhǔn)進(jìn)行優(yōu)化。圖1所示為布局布線的流程圖。
傳統(tǒng)的物理設(shè)計流程就是針對上述布局布線流程,以時序為主要參考指標(biāo)進(jìn)行設(shè)計,由于在前面的流程中不能得到后面步驟的信息,因此會在前面以不確定性(uncertainty)來進(jìn)行額外約束。uncertainty具體值的設(shè)置往往來自經(jīng)驗值,placement階段設(shè)置額外約束的目的是使標(biāo)準(zhǔn)單元位置更合理,所以需要加入對CTS和Route兩個階段的預(yù)估值。CTS階段設(shè)置額外約束的目的是建立更加合理的時鐘樹結(jié)構(gòu),同時需要加入Route階段的預(yù)估。逐步約束,逐步優(yōu)化,保證每一階段的時序收斂,并達(dá)到最終設(shè)計的收斂。這種傳統(tǒng)流程一個很嚴(yán)重的問題是為了設(shè)計的收斂而進(jìn)行過約束,從而進(jìn)行設(shè)計,尤其是在placement階段要加入CTS和Route兩個階段的預(yù)估值,偏差就更大。
1.3 Innovus介紹
Innovus是業(yè)內(nèi)主流的PR設(shè)計工具,可以提供更加合理有效的物理實現(xiàn)解決方法,在運行效率、時序分析、設(shè)計優(yōu)化方面都體現(xiàn)了強大的功能。在傳統(tǒng)PR流程的基礎(chǔ)上,Innovus可提供更優(yōu)化的方法。
2 物理實現(xiàn)優(yōu)化方法介紹
本節(jié)在傳統(tǒng)PR流程基礎(chǔ)上,基于Innovus建立更適用于高性能芯片設(shè)計的PR流程,并對16 nm工藝下緩沖器的特性進(jìn)行統(tǒng)計分析,在此基礎(chǔ)上提出placement的二次優(yōu)化方法。以16 nm高性能芯片設(shè)計為例,應(yīng)用PR流程和二次布局優(yōu)化方案,對placement二次優(yōu)化前后的設(shè)計指標(biāo)進(jìn)行對比分析。也同時對比了placement二次優(yōu)化后的數(shù)據(jù)版本運行到PR結(jié)束的變化,使物理設(shè)計更合理。
2.1 新建布局布線流程
Innovus在placement階段已經(jīng)對CTS和Route兩個階段的預(yù)估做了很好的方案。早期時鐘樹綜合功能(Early Clock Flow,ECF)是在placement階段調(diào)用時鐘樹協(xié)同優(yōu)化(Clock Concurrent Optimization,CCOPT)引擎創(chuàng)建時鐘樹塊并在placement階段自動優(yōu)化時序時反標(biāo)更準(zhǔn)確的時鐘延時[2]。這種方法能夠規(guī)避由于placement看不到之后的CTS信息,導(dǎo)致物理上時鐘樹緩沖器及時鐘繞線資源被占用,性能上影響CTS結(jié)果的弊端,使placement的結(jié)果更趨向于CTS之后的結(jié)果,減少了從placement階段到CTS階段的設(shè)計偏差。
在placement階段的預(yù)布線可以很好地預(yù)估后續(xù)Route的情況,但是工具在優(yōu)化計算時序時對電阻電容參數(shù)(RC Factor)的設(shè)置是理想值1,這明顯是不合理的,所以Innovus可提供對Route之后的RC Factor重新抽取計算,得到新的RC Factor,更新Route前設(shè)計的RC Factor;同時在抽參數(shù)的時候這樣工具在對預(yù)布線的計算就會更接近Route的結(jié)果,從而減少了從placement階段到Route階段的繞線偏差。實驗結(jié)果顯示,更新RC Factor之后,Route前后的偏差明顯縮小。
整個PR流程使用多模式多端角(Multi Mode Multi Corner,MMMC)分析方式,并且全程使用AOCV,避免時序過優(yōu)化,同時減少物理設(shè)計與工藝簽核(signoff)分析模式不同造成的物理設(shè)計冗余。在placement之前預(yù)先放置好時鐘門控,指導(dǎo)工具按照預(yù)先放置好的門控進(jìn)行布局,并且對時鐘根節(jié)點到門控的主干時鐘預(yù)先選擇更優(yōu)的單元和更優(yōu)的線寬,確保時鐘能夠更快更好地送到門控時鐘輸入端。由于本設(shè)計邏輯集中,寄存器集中,因此選擇寄存器合并的優(yōu)化方式進(jìn)行placement,并在placement階段使用ECF,減小placement與CTS之間的偏差。在CTS階段使用了中繼器(Buffer)與反相器(Inverter)混合的時鐘樹結(jié)構(gòu),更好地減少時鐘樹上的單元,從而減小功耗。將Route分為三步,先繞時鐘線,再繞高層,最后繞低層,提升中高層繞線的質(zhì)量。并且從PR結(jié)束后的設(shè)計中抽取RC Factor反標(biāo)回placement前的設(shè)計,確保繞線前后互連金屬計算偏差更小。最后執(zhí)行布線后的優(yōu)化。此外全程設(shè)計同時考慮優(yōu)化功耗,指導(dǎo)工具在優(yōu)化時序的同時不至于過分影響功耗。圖2為Innovus優(yōu)化后的流程。
2.2 16 nm工藝下緩沖器特點分析
研究和實踐均表明,插入緩沖器是物理設(shè)計有效的優(yōu)化互連延時的方法。為了指導(dǎo)工具使用更合理的緩沖器,本節(jié)對緩沖器類型進(jìn)行對比分析。
已知在物理設(shè)計過程中緩沖器的主要作用是用來優(yōu)化扇出、優(yōu)化時序、優(yōu)化邏輯結(jié)構(gòu)。
圖3所示為16 nm工藝下四種緩沖器在相同線負(fù)載條件下的延時統(tǒng)計,其中橫軸為單元驅(qū)動力倍數(shù),縱軸為單元延時,repeater1~4表示4種類緩沖器的編號。從圖中可以看出,線負(fù)載相同,驅(qū)動力倍數(shù)相同的條件下,這四類緩沖器的上下沿延時曲線整體上隨驅(qū)動力的增大呈現(xiàn)先快速減少的趨勢,當(dāng)驅(qū)動力倍數(shù)增大至D5后,單元延時趨于緩慢增加的穩(wěn)定趨勢。其中repeater1和repeater2的延時要小于repeater3和repeater4的延時,而repeater1和repeater2的延時比較接近;D1、D2小倍數(shù)的緩沖器驅(qū)動能力很弱。
圖4所示為不同種類緩沖器的單元上下沿延時偏差,可見repeater3和repeater4這兩種緩沖器正負(fù)沿均衡性較差,會影響傳輸信號的質(zhì)量。
圖5所示為從時序庫文件查表得到不同種類緩沖器的漏流功耗情況。
由圖5可知,這四類緩沖器都呈現(xiàn)驅(qū)動倍數(shù)越大漏流功耗越大的的關(guān)系,其中,repeater1和repeater2的曲線接近,repeater3和repeater4的曲線接近,相同驅(qū)動倍數(shù)的repeater3和repeater4的漏流功耗明顯低于repeater1和repeater2,且在驅(qū)動力倍數(shù)增大至D5后,漏流功耗隨驅(qū)動力倍數(shù)增加迅速增加。
結(jié)合圖3~圖5,對于這四類緩沖器進(jìn)行總結(jié)如下:
(1)由于repeater3和repeater4的正負(fù)沿偏差太大,對傳輸信號質(zhì)量有影響,因此這兩類單元要盡量少用或者不用。
(2)驅(qū)動力倍數(shù)為D1和D2的驅(qū)動能力較弱,所以在分割線段時,獲得的延時收益會很小,但其漏流功耗小,所以可用來優(yōu)化對時序要求不緊張的大扇出。
(3)驅(qū)動力倍數(shù)為D5附近的緩沖器具有較好的驅(qū)動能力,且漏流功耗不至于過大,所以用來優(yōu)化時序。對于驅(qū)動力D1和D2的緩沖器,由于D1緩沖器的漏流功耗稍大于D2,但其相同負(fù)載下的單元延時卻明顯大于D2,因此在優(yōu)化時序時,可用D2替換D1。
(4)驅(qū)動倍數(shù)為D12以上的緩沖器,由于其漏流功耗比較大,且本身單元延時較大,因此對于較小的線負(fù)載考慮不用,如果有長線,可考慮使用。
(5)后續(xù)手工調(diào)整的時候可考慮用repeater2替換repeater1進(jìn)行時序的優(yōu)化。
2.3 二次布局優(yōu)化方法
分析2.1節(jié)的Innovus優(yōu)化流程,發(fā)現(xiàn)如果placement階段結(jié)果太差,那么這個結(jié)果會隨著PR流程的進(jìn)行,一直影響后續(xù)步驟,增加PR工具的運算量,甚至設(shè)計無法收斂。如果placement標(biāo)準(zhǔn)單元放置不合理,會使邏輯走線距離太長,延時增加,并使時序惡化,而工具在做placement的時候是先做全局布局,然后再做詳細(xì)布局,全局布局看到的信息不完整,只是粗略地放置,勢必會有標(biāo)準(zhǔn)單元放置不合理。由此可見,如果能夠在placement的時候讓工具考慮到自身placement完成后的情況,這樣就可以減少placement本身的過設(shè)計,提升設(shè)計性能。所以,為了更好的物理實現(xiàn),placement的優(yōu)化非常重要。
已知工具在placement的時候會同時插入緩沖器進(jìn)行大扇出和長線的優(yōu)化,同時也會對邏輯結(jié)構(gòu)進(jìn)行重新組合。如果先將邏輯單元和寄存器位置放置好后,根據(jù)實際的寄存器和邏輯單元全局信息重新進(jìn)行設(shè)計優(yōu)化,使緩沖器的插入更合理化,減少因缺少全局信息造成的緩沖器冗余,從而改善布局結(jié)果。
本節(jié)提出一種針對placement后的設(shè)計進(jìn)行二次布局優(yōu)化,減少placement自身偏差的方法,圖6為二次優(yōu)化流程圖,方法如下:
(1)對placement設(shè)計中的緩沖器進(jìn)行統(tǒng)計和分類,明確緩沖器所起的作用。
(2)刪除原placement設(shè)計中的所有緩沖器。
(3)針對placement階段時序違反報告出現(xiàn)的緩沖器,根據(jù)其發(fā)揮的不同功能,進(jìn)行調(diào)整。若其是用來優(yōu)化長線,那么就需要調(diào)整兩個單元之間的位置;若是用來優(yōu)化扇出,可考慮增加前級驅(qū)動力;若是做邏輯結(jié)構(gòu)的優(yōu)化,可對邏輯進(jìn)行等價性修改。
(4)對刪除緩沖器的placement設(shè)計進(jìn)行二次優(yōu)化,在二次優(yōu)化時,除D5倍數(shù)外,禁止使用repeater3和repeater4。
(5)如果時序收斂,則二次布局優(yōu)化結(jié)束,如果時序不收斂,可針對時序報告中的緩沖器按照2.2節(jié)中給出的緩沖器使用規(guī)則進(jìn)行替換。
二次布局優(yōu)化時已經(jīng)考慮了更準(zhǔn)確的寄存器和邏輯單元物理位置,能得到更優(yōu)的placement階段結(jié)果,減少后續(xù)步驟的偏差。
3 物理實現(xiàn)與分析
本節(jié)以16 nm下一款2.5G高性能芯片設(shè)計為例,實施上節(jié)建立的物理設(shè)計流程和二次優(yōu)化方法。
3.1 二次布局優(yōu)化前后時序路徑的變化
本節(jié)中討論了二次布局優(yōu)化前后placement的結(jié)果。圖7所示為兩個寄存器reg1到reg2之間的一條建立時間(setup)時序路徑二次優(yōu)化前后在Innovus版圖中的情況,白色三角形表示路徑在該處有緩沖器插入。由圖可以看出,在二次優(yōu)化之前,這條路徑上緩沖器位置雜亂,從reg1出來一段存在多個緩沖器反復(fù)插入引起的迂回繞線,同時中間網(wǎng)絡(luò)線太長,明顯不合理。經(jīng)過二次布局優(yōu)化后路徑得到了更好的優(yōu)化,不僅沒有在reg1附近插入冗余的緩沖器,而且把長線中間加入了緩沖器做分割。優(yōu)化前該條數(shù)據(jù)路徑的延時為449 ps,優(yōu)化后該條數(shù)據(jù)路徑的延時為399 ps,與優(yōu)化前的路徑相比,延時減少50 ps。
3.2 二次布局優(yōu)化前后緩沖器使用的變化
對二次布局優(yōu)化前后placement設(shè)計中的緩沖器的使用情況進(jìn)行分析,如圖8、圖9所示,其中pre代表優(yōu)化前placement設(shè)計中對應(yīng)緩沖器的數(shù)量,post代表優(yōu)化后placement設(shè)計中對應(yīng)緩沖器的數(shù)量。從這兩幅圖中可以看出,二次布局優(yōu)化幾乎沒有使用repeater3和repeater4,對于repeater1的使用數(shù)量減少,repeater2的數(shù)量幾乎同等數(shù)量增加。驅(qū)動倍數(shù)為D1的緩沖器數(shù)量有減少,驅(qū)動倍數(shù)為D2的緩沖器幾乎同等數(shù)量的增加,由前面對緩沖器類型的分析中可以知道驅(qū)動倍數(shù)為D1的緩沖器的leakage稍大于驅(qū)動倍數(shù)為D2的,但其單元延時要明顯大于D2,所以在時序優(yōu)先的本設(shè)計中,D1的數(shù)量略有下降,D2的數(shù)量略有上升。
這符合2.2節(jié)中對緩沖器特性的分析,說明二次優(yōu)化后對于緩沖器的使用更加合理化。
3.3 二次布局優(yōu)化前后Placemet結(jié)果對比
工具在看到寄存器和邏輯單元的完整placement后,做二次布局優(yōu)化就會根據(jù)較為真實的placement模型做設(shè)計優(yōu)化,能夠得到更優(yōu)更合理選擇緩沖器的類型、驅(qū)動和位置的分布。表1所示為二次布局優(yōu)化前后placement的結(jié)果對比,表格中g(shù)atecount代表標(biāo)準(zhǔn)單元數(shù)量,repeater代表緩沖器數(shù)量,ULVT代表超低閾值電壓單元占所有標(biāo)準(zhǔn)單元的比例,setup代表寄存器到寄存器的建立時間時序違反值,density代表密度,total leakage power代表總的漏流功耗,total wire length代表placement結(jié)束后的預(yù)布線總線長,其中pre代表二次優(yōu)化前的數(shù)據(jù),post代表二次優(yōu)化后的數(shù)據(jù),△代表pre的數(shù)據(jù)與post數(shù)據(jù)差值百分比。從表1可以明顯看出經(jīng)過二次優(yōu)化后緩沖器的數(shù)量可以減少5.5%,漏流功耗降低11.3%,時序優(yōu)化87.5%,只造成不到1%的繞線增加和密度增長。
3.4 Route后的結(jié)果對比
良好的placement結(jié)果對最終繞線結(jié)束后的時序影響很大,表2所示為Route后兩個版本的結(jié)果對比。
通過二次布局優(yōu)化,最終在Innovus下看到時序優(yōu)化85.07%,功耗減少3.2%,線長減少0.37%,單元數(shù)量減少2.01%。
4 結(jié)論
在高性能芯片設(shè)計中,物理實現(xiàn)流程已經(jīng)相對成熟,但是隨著設(shè)計規(guī)模的增大,工藝的發(fā)展,物理設(shè)計難度增加。依據(jù)設(shè)計特點不斷完善和優(yōu)化物理實現(xiàn)流程是很重要的。本文在Innovus工具平臺下建立更適合于高性能芯片設(shè)計的物理實現(xiàn)方法,并在此基礎(chǔ)上引入二次布局優(yōu)化的方法,通過二次布局優(yōu)化方法在單元數(shù)量減少2.01%的基礎(chǔ)上,總線長減少0.37%,功耗降低3.2%,時序優(yōu)化85.07%,效果顯著。
參考文獻(xiàn)
[1] Cadence Innovus User Guide[EB/OL].[2019-05-11].http://www.cadence.com.
[2] 陳春章,艾霞,王國雄.數(shù)字集成電路物理設(shè)計[M].北京:科學(xué)出版社,2008.
作者信息:
邊少鮮1,David He1,欒曉琨1,蔣劍鋒1,翟飛雪1,蔡 準(zhǔn)2
(1.天津飛騰信息技術(shù)有限公司,湖南 長沙410000;2.上??请娮涌萍加邢薰?,上海201204)