Blockage是PR工具中的一個重要概念,我今天就簡單說一下它是什么,以及它的分類、作用,再說一下類似blockage的一些概念。
Blockage意為阻塞物,在這里就是指防止工具觸碰的區(qū)域。總的來說blockage可以分為兩類:placement blockage和routing blockage。Placement blockage的區(qū)域禁止tool擺放cell進來,routing blockage的區(qū)域禁止繞線。
需要注意routing blockage是要分層的,包括via層也可以上routing blockage。而placement blockage是和cell擺放相關(guān),就不會分層。
Placement blockage可以簡寫為pblk,routing blockage可以簡寫為rblk。
對于pblk來說,按照禁止tool擺放程度的不同,還有多種分類,一般常用的有三種:hard,soft and partial。Hard pblk區(qū)域是tool不論在任何階段都不能放cell進來,最終出來的database一定是沒有任何cell在hard pblk里的,除非user手動加。
Soft pblk指的是tool擺cell的時候不能擺進來,但是之后的legalization和optimization就可以放進來了。
Partial pblk就是tool可以擺進來一定數(shù)量的cell,其面積不能超過partial pblk所規(guī)定的百分比。對于rblk分類好像就沒這么多了,也可能是我沒接觸過。
Blockage的概念很簡單,但確實能幫我們方便地指導tool的工作。比如在很多時候,我們不希望在某些區(qū)域出現(xiàn)std cell,我們就會上一些hard pblk。
最常見的區(qū)域有macro的周圍,macro與macro之間的narrow channel,以及macro與core邊界圍起來的區(qū)域,總之,一切可能發(fā)生congestion或者IR不好的區(qū)域都可以蓋pblk。
一般我們在用macro的時候都會拿到user guide之類的文檔,文檔里就會標明建議要加的pblk、rblk。對rblk,最常見的應用也是蓋住macro本身的繞線層(或者說出pin層以下的所有層),以防工具在這些區(qū)域繞線,然后merge GDS之后產(chǎn)生DRC。
還有一種很像placement blockage的概念,叫做halo,或者keep out margin。它不是加在floorplan上的,而是加在特定instance上的。
比如我給一個macro加了一個寬度1um的halo,它的作用其實也等效于加寬度1um的pblk。但是halo是加載instance上的,意思是如果我們移動了instance,其halo也會跟著一起移動,永遠保證它周圍1um范圍不會有cell。
而pblk不一樣,instance動的話和pblk沒關(guān)系。Halo能幫我們方便地處理某些情況,比如我們不希望某一類cell靠在一起,就可以給這類cell左右兩邊加halo。
另外還有一種,在讀取cell或者macro的lef的時候會出現(xiàn)OBS,它是obstruct的簡寫,其作用就類似于routing blockage。
如果這個macro的出pin層就希望直接連via上去,不希望pin層有任何走線,這個macro在設計的時候可能就會把pin之外的所有區(qū)域蓋上OBS,這樣tool在繞線的時候就不會繞到OBS里,所以tool就一定會先打一個via在pin上,再連出來。
如果繞線時發(fā)生了DRC,經(jīng)常要檢查一下是不是OBS在搗亂。
-
DRC
+關(guān)注
關(guān)注
2文章
150瀏覽量
36355 -
OBS
+關(guān)注
關(guān)注
0文章
46瀏覽量
18261 -
Via
+關(guān)注
關(guān)注
0文章
44瀏覽量
19297 -
PIN
+關(guān)注
關(guān)注
1文章
305瀏覽量
24437 -
GDS
+關(guān)注
關(guān)注
0文章
28瀏覽量
6276
發(fā)布評論請先 登錄
相關(guān)推薦
評論