% x4 b% ?3 ~- {7 m2 r9 |7 ^******************************************************************** + T2 ~" D. V1 h3 Q' i, ?*StatEye example circuit & F2 r7 H. \- }9 Z5 S7 |3 Z.param _BW=0.16n + ?8 k1 W, ^# E6 d" m.param trf='_BW*0.01' 9 E+ U! h! o4 D.param opfreq='1.0/_BW'% W8 q) A3 }, N4 k
*define ports and stimulus ) D! l$ @5 x* M, N* ?# S8 @8 h8 AP1 data 0 port=1 LFSR (1 0 0 'trf' 'trf' 'opfreq' 1 [7,4,1]) 0 o7 c; B! f3 i$ b/ MP2 pad1 pad0 0 port=2 5 k7 B2 `& D. I; o0 t9 C/ ~/ L0 i( S5 n) D
2 y6 U F: b1 K% t, Q5 J8 Z
* q b$ L+ p& P5 u* M+ i! A
4 u. L& h6 F8 t, G: f
VAVDD AVDD 0 dc=pwr.vdd 7 G a9 @) g1 Q& ? Y* ^. BVAGND AGND 0 dc=pwr.gnd - h0 w+ K! c; X: u + y8 {$ Q6 j( b' f% N& a.param pwr.vdd = 0.98 # V4 l% T f5 T& |5 b.param pwr.gnd = 0.00 . S0 F3 Q8 u/ \% V- E7 h/ s7 s `3 m9 g: a4 S8 H, X. T. ]
# A: J9 o: M I [+ kRsub SUBSTRATE 0 100; R2 m4 v. Y$ W* ~, V/ G
Rvss VSS AGND 100u# a$ t R& f, t4 b! W
Ragnd AGND 0 100u% i. y1 R+ q+ @' h- B' D. D7 \% a4 d
1 H8 @; P& O; _+ Z8 i" F' ~* Set up loads0 m+ d) t1 `+ e& V
& @+ ~/ T: G4 M' i2 g4 [; o/ BRL1 pad1 vcm 50.00 b+ a# S6 a; K9 q
RL0 pad0 vcm 50.0 4 H2 R5 H" |0 ^7 o6 W' F* v . @$ }1 b4 A8 y& z, x* Add subcircuit with parameter values 0 E ]# k! W( M, v- t" _: U5 L( A9 U$ v: h4 C- D
XDUT AGND AVDD pad1 pad0 data 'sbTDrOut07_hmodel_01'; {+ Y! T0 L. P( o. [2 q
+ sr1=0 eq3=0 eq2=0 eq1=0 Clock=Clock Wait=Wait , t9 [! c! x1 B j' t$ f$ ^ A# N+ g# _2 w5 v% k
* Set Clock parameter 3 h# x4 u0 O C0 }$ T( z.param Clock=6.250G9 c) w! A4 m( H
! x: P; y# j, Y1 r
* Set Wait parameter 6 |* H- |8 `3 z; ^7 z! W2 v8 X.param Wait=0n" q" t2 }5 O* K0 C) u6 C( y" [" M' R
+ k: d% h4 C/ q# g5 V' X# e
*.TRAN 100p 50n - Y: m. t5 }* T . l% P% U/ l, R" u; i7 V6 e- \) @* NOTE the 100ps timestep will cause interpolation inaccuracy, but does$ y) N1 Y4 V2 f- @" ^
* give a short simulation time. Serious work should be done at <10ps. ; g' I8 w; Z6 |/ ^5 v' ]2 c6 B/ n ) I! g: Y6 J: Z' b3 }# ]*.probe 7 V0 h- S3 x$ D0 K7 x# H*+ v(agnd) 0 r4 m. n# l v*+ v(avdd) ; `) X6 X" N, u*+ v(data)1 n* y# M' o) G% [ c
*+ v(pad0) + G- i& O6 E7 m I2 h$ L*+ v(pad1) ( r: K, S: j+ U; }' n: A8 P*+ v(vcm) 3 L8 Y. h' ^- p*+ i(vavdd) m! @& X: C" z3 L4 F% ?*+ i(vagnd) 9 G9 I8 N8 @# R0 W; [, t * H# b! c+ K; D, k" y% D0 S; Q*print and probe' E \$ X/ e% B- S
*eye and ber 0 Y! @* e6 u9 Y q8 E( H" P. Y7 \6 Z8 ]) B" d8 P
.probe stateye eye(2) ber(2) eyeBW(2)) |$ J( ?- j2 h$ M
.print stateye eye(2) ber(2) eyeBW(2) 4 e- q) c) X) y& O" M a$ n1 p( ?$ q5 u, G3 B# p) @7 l a; W3 V$ M% h
*bathtub curve% X; H+ r* ?2 D7 u! i) H* s9 q. [
.probe stateye bathtubT(2,1e-11) bathtubV(2,0.0)# _/ S& C( V5 `& [
.print stateye bathtubT(2,1e-11) bathtubV(2,0.0) ( c8 ?5 n! X7 ?8 q& M" Q/ A$ T $ L' d* U. x8 y/ j# A*eye size 8 W2 F6 Y) |, T.probe stateye eyeV(2,0.0) eyeT(2,1.0e-11) 9 Y+ A! C6 M' a7 {$ V2 t.print stateye eyeV(2,0.0) eyeT(2,1.0e-11) 0 A9 h! e( G3 P2 j ! j- b! q5 T9 W/ v*measurements 0 A% i5 _8 g0 p# R
.measure stateye veye1 Veye 2 time=1e-11 tol=1e-10) v! P, r/ C+ m; q0 I
.measure stateye heye1 Heye 2 volt=0.0 tol=1e-10+ D1 P7 s) d" g3 I
.measure stateye worst1 WorstBits 2 time=10p3 G' P8 t9 Z% x& |
2 e( T3 t, v; p0 v5 T
***********************************************************************6 j$ s5 a0 ~( v+ ?' A7 v1 i% k
0 |, I. K: u! q. ?.end" |6 j4 ]4 f, U: g5 m* q2 ?9 z