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