03 Place
Floorplan完成之后,我們差不多完成PR工作的中的大部分手動工作,進(jìn)入純粹的run job時間。而影響place的行為主要由parameter決定。這里引入AG的Parameter系統(tǒng),在Parameter的體系里,所有影響工具表現(xiàn)的設(shè)定都可以找到,一般APR常用到的類型有以下幾種
各種parameter的調(diào)教基本也是一個PR工程師的修養(yǎng),好比雷神之錘在索爾手里是附魔武器,在美隊手里是物理武器,跑到斯塔克手里是不可舉起的武器一樣,parameter的不同最終影響物理芯片的性能、面積、功耗(PPA),而這部分通常的工具廠商會提供整套的不同工藝節(jié)點下的通用設(shè)定來應(yīng)付常規(guī)設(shè)計。AG也有對應(yīng)的設(shè)定在AGflow中,此處給自己挖個坑,AGflow的玩法在稍后開新篇介紹。
搞定guide/parameter的設(shè)置后,基本上直接一個超級命令就可以跑完,現(xiàn)在的PR工具都喜歡用組合命令來更貼合流程,AG叫place_optimize,基本就是先place_cell ,然后調(diào)用opt engine 針對當(dāng)前stage做優(yōu)化。單獨(dú)從流程方面來講,placement跟吃一碗拉面沒有任何區(qū)別,要不要蔥花(設(shè)定是否允許filler1)、要不要加面(power effort要high還是low)、牛肉要不要另加(特定時序路徑的path group是否設(shè)定slack adj)、加不加辣子(有沒有cell group,要不要加padding)。最后report_ta去產(chǎn)生當(dāng)前place階段需要的所有timing report做時序分析。
在檢查place結(jié)果時經(jīng)常會發(fā)出標(biāo)準(zhǔn)三聯(lián)問:為啥工具加了這么多buffer?這buffer的作用是啥?那個步驟給加進(jìn)去的?一個簡單清晰的命名規(guī)則會比較容易定位到出錯的位置。AG的opt engine內(nèi)的命名大致是這樣的:
除了命名規(guī)則,report_placement–check可以幫助檢查當(dāng)前place的數(shù)據(jù)是否存在DRC問題;place 菜單下的Display Density/Congestion Map可以快速看出是否有擁塞超標(biāo)的區(qū)域,用來判斷是否需要在place開始前設(shè)立density的guide;Floorplan菜單下的Browse module功能可以自動給各個模塊標(biāo)識不同的顏色,在place迭代中會比較容易根據(jù)時序報告總結(jié)出需要group在一起的模塊或邏輯。
Module browser
Density Map
完成了Place后,有了可接受的時序結(jié)果后,就可以進(jìn)入下一步,CTS了
04 CTS
CTS是clocktree synthesis的簡稱,時鐘樹綜合的工作就是規(guī)劃下圖CK1-4的點一直到兩個DFF的CP端的buffer tree的部分,這部分clock tree有fanout、transation、cap以及不同clock之間的skew要求。
這活看起來很簡單,不就是解決DRV分配Fanout,能做平的都做平么?為啥要單獨(dú)分出一步來做?理想很骨感,現(xiàn)實很豐滿。請看真實的clock tree結(jié)構(gòu)
看出最大的區(qū)別了么?沒錯!就是sink的規(guī)模,解釋原理的時候總是用寥寥數(shù)個sink的結(jié)構(gòu)講這講那,但實際case中的sink數(shù)量,經(jīng)常會成上萬,甚至上到十萬級別。此時人工分析或構(gòu)建clock tree已經(jīng)不可能,希望工具去Carry全場?,F(xiàn)今工具處理clock tree的方式一般都是基于skew group的方式去建立時鐘樹,優(yōu)點是綜合的規(guī)模是以skew group為單位,skew group可以同時作為一個單一時鐘的tree、一個多個clock的聯(lián)合tree、或者只是某個clock下的sub-tree的形式同時存在,這些靈活多變的組合可以有效優(yōu)化了balance的group的規(guī)模,獲得更好的QoR.
而傳統(tǒng)時鐘樹以clock為單位,會考慮所有sink的balance問題,必然會拉長時鐘樹,而且在處理多個時鐘穿過的路徑時,會因為頻率不同而做出妥協(xié),讓快的時鐘樹故意拉長來跟慢的時鐘作平衡。
時鐘樹的建立過程直接畫腦圖展示:
對于一個PR工程師來說總希望做出的時鐘樹latency-短、skew-小 級數(shù)-少,所以在完成后還要借助工具做一些CTS質(zhì)量的檢查
再次附上debug之寶,CTS階段的naming rule
Tree做完之后,基本又是調(diào)用opt engine去做各類需要的優(yōu)化,AG里的post_cts_opt默認(rèn)會帶上setup和hold一起去修正,如有特別需求的,例如不在postcts修hold,請在opt的parameter里關(guān)掉hold opt 相關(guān)的參數(shù)。查詢parameter有個比較方便的方式,利用list_app_var opt *hold*可以打印出所有帶有hold關(guān)鍵字的opt相關(guān)的parameter。下一回就要進(jìn)入最后的繞線階段了。
原文標(biāo)題:用國產(chǎn)EDA工具做芯片是什么樣的體驗
文章出處:【微信公眾號:鴻芯微納】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
芯片
+關(guān)注
關(guān)注
452文章
49938瀏覽量
419605 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6754瀏覽量
88613 -
DRC
+關(guān)注
關(guān)注
2文章
147瀏覽量
36054
原文標(biāo)題:用國產(chǎn)EDA工具做芯片是什么樣的體驗
文章出處:【微信號:giga-da,微信公眾號:鴻芯微納】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論