This section provides example input files that perform cell characterization of an inverter based on 3-micron MOSFET technology. The program finds the propagation delay and rise and fall times for the inverter for best, worst, and typical cases for different fanouts. This data then can be used as library data for digital-based simulators such as those found in the simulation of gate arrays and standard cells.
The example, taken from the demonstration file $installdir/demo/hspice/apps/cellchar.sp , demonstrates the use of the .MEASURE statement, the .DATA statement, and the AUTOSTOP option in the characterization of a CMOS inverter. Cell Characterization Circuit 1 and Cell Characterization Circuit 2 are identical except that their input signals are complementary. The circuit in Cell Characterization Circuit 1 calculates the rise time and the low-to-high propagation delay time. The circuit in Cell Characterization Circuit 2 calculates the fall time and the high-to-low propagation delay time. When only one circuit is used, CPU time increases because the analysis time increases to calculate both rise and fall times.
The subcircuit XOUTL or XOUTH represents the fanout of the cell (inverter). Star-Hspice modifies fanout by specifying different multipliers (m) in the subcircuit calls.
Star-Hspice also provides local and global temperature specifications. This example characterizes the cell at global temperature 27, while devices M1 and M2 are at temperature (27+DTEMP). The .DATA statement specifies the DTEMP value.
The example uses a transient parameterized sweep with the .DATA and .MEASURE statements to determine the timing of the inverter for best, typical and worst cases. The parameters varied include power supply, input rise and fall time, fanout, MOSFET temperature, n-channel and p-channel threshold, and both the drawn width and length of the MOSFET. Use the AUTOSTOP option to speed simulation time and work with the .MEASURE statement. Once the .MEASURE statement determines the parameter to be measured, the AUTOSTOP option terminates the transient sweep, even though it has not completely swept the transient sweep range specified.
The .MEASURE statement uses quoted string parameter variables to measure the rise and fall times, as well as the propagation delays. Rise time starts when the voltage at node 3 (the output of the inverter) is equal to 0.1 · VDD (that is, V(3) = 0.1VDD) and ends when the voltage at node 3 is equal to 0.9 · VDD (that is, V(3) = 0.9VDD).
For more accurate results, start the .MEASURE calculation after a time delay, a simulation cycle specifying delay time in the .MEASURE statement, or in the input pulse statement.
The following example features:
.PARAM TD=10N PW=50N TRR=5N TRF=5N VDD=5 LDEL=0 WDEL=0
+ NVT=0.8 PVT=-0.8 DTEMP=0 FANOUT=1
M1 OUT IN VDD VDD P L=3U W=15U DTEMP=DTEMP
M2 OUT IN 0 0 N L=3U W=8U DTEMP=DTEMP
XINVH 2 3 INV $--- INPUT START HIGH
XINVL 2030 INV $--- INPUT START LOW
VINH 2 0 PULSE(VDD,0,TD,TRR,TRF,PW,200NS)
VINL 20 0 PULSE(0,VDD,TD,TRR,TRF,PW,200NS)
* -- MEASURE STATEMENTS FOR RISE, FALL, AND PROPAGATION DELAYS
.MEAS RISETIME TRIG PAR('V(3) -0.1*VDD') VAL=0 RISE=1
+ TARG PAR('V(3) -0.9*VDD') VAL=0 RISE=1
.MEAS FALLTIME TRIG PAR('V(30)-0.9*VDD') VAL=0 FALL=1
+ TARG PAR('V(30)-0.1*VDD') VAL=0 FALL=1
.MEAS TPLH TRIG PAR('V(2) -0.5*VDD') VAL=0 FALL=1
+ TARG PAR('V(3) -0.5*VDD') VAL=0 RISE=1
.MEAS TPHL TRIG PAR('V(20)-0.5*VDD') VAL=0 RISE=1
+ TARG PAR('V(30)-0.5*VDD') VAL=0 FALL=1
.TRAN 1N 500N SWEEP DATA=DATNM
* -- DATA STATEMENT SPECIFICATION
VDD TRR TRF FANOUT DTEMP NVT PVT LDEL WDEL
5.0 2N 2N 2 0 0.8 -0.8 0 0 $ TYPICAL
5.5 1N 1N 1 -80 0.6 -0.6 -0.2U 0.2U $ BEST
4.5 3N 3N 10 100 1.0 -1.0 +0.2U -0.2U $ WORST
5.0 2N 2N 2 0 1.0 -0.6 0 0 $ STRONG P, WEAK N
5.0 2N 2N 2 0 0.6 -1.0 0 0 $ WEAK P, STRONG N
5.0 2N 2N 4 0 0.8 -0.8 0 0 $ FANOUT=4
5.0 2N 2N 8 0 0.8 -0.8 0 0 $ FANOUT=8
.MODEL N NMOS LEVEL=2 LDEL=LDEL WDEL=WDEL
+ VTO=NVT TOX =300 NSUB=1.34E16 UO=600
+ LD=0.4U WD =0.6U UCRIT=4.876E4 UEXP=.15
+ VMAX=10E4 NEFF=15 PHI=.71 PB=.7
+ RS=10 RD =10 GAMMA=0.897 LAMBDA=0.004
+ DELTA=2.31 NFS =6.1E11 CAPOP=4
+ CJ=3.77E-4 CJSW=1.9E-10 MJ=.42 MJSW=.128
.MODEL P PMOS LEVEL=2 LDEL=LDEL WDEL=WDEL
+ VTO=PVT TOX=300 NSUB=0.965E15 UO=250
+ LD=0.5U WD=0.65U UCRIT=4.65E4 UEXP=.25
+ VMAX=1E5 NEFF=10 PHI=.574 PB=.7
+ RS=15 RD=15 GAMMA=0.2 LAMBDA=.01
+ DELTA=2.486 NFS=5.2E11 CAPOP=4
+ CJ=1.75E-4 CJSW=2.3E-10 MJ=.42 MJSW=.128
A sample of measure statements is printed:
*** MEASURE STATEMENT RESULTS FROM THE FIRST ITERATION ($ TYPICAL)
RISETIME = 3.3551E-09 TARG= 1.5027E-08 TRIG= 1.1672E-08
FALLTIME = 2.8802E-09 TARG= 1.4583E-08 TRIG= 1.1702E-08
TPLH = 1.8537E-09 TARG= 1.2854E-08 TRIG= 1.1000E-08
TPHL = 1.8137E-09 TARG= 1.2814E-08 TRIG= 1.1000E-08
*** MEASURE STATEMENT RESULTS FROM THE LAST ITERATION ($ FANOUT=8)
RISETIME = 8.7909E-09 TARG= 2.0947E-08 TRIG= 1.2156E-08
FALLTIME = 7.6526E-09 TARG= 1.9810E-08 TRIG= 1.2157E-08
TPLH = 3.9922E-09 TARG= 1.4992E-08 TRIG= 1.1000E-08
TPHL = 3.7995E-09 TARG= 1.4800E-08 TRIG= 1.1000E-08
MEAN = 6.5425E-09 VARIAN = 4.3017E-17
SIGMA = 6.5588E-09 AVGDEV = 4.6096E-09
MEAN = 5.7100E-09 VARIAN = 3.4152E-17
SIGMA = 5.8440E-09 AVGDEV = 4.0983E-09
MEAN = 3.1559E-09 VARIAN = 8.2933E-18
SIGMA = 2.8798E-09 AVGDEV = 1.9913E-09
MEAN = 3.0382E-09 VARIAN = 7.3110E-18
SIGMA = 2.7039E-09 AVGDEV = 1.8651E-0