Chip123 科技應用創新平台

標題: ASSURA blackbox LVS问题请教 [打印本頁]

作者: dyandwanzi    時間: 2012-3-28 01:42 PM
標題: ASSURA blackbox LVS问题请教
本帖最後由 dyandwanzi 於 2012-3-28 01:48 PM 編輯 # N6 g7 g, z6 b2 y5 H0 E
0 E4 N! d( j' K3 I
基於無 gds 數據的標準單元 LVS ,所以只能將標準單元設置成 blackbox (我沒有用?blackboxcell,因為extract rule裡沒有找到 pinlayer的定義)。現在的問題是ASSURA在提標準單元版圖時,會多提出pin。比如CLKBUFX4這個單元schematic pin: Y A VDD VSS,layout pin: Y A VDD VSS avC9 avS10。不知道avC9 avS10從哪裡來(用的是arm sage-x的庫,應該單元內部都有襯底阱接觸,會不會是這個?)?那麼正確的基於無gds資料的標準單元ASSURA LVS是什麼呢?6 t$ ]: d* r$ }, i8 s" n

' @6 Z7 h0 I$ n" V. aLVS用的 GDS 數據來自 Encounter , streamout 的時候選擇將標準單元 pin 的名字導出並用相應的層號 map 。然後將此數據streamin到virtuoso(用默認設置),導入的版圖中標準單元內部只有 metal1層和相應pin的label。
8 p$ f8 G# A5 S/ j3 Z5 y% s& m# h* k. \6 [
多謝
作者: veteran    時間: 2012-4-26 02:47 PM
就如你所說,正統的Assura blackbox flow就是要在extract rule中加入pinlayer的定義,然後使用?blackboxcell去run LVS。
4 _, l/ O2 {+ g' i6 C7 |- Z: N" f! I' u& J& R
但改extract rule的過程,大約分成二步:
+ w; k) ?8 J; V' N' F1. Add pinLayer() description in layerDefs() part1 z+ c$ z6 [/ k& u
2. merge it with normal metal layer by using geomOr(). $ \9 ^! s$ v- ~0 c+ l( F+ f6 f
+ ~6 @8 P' Q) S; q" G
可參見以下sample:/ I$ m: _; H# c5 C  N6 F+ V
===========================================================
4 w, a  t, Z: _& a) j3 C6 zdrcExtractRules(
/ r& D* o, `. K; Q' _$ |3 C) clayerDefs( "df2"% o4 S8 j+ D1 ^: o# O4 _
nwell = layer( "nwell" )
3 q* X: s* c' Z1 Z3 O# k  ~, e5 [nimp = layer( "nimp" )$ D( O$ h0 x3 x
pimp = layer( "pimp" )
* O3 }& m' Z1 A" r( boxide = layer( "oxide" )
8 H8 {+ M$ ~+ G6 \: ]) f* f0 y" p  Gpres = layer( "pres" )) O* d6 l% H1 t6 \. U4 Y* G
poly = layer( "poly" )
% h) Q/ a" K! h8 I8 l, ycontact = layer( "contact" )
' H' d7 h- O) T3 M5 M$ d* Gmetal1 = layer( "metal1" )% J. j3 W1 ]2 A7 t' i: ^
via = layer( "via" )
4 B5 G) q8 v# M6 j; r- o( zmetal2 = layer( "metal2" )7 p8 T- g" l" i# ?3 D4 O9 [
polyPin = pinText( "poly" )- d. B( `3 r: C* w. |2 v
metal1Pin = pinText( "metal1" )
/ o& P( Z: W6 C+ N; M$ Wmetal2Pin = pinText( "metal2" )
$ q% O' f" E) i" n, Q6 Y4 ametal1BBpin = pinLayer( "metal1" ) ;reads in dfII black box# {  u# p: _3 t" v$ h
pins on metal1" p, m# Z6 k% _8 w
substrate = cellBoundary( "*" )- ~: c& D% N# o; W! R6 d: `1 e- `
);end layerDefs section
; D7 \3 \9 m0 B; L! y;Define p-substrate region
+ q7 J9 k4 O4 w. y% s;-------------------------
1 ~& w5 p  c" P. E  Ppsub = geomAndNot( substrate nwell )% G* C: i! q) q7 o
;Define device recognition shapes and device terminals7 ~1 c  U' D! h+ p
;----------------------------------------------------
! ?) K/ e; q/ w, O9 undiff = geomAnd( oxide nimp )8 ?6 F+ k- O) ]+ j% U
pdiff = geomAnd( oxide pimp ). c# `: `' T$ |' Q$ H5 I/ s2 z
ngate = geomAnd( ndiff poly )4 S* R, }& t0 u3 C7 v- G' W
nsd = geomAndNot( ndiff poly )' C5 j0 b8 \) m) i5 Q
pgate = geomAnd( pdiff poly )- I4 c- [( |* ^6 N! x8 r, @. k2 m
psd = geomAndNot( pdiff poly )
( [6 p5 \) R7 ypresBody = geomAndNot( pres via )
9 r4 n: A  H, G  r3 x+ t8 b. dpresTerm = geomAnd( pres via )$ N& u5 r" v, t$ `
;Merge black-box pins read in from pinLayer command with
0 K2 X" Z- b& V8 cconductive layer
8 Y: P. R/ f) {3 b5 t3 ];---------------------------------------------------------------
( ]8 ]+ v# M" P- w# Q: ?2 h--------
4 A, r6 J5 Q) p( P+ V, Z% Wmetal1 = geomOr( metal1 metal1BBpin )( Y5 |; D& r: W1 o( \5 |* p
;Define connectivity of layout
- ~0 d) }$ I9 S& P;-----------------------------5 g  B+ y6 n# p, n. P
geomConnect( via( via metal2 metal1 presTerm )
- f! Z7 n) F! [$ B; Mvia( contact metal1 poly nsd psd )& O, T; w5 s7 ^- ]" ^
label( polyPin poly )8 G: L4 p' t2 f6 F$ R
label( metal1Pin metal1 )2 d" }+ \, k% B+ H! [1 `! O' T
label( metal2Pin metal2 )
( J; x1 e5 m3 n; b$ z)8 U1 g, S" w9 a# s3 N" B
geomStamp( psub psd error )
# }  p( G% j4 dgeomStamp( nwell nsd error )
# r! {- o+ k4 Y' s: R....................
- @% ]5 F7 j" u4 W% n===========================================================' h/ W2 N! a- y# a1 E
- }) d: J  D4 n3 ^
試看看囉..4 s8 C+ W5 [* q6 Q' `: x
Veteran




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2