head 1.2;
access;
symbols;
locks
ryu:1.2; strict;
comment @# @;
1.2
date 99.01.21.12.37.18; author ryu; state Exp;
branches;
next 1.1;
1.1
date 99.01.21.10.18.10; author ryu; state Exp;
branches;
next ;
desc
@* $Id$
@
1.2
log
@wip
@
text
@* $Id: setup.sp,v 1.1 1999/01/21 10:18:10 ryu Exp ryu $
* DO NOT EDIT. This file generated automagically.
* Created: Thu Jan 21 0:08:22 1999
* User: ryu
* Char: D-Flop Setup Time Characterization
* Data: "d"
* Clock: "clk"
* Q: "q"
* C: "mout"
* Trans: "lh"
*--- SETUP ---------------------------------------------------
.include '/home/ryu/src/autochar/autochar-1.5/tech/tsmc35/include/ttlh.sp'
.include 'dff_2x.sp'
.include /home/ryu/src/autochar/autochar-1.5/tech/tsmc35/lib/autochar.sp
.options
+ format
*.options
*+ optlst = 1
*+ post = 1
*.model optmod opt method=bisection
*+ relin=0.001
*+ relout=0.001
*.param setup = optsetup('0', '0', '0.5ns')
.param setup = '1.0ns'
.param slewrate = '4.00002e-11'
.param slew_start = '0.1'
.param slew_end = '0.9'
*--- INPUTS --------------------------------------------------
vclk vclk 0 pulse (
+ '0'
+ 'vhigh'
+ '1ns+trise/2'
+ '0'
+ '0'
+ 'pwidth+trise/2+tfall/2'
+ 'period')
vd vd 0 pulse (
+ '0'
+ 'vhigh'
+ '1ns+trise+2*pwidth+tfall-setup'
+ 'trise'
+ 'tfall'
+ '3*period'
+ '4*period')
*--- TEST CIRCUIT --------------------------------------------
xdbuf vd d ebuffer
xclkbuf vclk clk slewbuffer
xflop
+ q $ q:o
+ d $ d:i
+ clk $ clk:i
+ diff_1 $ clk_n:i
+ dff_2x
e1 diff_1 0 clk vdd -1
*--- LOADS ---------------------------------------------------
c0 q 0 100ff
*--- MEASURE -------------------------------------------------
.option autostop
* Measure setup time:
.measure tran setup param='setup'
.measure tran setup_lh delay v(d) val='vhigh/2' cross=1
+ targ=v(clk) val='vhigh/2' rise=2
* Measure clock slew rate:
.measure tran clkslew delay v(clk) val='0+0.2*vhigh' rise=2
+ targ=v(clk) val='0+0.8*vhigh' rise=2
* Measure internal criterion node:
.measure tran vcrit find v(xflop.mout)
+ when v(clk)='0.8*vhigh' rise=2
.measure tran optpass param='(vhigh-vcrit)/vhigh'
*+ goal='0.8'
* Measure final clock->q time:
.measure tran clk_q delay v(clk) val='vhigh/2' rise=2
+ targ=v(q) val='vhigh/2' rise=1
*--- TRANSIENT -----------------------------------------------
*.trans 5ps '2*period' sweep
*+ optimize=optsetup
*+ results=optpass
*+ model=optmod
.trans 5ps '2*period'
*--- SCRIPT --------------------------------------------------
.control
# find fail
modif loop=20 stop optpass le 0.8 setup -= (0.5ns)0.1ns prtbl
set fail = $setup
# find pass
modif loop=20 stop 0.8 le optpass setup += (0.5ns)0.1ns prtbl
set pass = $setup
echo Window is $pass, $fail
.endc
*--- ALTER ---------------------------------------------------
* Alter slewrate:
*.alter
*.param slewrate = '7.99998e-11'
*.alter
*.param slewrate = '1.2e-10'
*.alter
*.param slewrate = '1.600002e-10'
*.alter
*.param slewrate = '3.19998e-10'
.end
@
1.1
log
@entered into RCS
@
text
@d1 1
a1 1
* $Id$
d32 2
a33 2
.param setup = '1.0ns'
.param slewrate = '4.00002e-11'
d35 1
a35 1
.param slew_end = '0.9'
d72 1
d96 18
@
# |
Change |
User |
Description |
Committed |
|
#1
|
6489 |
robert_yu |
Saved here. |
|
|