Floorplan是數(shù)字后端設(shè)計實現(xiàn)中最關(guān)鍵的步驟之一,floorplan做的好,能夠加快時序的signoff以及physical方面DRC和LVS的signoff工作。如果floorplan做的不好,不僅僅是timing QOR會比較差啤斗,而且還會影響routabilty,從而影響芯片的面積赁咙。
想要加吾愛IC社區(qū)微信技術(shù)交流群的钮莲,請先加小編微信,邀請入群(各位老鐵彼水,文章末尾的福利別忘記了哦)崔拥。
1. 模塊的partition
block的形狀往往是負責(zé)top實現(xiàn)的工程師給出的。一個比較有經(jīng)驗的數(shù)字后端工程師凤覆,在切模塊形狀的時候链瓦,往往會考慮如下幾點:
是否能夠節(jié)省chip面積(比如IP邊邊角角,top用不到的區(qū)域盯桦,是否可以給block)
基于block 現(xiàn)有的boundary慈俯,block implementation 的風(fēng)險如何(需要對block的timing和physical有較深的認知)
pin assignment or IO placement(是否有feedthrough的需求等)
考慮top和block 接口的timing
圖1 Abutted and Non-Abutted floorplan
這里需要指出的是,top給你一個block的boundary后拥峦,你應(yīng)該盡快去做模塊的后端實現(xiàn)評估(Timing贴膘,Congestion,Area以及Hold fixing等情況)略号。假如評估后發(fā)現(xiàn)實現(xiàn)難度很大刑峡,或者搞不定,此時需要及時向負責(zé)人匯報玄柠,共同解決問題氛琢。雖然還是建議自己努力去解決問題,但是在實際項目中需要控制好時間節(jié)點随闪,總不能評估半個月后發(fā)現(xiàn)不行,繼續(xù)埋頭苦干半個月吧骚勘。
2. Voltage area creation
對于multi-voltage和multi power domain的設(shè)計铐伴,有的數(shù)字后端工程師喜歡create voltage area撮奏,創(chuàng)建Voltage domain。有的則喜歡在前期階段和前端溝通后当宴,對不同的Voltage domain進行切分畜吊,比如將Gated domain,不同的voltage domain單獨切出來户矢,后端實現(xiàn)單獨hardening玲献,這樣數(shù)字后端工程師實現(xiàn)時只需規(guī)劃好各個模塊的powerplan規(guī)劃即可(不需要run based UPF flow)。
對于一個flatten 的design梯浪,如果存在多個voltage domain捌年,此時往往需要通過創(chuàng)建voltage domain,后端實現(xiàn)時需要load 對應(yīng)的UPF挂洛,引導(dǎo)工具來做對應(yīng)的placement(UPF坑可能比較多哦)礼预。
常見的創(chuàng)建voltage domain的方法有兩種,如圖2和圖3所示虏劲。一種是各個voltage domain是abutted在一起的托酸,另外一種則是各個domin間是存在channel(Non-Abutted)。
圖2 Voltage area (Abutted)
圖3 Voltage area (Non Abutted)
3. Macro(含Memory,IP)和IO placement
在擺放Memory和IP前必須注意poly的方向柒巫。90nm及以下工藝都要求memory励堡,ip,io的poly orientation必須和standard cell的poly orientation保持一致(FAB提供的DRC runset會check這條rule)堡掏。
建議閱讀之前推送的文章应结,文中也涉及到Poly 方位的問題:
Final netlist release前,你應(yīng)該做好哪些工作?
圖4 ?Macro orientation示意圖
根據(jù) data flow 和design hierarchy 來擺放Macro布疼。如果有reference的floorplan摊趾,可以作為參考(僅僅是參考哦!)游两,比如ARM的CPU和GPU砾层,官方都會提供reference的。
圖5 Macro placement
那么贱案,如果你沒有前端給你的 data flow肛炮,也可以通過icc中create_plan_group來創(chuàng)建對應(yīng)的邏輯group,可以非常清楚地知道各個子模塊間(含Memory)的邏輯連接關(guān)系宝踪,如圖6所示侨糟。
圖6 通過查看邏輯連接關(guān)系規(guī)劃placement
?
?出pin方向講究多
考慮繞線資源和timing。memory出pin方向盡量靠core logic區(qū)域瘩燥。
memory之間是否需要留space
如果兩個memory之間的通道秕重,你想工具擺放cell,那么需要確保它們之間有對應(yīng)的power strap厉膀,否則會導(dǎo)致rail floating溶耘,如圖7所示二拐。如果需要留space,那留多少合適呢凳兵?留大了浪費面積百新,留小了則可能導(dǎo)致rail floating,繞線資源不夠等問題(這個問題留給大家思考庐扫,比較簡單)饭望。
圖7 memory之間space規(guī)劃
原則上Memory要擺放在boundary邊上。(為什么要擺放在四周形庭?什么時候可以擺放在core區(qū)域铅辞?)
IP的擺放需要考慮和core logic保持一定space,這個space需要留多少碘勉,vendor都會給出一個建議值的巷挥,遵守他們的rule就行。
4. 添加placement blockage和 routing blockage
memory之間需要加什么類型的blockage
blockage分為hard验靡,soft和partial 三種類型倍宾。具體功能這里不多說,大家都很清楚胜嗓。如果memory之間想預(yù)留點空間高职,擺放buffer,則可以添加soft blockage或者partial blockage中的buffer only類型辞州,如圖8所示怔锌。圖中SRAM之間的channel是否可以擺放Register? 如果不可以,為什么变过?
IP周圍需要加placement blockage和routing blockage
加placement blockage是防止core logic的standard cell 擺放太靠近IP埃元,從而對IP造成干擾。加routing blockage是阻止core logic在IP限定range內(nèi)走線媚狰。
IO需要和core logic區(qū)域保持一定的距離岛杀,防止LatchUp效應(yīng)。
圖8 添加blockage示意圖
圖9 LatchUp 示意圖
5. Adding power switch cell
對于一個要做power domain的模塊崭孤,我們需要添加power switch cell类嗤。通過這個power switch來控制該模塊中standard cell電源的開關(guān)。power switch 有兩種類型辨宠。一種是HEADER遗锣,通過關(guān)斷VDD來實現(xiàn)poweroff。另外一種是FOOTER嗤形,通過關(guān)斷VSS來實現(xiàn)poweroff精偿。power switch cell有一個Global power pin,一個Local power pin。
至于 power switch cell需要加多少合適还最,留給大家思考(主要考慮IR Drop)墓阀。
數(shù)字后端實現(xiàn)IR Drop分析之Redhawk分析流程
圖10 power switch added in required power domain
圖11 Power switch 類型
6. 添加一些特殊cell (Well Taps, EndCaps, Spare Cells, Metal ECO-able cells etc)
Well Tap cell
目前大部分的standard cell library提供的標準單元都是tap-less(substrate connections are not done)。因此我們在floorplan階段需要按照FAB的要求來添加Well-tap cell拓轻,將wells連接到VDD/VSS上。
EndCap Cells
endcap cell 一般是擺放在Macro周圍和每條row的首尾兩端经伙,主要目的是確保Macro周圍的環(huán)境和core logic的環(huán)境是一樣的扶叉。
Spare cells
spare cell 字面的意思就是備用的cell。這里cell一般是用來做ECO用的帕膜。至于這類cell在哪個階段insert枣氧,以何種方式insert,留給各位思考垮刹。另外還有一種是ECOCAP CELL达吞,這類cell也是用來做ECO的(他們何有區(qū)別,各自的優(yōu)缺點分別是什么荒典?)酪劫。
推薦閱讀:
數(shù)字后端設(shè)計實現(xiàn)后期碰到這些問題,如何做ECO?
7.Qualify floorplan
做完以上這些工作后寺董,如何去quailfy 一個floorplan覆糟,powerplan呢?
verify_pg_nets 檢查是否存在floating ?pins (floating shapes是否可以skip?)
run drc to check poly orientation
review floorplan of IP with vendor
原文網(wǎng)址:http://www.52-ic.com/473.html