學習目标:
- 了解基本的 flooplan objects
- 了解 chip floorplan 和 block level floorplan之間的差别
- 了解floorplan的基本概念及相關技術
Floorplan Content
chip内容
- Create chip(最外面一圈,chip size)
- Pads & bumps placement(pad靠近chip邊界,bump涉及封裝。封裝形式有wire bound 和 flip chip倒裝。一般wire bond裡面有pad概念,flip chip有bump(焊點球)概念 )
- Macro & IP placement
- create power network(從頂層一層一層,橫縱交錯,供電)
- special cell placement(例如,welltap,endcap)
- std cell placement constraint(例如右上角紅色區域,假如此子產品與IO或SRAM有關聯,希望這個子產品在此位置而不是在其他位置,可以對此子產品定義限制,限制此子產品擺放在這裡)
Floorplan -- chip floorplan VS block floorplan
如果chip很大,把一塊塊子產品,切成block給block owner,block做完之後,抽取它們的lib和lef返給頂層,頂層在基于lib、lef,把子產品擺好,做頂層APR。
chip level
chip非常大,考慮到IO、PG網絡,各個block資料流,走線,各個block切給blockowner,以及pin的規劃等等。
block level
頂層金屬一般是top切下來。
例如,内部metal8、metal9工藝
m8、m9厚金屬做PG網絡,m8、m9為了保證Idrop強壯性、整個chip拼起來沒有DRC以及PG網絡完整性等,一般chip高層金屬m8、m9從頂層切下去。
m7、6、5,這些可以根據自己的block、子產品耗電情況自己規劃。
一般做規劃時,這些腳本也會有不同的owner做開發,可以做參考
block level floorplan 關注内容:
- macro placement(例如RAM的擺放)
- power planning
- special cell placement (endcap、welltap)
chip level size
- die area
- core area
chip和block level都有die area和core area。
die area和core area一般會留一個GPIO的高度
在老的工藝裡面,EDA工具還不太智能,一般會定義IO row 和 core row。
現在,IO row這裡也可以用core row,隻要在做完GPIO之後,邊界蓋一圈placement blockage。
placement blockage目的:阻止standard cell到GPIO區域
block level size
- die area
- core area
一般做項目的時候,block level的size:
- 從top切下來(可能是def或tcl的格式)(一般情況下)
- 人為定義一個size提前看一下什麼子產品可以做成多大,面積有多小,例如ARM CPU,可以先人為定義一個size,然後去規劃,保證CPU面積最小,性能最好。做一些提前的try。
- 極個别情況,block已經做好了,chip切的時候,就按照block原有的形狀去切
Two basic concepts related technology in floorplan
晶片28nm、12nm等工藝資訊都在technology file中可以找到。 technology file中定義了row的資訊。
row:
- Standard cell row(std cell擺放在row裡,不可以超過row)
- IO row(GPIO高度)
APR做PG網絡的時候,Vdd對着Vdd,Vss對着Vss,不會放反。打PG網絡的時候,會沿着row。
假如std cell是由m2觸pin的,m2上蓋着一層PG網絡,叫做power rail。
power rail給std cell供電,所有的std cell都會在這個row上面擺,APR根據這些row擺放。
std cell row不一定是單個row,可以是2row、3row,但一定是最小row的整數倍。出來IP,IP頂層會有power mesh和頂層mesh連接配接。
Track: metal track
lef對所有金屬最小位置和spacing是有要求的。所有的線最好放在tarck上。
不放在track上可以嗎?
可以,隻要保證線與線之間沒有DRC或者其他問題。
如果大量線不放在track位置,會怎麼樣?
會導緻route和route-opt的runtime變長。 一般情況下,基于track的優化情況比較多。
如果在route-opt期間,這兩個金屬線做的平行比較長,cover比較大,導緻SI、crosstalk,旁邊沒有金屬,有可能導緻一根線移到非track上,這種情況叫做wire spread,是可以允許的 。
floorplan階段需要做的事情
- Physical only cell placement;(endcap, welltap)
- IP/memory/IO/bump placement/assignment
- Power/ground(PG) stripe plan
block level的一個design
endcap和welltap,提前撒進來
PG網絡