基于TSMC 12nm ARM A55 upf flow后端設計實現訓練營將于6月中旬正式開班!小班教學!目前還有3個名額,招滿為止!有需要可以私信小編 ic-backend2018報名。吾愛IC社區所有訓練營課程均為直播課!
這個課程支持升級成雙核A55 Top后端訓練營!
T12 A55后端訓練營簡介:
主時鐘頻率:>= 2.5GHz tt1v85c +rcworst85c
設計規模:140萬instance
Power Domain數量:2個
實現方式:低功耗模塊級UPF Flatten實現 (UPF Flow)
項目成果:Timing Signoff Timing Clean,DRC,Antenna,LVS clean
涉及EDA工具:Innovus,Starrc,PrimeTime,Calibre
授課形式:直播課+每日問題解答+遠程協助。每周直播2次,每次近2小時。
課程費用:原價7900元(現價6900元)
今天給大家分享TSMC 12nm高頻遇到的幾個base layer drc violation及其解決方法。這些DRC Violation均來自訓練營學員做項目遇到的問題。
1)PP.S.1/NP.S.1
在傳統28nm工藝實現中,兩個tapcell或endcap 貼在一起并不會引起drc violation。但在這個12nm先進工藝中,tapcell是不允許出現abutment的情況。
由于PR工具Innovus中看不到base layer的層次,所以我們通過calibre查看gds可以看到如下所示的PP layer間距不滿足設計規則要求。
解決這類Calibre DRC Violation主要有兩種方法:
- 在PR Flow的floorplan階段添加tapcell添加avoidAbutment即可自動解決這類drc violation
addWellTap -cell TAPCELLBWP6T16P96CPD -cellInterval 48 -checkerBoard -check_channel -prefix WELLTAP -avoidAbutment
- 手工挪tapcell
這種適用于DRC Violation數量不多的場景,比如這個案例就可以使用這種方法。
2)VTL_N_W.1.1/VTL_P_W.1.1
在 TSMC12nm 實現中,當相同VT cell 之間間距小于 4 個 site 的時候,這個時候中間位置就只能加相同閾值的 stdcell 進去,比如下圖所說的,ULVT 和 ULVT 之間的間距如果小于 4 個 site 的寬度,也就是 4 個 poly pitch 間距,這個時候中間就必須插 ulvt,不能插其他閾值的 standard cell,否則就會有VT的間距問題。當間距大于 4 個 site 寬度,這個時候就沒有限制了。
這個在咱們12nm A72后端訓練營直播課也是反復強調過這點。我們需要在placement階段加入對應的cell edge spacing約束。
我們把Calibre DRC結果導入Innovus后,可以看到的確有兩顆RVT之間存在一個較小的LVT Filler Cell。
所以,這個DRC Violation出現的原因有兩個。第一個是工具能力有限,最后會殘留幾個filler vt插錯的情況,這個類似DRC無法完全修干凈一樣。第二個是placemnet階段沒有加好placeMode導致大規模這類drc violation的情況。
3)PO.S.22.6
這類DRC Violation是因為在floorplan階段沒有指定好一個合理的core2die值。core2die和memory 的 halo 寬度都需要設置為 0.048 的整數倍。這樣做之后,我們就可以從源頭上解決這類floorplan帶來的base layer drc。
4)PB.L.1
通過Calibre DRC Violation的描述,我們知道這是關于M2_P48和M3_P48 Layer length不夠的問題。
如果一開始看不太懂這類drc violation,我們可以查閱T12 design manual中對應drc violation的文字描述和圖形示意圖。
出現這類DRC Violation主要原因有兩個。
第一個是報P48 Layer沒有蓋好!
解決方案如下:
createSpecialDrcRegion -layer M2_P48 -extendOuterY 0.2 -extendOuterX 0.2 -insts [dbGet [dbGet -p2 top.insts.cell.baseClass block].name]
createSpecialDrcRegion -layer M3_P48 -extendOuterY 0.2 -extendOuterX 0.2 -insts [dbGet [dbGet -p2 top.insts.cell.baseClass block].name]
第二種是設計中存在未擺放的TCD 或memory!本案例就是學員在添加TCD Cell時存在一顆未擺放到core區域的TCD cell。