大家都知道,F(xiàn)loorplan的目的是為了確定模塊大小,位置,形狀,以及擺放Macro,也就是我們通常見到的隨機存儲單元RAM、只讀存儲單元ROM,還有其他IP模塊等等。它與Place(布局)有著一些相似的地方。Floorplan的復(fù)雜之處在于模塊的形狀與大小可能是一個不確定的變量,需要權(quán)衡結(jié)果來反推這個變量。而其簡單之處在于,F(xiàn)loorplan相比于Place的超大規(guī)模標準單元而言,整體數(shù)據(jù)量并不是十分龐大。
對于Floorplan而言,人們更傾向于靠自己的經(jīng)驗去擺放Macro,擺放它們時不僅要考慮面積、互聯(lián)線長等傳統(tǒng)問題,還需要考慮Place階段,Macro的擺放對于Place的影響。因為Macro從本質(zhì)上講就是一個巨型的標準單元,很多Macro也存在于各個模塊內(nèi),在Floorplan階段并不能和模塊對等的考慮。對于這個問題,人們根據(jù)實際生活中的經(jīng)驗,提出一種邊緣擺放(edge place)的方法。
因為長久以來,人們在使用具有矩形或者多邊形結(jié)構(gòu)的平面石磚砌墻或者鋪地面的時候發(fā)現(xiàn)一個規(guī)律,要想更好的利用手頭的材料,更少的產(chǎn)生材料的冗余,需要先從平鋪區(qū)域的邊邊角角開始工作,并且首先將最大塊的材料鋪于區(qū)域中,再向中心擴展,并用一些小材料填補區(qū)域上的空隙。
邊緣擺放的好處主要來源于下面兩點:
a.從目前芯片設(shè)計的趨勢來看,芯片中除了計算單元,隨機存儲單元RAM、只讀存儲單元ROM等。這些存儲單元占據(jù)的芯片面積在有些設(shè)計中甚至超過百分之五十。對于存儲單元來說,存在數(shù)據(jù)端口和存儲端口,并且周圍需要有一些可測性電路。這使得這些單元引線眾多且功耗巨大。將它們貼邊放置,不僅有利于這些單元的供電,而且防止這些單元過多的引腳對其他單元的布線造成影響。
b.標準單元在布局時,按照Row所劃定的高度一排一排的擺放,這樣既有利于算法的設(shè)計,又有利于工業(yè)制造。并且在給各個器件供電時,可以使用橫向的電源線將處于同一高度的器件連接在一起統(tǒng)一供電。若是將標準單元都擺放在芯片區(qū)域的中心,而大的Macro擺放在四周,就可以使標準單元方便的只用一條電源線連接在一起,而不會被高度不統(tǒng)一的Macro打斷。對電源網(wǎng)格的設(shè)計提供了巨大便利。
而Macro的擺放原則基本如下,可以參照下面這張圖
a.模塊盡量擺放在靠近相應(yīng)輸入輸出口(I/O port)的位置。一般來說對于大型的Macro,他們不僅僅需要與芯片內(nèi)部的其他Macro或者標準單元進行數(shù)據(jù)交換,還需要與芯片外部的器件進行通信。比如,鎖相環(huán)單元需要接收外部晶振信號,存儲單元需要接收外部地址等。這種數(shù)據(jù)交換就是靠I/O port進行的,因此擺放在離相應(yīng)的數(shù)據(jù)端口附近,有利于減少互聯(lián)線長度,減少線上延遲,并節(jié)約布線資源。
b.大的Macro擺放盡量貼近版圖的邊緣和角落,這樣有利用空間的利用。如下圖所示:
c.Macro與Macro之間要留有一定空隙,給予布線資源。特別是在Macro的間隙有端口的時候更是如此,設(shè)計者可以通過相鄰Marco邊界上端口的多少來決定留有多大的間隙比較合適。在使用EDA軟件的Floorplan設(shè)計時,同樣可以給Macro加上halo來控制Macro與Macro之間的距離。Halo分為placement halo和routing halo,可以分別阻止在有Halo區(qū)域放置其他單元或者繞線,類似于blockage。但是Halo并不是獨立存在,而是依附于Macro周圍,可隨Macro移動的。所以它是專門用來控制Macro和其他單元之間距離的一種功能。
-
芯片
+關(guān)注
關(guān)注
456文章
50927瀏覽量
424597 -
ROM
+關(guān)注
關(guān)注
4文章
575瀏覽量
85824 -
存儲單元
+關(guān)注
關(guān)注
1文章
63瀏覽量
16166
原文標題:Build A City——Floorplan
文章出處:【微信號:IC_Physical_Design,微信公眾號:數(shù)字后端IC芯片設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論