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. a
LVS用的 GDS 數據來自 Encounter , streamout 的時候選擇將標準單元 pin 的名字導出並用相應的層號 map 。然後將此數據streamin到virtuoso(用默認設置),導入的版圖中標準單元內部只有 metal1層和相應pin的label。
8 p$ f8 G# A5 S/ j3 Z
5 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' i
6 C7 |- Z: N" f! I' u& J& R
但改extract rule的過程,大約分成二步:
+ w; k) ?8 J; V' N' F
1. Add pinLayer() description in layerDefs() part
1 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 z
drcExtractRules(
/ r& D* o, `. K; Q' _$ |3 C) c
layerDefs( "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( b
oxide = layer( "oxide" )
8 H8 {+ M$ ~+ G6 \: ]) f* f0 y" p G
pres = layer( "pres" )
) O* d6 l% H1 t6 \. U4 Y* G
poly = layer( "poly" )
% h) Q/ a" K! h8 I8 l, y
contact = layer( "contact" )
' H' d7 h- O) T3 M5 M$ d* G
metal1 = layer( "metal1" )
% J. j3 W1 ]2 A7 t' i: ^
via = layer( "via" )
4 B5 G) q8 v# M6 j; r- o( z
metal2 = 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$ W
metal2Pin = pinText( "metal2" )
$ q% O' f" E) i" n, Q6 Y4 a
metal1BBpin = 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 P
psub = geomAndNot( substrate nwell )
% G* C: i! q) q7 o
;Define device recognition shapes and device terminals
7 ~1 c U' D! h+ p
;----------------------------------------------------
! ?) K/ e; q/ w, O9 u
ndiff = 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 y
presBody = geomAndNot( pres via )
9 r4 n: A H, G r3 x+ t8 b. d
presTerm = geomAnd( pres via )
$ N& u5 r" v, t$ `
;Merge black-box pins read in from pinLayer command with
0 K2 X" Z- b& V8 c
conductive 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% W
metal1 = 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; M
via( 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 d
geomStamp( 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