Chip123 科技應用創新平台

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

作者: dyandwanzi    時間: 2012-3-28 01:42 PM
標題: ASSURA blackbox LVS问题请教
本帖最後由 dyandwanzi 於 2012-3-28 01:48 PM 編輯 + x* ~$ n8 e. k

" |, {& s2 L# }基於無 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是什麼呢?* r  a& }) H+ e0 u, u  \: D' d

$ U9 ]: ?1 b$ ^4 n" [* v2 tLVS用的 GDS 數據來自 Encounter , streamout 的時候選擇將標準單元 pin 的名字導出並用相應的層號 map 。然後將此數據streamin到virtuoso(用默認設置),導入的版圖中標準單元內部只有 metal1層和相應pin的label。7 O7 e/ F* B# N

  v' \9 F* \+ v6 l9 p! g多謝
作者: veteran    時間: 2012-4-26 02:47 PM
就如你所說,正統的Assura blackbox flow就是要在extract rule中加入pinlayer的定義,然後使用?blackboxcell去run LVS。: q# p9 l& J4 @. O$ ~3 T

: L; z& ]6 x4 I) O- F但改extract rule的過程,大約分成二步:
5 H- D# m4 i+ T7 w: c9 M8 O2 E1. Add pinLayer() description in layerDefs() part8 s& [" F8 {+ G& L" L, @) o8 R
2. merge it with normal metal layer by using geomOr().
5 X- @7 y+ n$ A9 o
4 Z5 B1 E2 n+ p8 z可參見以下sample:
; e1 m- f( i* c* e5 n===========================================================9 v- G2 w2 ]) S. I) X) U
drcExtractRules(
' E- k/ c. \1 H+ r) ~- d: s8 FlayerDefs( "df2"" I/ z- n7 k* k- D! n. `
nwell = layer( "nwell" )- i1 l# Q, u; H+ j# y9 ^
nimp = layer( "nimp" )9 M' r- t8 }* S3 A1 i) W# ~
pimp = layer( "pimp" )
7 ]! t: U1 w% K! J2 a/ loxide = layer( "oxide" ); {. f6 ?' @6 N% c, {1 C
pres = layer( "pres" )1 l  g2 r1 u( V1 H9 D+ f, {" K! f
poly = layer( "poly" )& t, I9 F# U+ j. j9 _- M2 f1 u
contact = layer( "contact" )
! R/ c1 C2 W9 d/ f+ Y3 G1 Dmetal1 = layer( "metal1" )
6 A' C; W8 g1 Rvia = layer( "via" )8 B! O( T6 Y! K9 a  G
metal2 = layer( "metal2" )% a5 k% K+ f" W* d% H& B
polyPin = pinText( "poly" )
2 Z0 H+ F: s9 \+ K4 E4 K) Smetal1Pin = pinText( "metal1" )
3 z" }# j) q0 B! ?metal2Pin = pinText( "metal2" )1 v. v/ z) }  p8 s' I, q4 S
metal1BBpin = pinLayer( "metal1" ) ;reads in dfII black box
+ S/ j( H" u% Z& D  ?* Y6 E' }0 Mpins on metal1" {% _* \# |! s6 D7 }
substrate = cellBoundary( "*" )
* k6 s6 l2 n, u4 d6 s);end layerDefs section- h; K+ k2 A. J. O- |  X
;Define p-substrate region
! k- k9 [$ c7 r5 o! i+ A% o;-------------------------% {. ~1 d7 s4 I# Q$ ~2 P9 G
psub = geomAndNot( substrate nwell )
& T$ C5 @& o5 L1 R; ?9 c;Define device recognition shapes and device terminals
0 x; \$ ]9 J1 x$ I8 |9 z9 y9 ~;----------------------------------------------------
" n- n6 ?5 G% m; x2 ]* S9 Rndiff = geomAnd( oxide nimp )7 c( m2 @$ F+ M* w/ c6 Q
pdiff = geomAnd( oxide pimp )
5 P; V( T* h# {3 @& l8 tngate = geomAnd( ndiff poly )/ K) b9 B* s7 p
nsd = geomAndNot( ndiff poly ), P7 p' ^1 W2 i. [8 d9 Z- o
pgate = geomAnd( pdiff poly )% y+ d2 y( ]+ |; B5 J. c, x, ]
psd = geomAndNot( pdiff poly )  m9 ?0 k% w( I! ~) m, o  J
presBody = geomAndNot( pres via )
8 `- d7 t) h1 j  dpresTerm = geomAnd( pres via )
1 J0 ?, N0 k. ^3 z8 ~;Merge black-box pins read in from pinLayer command with
3 z* l8 @+ m4 Z! z0 Y" [0 O: uconductive layer
. d! Z7 X2 Q0 y;---------------------------------------------------------------
' p$ p( Q& o7 o--------
  W( \9 E" ?) d; K# Nmetal1 = geomOr( metal1 metal1BBpin )
0 x. C* p9 R9 i. t) z: n" ?; G0 t8 N: T;Define connectivity of layout4 A: O/ _7 |5 Z! E
;-----------------------------& u% D' K" |9 u5 a
geomConnect( via( via metal2 metal1 presTerm )
! Z) _! ?. r8 jvia( contact metal1 poly nsd psd )
% L/ [7 P4 y( ~) ilabel( polyPin poly )* P9 ]  c& j% j( d1 c7 Y3 F( ~" F
label( metal1Pin metal1 )  }5 a, A- D+ _( r. [: I) i. e
label( metal2Pin metal2 )
/ U; t0 q1 p& t) Y7 X- C3 d)
, |& k. P6 `4 T1 J2 |6 BgeomStamp( psub psd error )
& o8 K4 {6 {6 _$ V$ jgeomStamp( nwell nsd error )
) V& z  Z$ c  i' h& a9 ^1 R....................
# ]8 N6 f0 E0 u; o* Y  w===========================================================
7 X% R# y% ^* F& [1 Q9 x, i0 { 0 t: D  O0 S! t/ ^) `1 T7 h( E
試看看囉..
& g0 k2 I7 J5 Q9 {# L: nVeteran




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2