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