IBIS TO SPICE DISCUSSION

From: Bob Ross <bob@icx.com>
Date: Mon Oct 27 1997 - 19:14:00 PST

To All:

To help in doing the IBIS to Spice transformation, I am sharing with you
a PROTOTYPE configuration and set of Spice decks which I used to examine
some waveform processing algorithms. This was never completed into a
self-contained Spice implementation of IBIS. However, the decomposed
form can be used to illustrate the algorithm and examine how it performs.

The figure below illustrates the assumed Spice (and IBIS) topology.
The PULLUP, PULLDOWN, POWER_CLAMP and GND_CLAMP tables are all made
relative to their respective reference voltage nodes PWR, GRD, PWRC,
and GNDC. These tables along with the RISING AND FALLING WAVEFORMS
for given DUT and FIXTURE conditions can all be representated as
subcircuits using piecewise linear voltage controlled current sources
(for the IV tables) and properly scaled voltage controlled voltage
sources (for the VT tables).

The algorithm theory is straight-forward. From the IBIS model
information including its waveform table, it is possible to determine
from circuit theory both the voltage at the DIE and the corresponding
currents flowing through R_DUT and C_COMP. It is also possible to
determine the currents supplied by the four IV tables which are
summed up at the DIE. The PULLDOWN and PULLUP multipliers Kd(t) and
Ku(t) transition between 1 and 0 (0 and 1) for the RISING WAVEFORM,
and visa-versa for the FALLING WAVEFORM. So one algorithm is to
derive the multiplier tables that will produce the original WAVEFORM
table

A one-waveform implementation would (arbitrarily) ASSUME some relationship
between Ku(t) and Kd(t) such as Ku(t) = 1 - Kd(t). If the multipliers
themselves are ramp tables, the output is not necessarily a ramp for
a given test load.

This prototype illustrates an approach in which some form of internal
adjustment or scaling is done for processing waveform based IBIS models.
The processing of any IBIS model is just a mathematical process where
the response to any load is just the mathematical blending of specified
responses based on the assumed topology. There are other things to be
learned such as numerical sensitivities to the DUT parameters, resolution
of the IV tables, etc. Like Spice transistor models with the .option
controls for convergence, there is numerical sensitivity to some data that
deviates from ideal theorical processing which assumes that the data
and their derivatives are continuous.

         PWR PWRC
          o o
          | |
          | POWER_ |
  PULLUP | CLAMP |
      |---o---| |---o---|
      | Iu(V) | | |
      | | |Ipc(V) | WAVEFORM
      | Ku(t) | | | DIE PIN TABLE
      |---o---| |---o---| | | |
          | | | | |
          | | V v R_DUT L_DUT v L_FIXTURE v
          o-------------o--------o--/\/\/\--UUUUU--o---UUUUU--o-----o
          | | | R_PKG L_PKG | | |
          | | | | | |
      |---o---| |---o---| | | | |
      | Id(V) | | | | C_COMP C_DUT | C_PKG | \
      | | |Igc(V) | --- --- --- /
      | Kd(t) | | | --- --- --- \
      |---o---| |---o---| | | C_ | / R_
PULLDOWN | GND_ | | | FIXTURE | | FIXTURE
          | CLAMP | | | | |
          | | | | | |
          o o o o o o
         GRD GNDC GND GND GND V_FIXTURE

Below are 5 files:

   sim2.sp: The IBIS processing algorithm which loads ibismod.lib
             and ibiscal.lib. It uses the HSPICE equation format for
             clarity rather than a more general polynomial multiply.
             The model itself is driven by the the VPULSE control
             to produce the actual rising and falling responses in a
             manner that sets the pulse width and period. A more complicated
             stimulus could be used. One implementation constraint here
             is that the pulse widths must be greater than the Waveform
             table time lengths. Also the actual simulation load including
             transmission line loads can be added here for testing.

   ibismod.lib: The IBIS model parmeters including supply voltages,
             package values, IV tables and VT tables are inserted into
             this file for each IBIS model by cut-and-paste. Zero-valued
             parameters are given neglibable values rather than "0" to
             prevent some Spice error messages.

   ibiscal.lib: The multiplying tables are inserted here for the rising
             and falling responses by cut-and-paste.

   ext2r.sp: A two-waveform extraction circuit for generation the KUR(t)
             and KDR(t) tables. The files that are printed are cut-and-
             pasted in ibiscal.lib.

   ext2f.sp: A two-waveform extraction circuit for generating the KUF(t)
             and KDF(t) tables.

A simple example originally given by DC Sessions is embedded into the
example. As originally proposed, the KU(t) and KD(t) tables are piecewise
linear. However, if the response itself were piecewise linear, then different
KU(t) and KD(t) tables could be derived to match the reponse in the
ibismod.lib file. DC's example is interesting because it illustrates that
the IBIS architecture can work with the pullup and pulldown stage turn-on
control and turn-off control phased differently:

"As long ago promised, here's a talking case for BIRD42.3
For simplicity, I've restricted the case to a very simple
falling-edge behavioral model. The driver in question
is a 50-ohm switched resistor, with the following
time/conductance tables. The pulldown driver is common,
but there are two different pullup responses: All
listed conductances are piecewise linear.

  Time | Pulldown | Pullup #1 | Pullup #2 |
        | Conductance | Conductance | Conductance |
--------+-------------+-------------+-------------+
   0 ps | 0 mS | 20 mS | 20 mS |
 500 ps | 0 mS | 20 mS | 20 mS |
1000 ps | 0 mS | 10 mS | 20 mS |
1500 ps | 0 mS | 0 mS | 0 mS |
2000 ps | 10 mS | 0 mS | 0 mS |
2500 ps | 20 mS | 0 mS | 0 mS |
3000 ps | 20 mS | 0 mS | 0 mS |

As is typical for real-world drivers, these are
break-before-make."

Below, Pullup #1 is illustrated as a Falling edge, and Pullup #2
is illustrated as a rising edge (by taking the mirror image conditions).
The KU and KD multipliers are used to shape the conductance from the
50 ohms (20 mS) given in the PULLUP and PULLDOWN tables. Some linear
ramp tables are provided in the RISING and FALLING WAVEFORM tables
of ibismod.lib.

Bob Ross
Interconnectix

sim2.ps

* TWO WAVEFORM SIMULATION
*
.INCLUDE IBISCAL.LIB $................. VVVVVVVV
.INCLUDE IBISMOD.LIB $......... VVVVVVVV
*
* SUPPLIES
XPWR VCC GRD PWRC GNDC SUPPLIES
*
* INPUT CONTROL
GON ON GRD STEP GRD -1
VON ON GRD 0
*
XRAMP STEP GRD RMPR RMPF RAMPS
XKUR RMPR GRD NKUR KUR
VKUR NKUR GRD 0
XKUF RMPF GRD NKUF KUF
VKUF NKUF GRD 0
*
XKDR RMPR GRD NKDR KDR
VKDR NKDR GRD 0
XKDF RMPF GRD NKDF KDF
VKDF NKDF GRD 0
*
* HIGH SIDE
XUP OUT1 VCC NU1 PULLUP
VUP NU1 VCC 0
GUP OUT1 VCC CUR='-I(VUP)*(I(VKUR)*I(VON)+I(VKUF)*(1-I(VON)))'
XPC OUT1 VCC POWER_CLAMP
*
* LOW SIDE
XDN OUT1 GRD ND1 PULLDOWN
VDN ND1 GRD 0
GDN OUT1 GRD CUR='-I(VDN)*(I(VKDR)*I(VON)+I(VKDF)*(1-I(VON)))'
XGC OUT1 GNDC GND_CLAMP
*
* C_COMP AND DUT PACKAGE
XCAP OUT1 GRD C_COMP
XPKG OUT1 GRD PIN1 PACKAGE
*

* LOAD

** Test Against Original Loads.
XLOAD1 PIN1 GRD LOADR1
*XLOAD2 PIN1 GRD LOADR2
*XLOAD3 PIN1 GRD LOADF1
*XLOAD4 PIN1 GRD LOADF2
RPIN1 PIN1 GRD 1E9

** Some Actual Sample Loads

*RLOAD PIN1 VOL 50
*VOL VOL GRD 2.5
*COL PIN1 GRD 10p

*TLOAD PIN1 GRD PIN9 GRD Z0=50 TD=1N
*R9 PIN9 GND 50G

** Voltage width and period control
VPULSE STEP GRD 0 PULSE (1 0 0P 1P 1P 5N 10N)
.TRAN 0.2N 10N 0 0.02n
.OPTION POST
.END

ibismod.lib
*==========================================================================
* CMOS1 IBIS FORMATTED TABLE AND WAVEFORM SUBCIRCUITS
*==========================================================================

*==========================================================================
* IBIS FORMATTED TABLE AND WAVEFORM SUBCIRCUITS
*==========================================================================
*
* LIBRARY OF SUBCIRCUITS
*
* IBISMOD.LIB Copy of IBIS Data fromatted into a Subcircuit
* Data Library for Inclusion.
* IBISCAL.LIB Copy of Simulation Tables and Data for Calculations
* for Inclusion.
*
* SUBCIRCUIT CONTENTS
*
* SUPPLIES IBIS Reference Power Supplies
* C_COMP IBIS C_comp
* PACKAGE IBIS L_pkg, R_pkg, C_pkg (also L_dut, R_dut, C_dut)
*
* PULLUP IBIS PULLUP Table
* POWER_CLAMP IBIS POWER CLAMP Table
* PULLDOWN IBIS PULLDOWN Table
* PULLDOWN_ECL IBIS PULLDOWN Table with ECL Polarity Convention
* GND_CLAMP IBIS GND_CLAMP Table
*
* RISINGn IBIS RISING WAVEFORM Table Number "n".
* LOADRn IBIS Load for Rising Waveform Table "n".
* FALLINGn IBIS FALLING WAVEFORM Table Number "n".
* LOADFn IBIS Load for Falling Waveform Table "n".
*
* NOTES:
* (1) V/I and Waveform tables consisting of the first column and
* any of the remaining columns may be copied directly into
* the corresponding subcircuit data tables below, but with the
* insertion of the continuation character "+" as the first
* character of each line. Notes (2) and (3) contain data
* table limitations. The polarity conventions of IBIS are
* followed in formulating the subcircuit tables. Delete
* rows which consist of "" data.
* (2) All Voltage entries must be ordered in ascending order for
* the PULLUP, PULLDOWN, GND_CLAMP and POWER_CLAMP tables.
* (3) All Waveform tables must be ordered in ascending order and
* each of the Rising and Falling transitions should be referenced
* to an implied pulse waveform relative time = 0ns for the
* beginning of that specific transition. The time = 0ns could
* be an input transition point that is common to all of the
* tables of similar transition direction.
*
*==========================================================================
* IBIS POWER SUPPLY TABLE
*--------------------------------------------------------------------------
.SUBCKT SUPPLIES 200 100 400 300
* | | | |
* | | | Ground Clamp Ref Voltage (Usually Gnd)
* | | Power Clamp Ref Voltage (Usually Vcc)
* | Pulldown Reference Voltage (Usually Gnd)
* Pullup Reference Voltage (Usually Vcc)
*--------------------------------------------------------------------------
* Enter the Supply Values Here
VPULLUP 201 0 5.0
Rpullup 200 201 1e-5
VPULLDOWN 101 0 0.0
Rpulldown 100 101 1e-5
VPOWERCLAMP 401 0 5.0
Rpowerclamp 400 401 1e-5
VGNDCLAMP 301 0 0
Rgndclamp 300 301 1e-5
.ENDS
*==========================================================================

*==========================================================================
* IBIS C_COMP
*--------------------------------------------------------------------------
.SUBCKT C_COMP 1 100
* | |
* | Pulldown Reference Voltage (Usually Gnd)
* Die
*--------------------------------------------------------------------------
* Enter the Supply Values Here
C_comp 1 100 1e-15
.ENDS
*==========================================================================

*==========================================================================
* IBIS PACKAGE
*--------------------------------------------------------------------------
.SUBCKT PACKAGE 1 100 2
* | | |
* | | Pin
* | Pulldown Reference Voltage (Usually Gnd)
* Die
*--------------------------------------------------------------------------
* Enter the Supply Values Here
L_pkg 1 3 1e-12
R_pkg 3 2 1e-6
C_pkg 2 100 1e-15
.ENDS
*==========================================================================

*==========================================================================
* IBIS PULLUP TABLE
*--------------------------------------------------------------------------
.SUBCKT PULLUP 1 200 2
* | | |
* | | Current Source Output
* | Reference Voltage (Usually Pullup Ref. or Vcc)
* Output Sense Voltage (Usually at Vout of die)
*--------------------------------------------------------------------------
GPULLUP_HS 2 200 PWL(1) 200 1
+ -5.00V 100m
+ 0 0
+ 5 -100m
+ 10.00V -200m
.ENDS
*==========================================================================
* IBIS PULLDOWN TABLE
*--------------------------------------------------------------------------
.SUBCKT PULLDOWN 1 100 2
* | | |
* | | Current Source Output
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Output Sense Voltage (Usually at Vout of die)
*--------------------------------------------------------------------------
GPULLDOWN_HS 2 100 PWL(1) 1 100
+ -5.00V -100m
+ 0 0
+ 5 100m
+ 10.00V 200m
.ENDS
*==========================================================================
* IBIS PULLDOWN_ECL TABLE
*--------------------------------------------------------------------------
.SUBCKT PULLDOWN_ECL 1 200 2
* | | |
* | | Current Source Output
* | Reference Voltage (Usually Pullup Ref. or Vcc)
* Output Sense Voltage (Usually at Vout of die)
*--------------------------------------------------------------------------
GPULLDOWN_ECL_HS 2 200 PWL(1) 200 1
+ 0.000E+00 0.0
+ 1.000E-01 0.0
.ENDS
*==========================================================================
* IBIS POWER_CLAMP TABLE
*--------------------------------------------------------------------------
.SUBCKT POWER_CLAMP 1 200
* | |
* | Reference Voltage (Usually Pullup Ref. or Vcc)
* Output Voltage (Usually at Vout of die)
*--------------------------------------------------------------------------
* Enter 0.0 for no clamp
*
GPWR_CLAMP_HS 1 200 PWL(1) 200 1
+ -5.00V 0mA
+ 10.00V 0mA
.ENDS
*==========================================================================
* IBIS GND_CLAMP TABLE
*--------------------------------------------------------------------------
.SUBCKT GND_CLAMP 1 100
* | |
* | Reference Voltage (Usually GND clamp Ref. or GND)
* Output Voltage (Usually at Vout of die)
*--------------------------------------------------------------------------
* Enter 0.0 for no clamp
*
GGND_CLAMP_HS 1 100 PWL(1) 1 100
+ -5.00V 0mA
+ 10.00V 0mA
.ENDS
*==========================================================================

*==========================================================================
* IBIS RISING WAVEFORM1 TABLE
*--------------------------------------------------------------------------
.SUBCKT LOADR1 1 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Pin Connection
*--------------------------------------------------------------------------
L_FIXTURE 1 3 1e-12
C_FIXTURE 3 100 1e-15
R_FIXTURE 3 4 50
V_FIXTURE 4 100 0
.ENDS
*--------------------------------------------------------------------------
.SUBCKT RISING1 2 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Output Serving as PWL Voltage Source to Input Connection
*--------------------------------------------------------------------------
VIN 2 100 PWL
+ 0. 0.0
+ 1.5n 0.0
+ 2.5n 2.5
.ENDS
*==========================================================================

*==========================================================================
* IBIS RISING WAVEFORM2 TABLE
*--------------------------------------------------------------------------
.SUBCKT LOADR2 1 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Pin Connection
*--------------------------------------------------------------------------
L_FIXTURE 1 3 1e-12
C_FIXTURE 3 100 1e-15
R_FIXTURE 3 4 50
V_FIXTURE 4 100 5
.ENDS
*--------------------------------------------------------------------------
.SUBCKT RISING2 2 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Output Serving as PWL Voltage Source to Input Connection
*--------------------------------------------------------------------------
VIN 2 100 PWL
+ 0.0 2.5
+ 1.0n 2.5
+ 1.5n 5.0
.ENDS
*==========================================================================

*==========================================================================
* IBIS FALLING WAVEFORM1 TABLE
*--------------------------------------------------------------------------
.SUBCKT LOADF1 1 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Pin Connection
*--------------------------------------------------------------------------
L_FIXTURE 1 3 1e-12
C_FIXTURE 3 100 1e-15
R_FIXTURE 3 4 50
V_FIXTURE 4 100 0
.ENDS
*--------------------------------------------------------------------------
.SUBCKT FALLING1 2 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Output Serving as PWL Voltage Source to Input Connection
*--------------------------------------------------------------------------
VIN 2 100 PWL
+ 0.0 2.5
+ 0.5n 2.5
+ 1.5n 0.0
.ENDS
*==========================================================================

*==========================================================================
* IBIS FALLING WAVEFORM2 TABLE
*--------------------------------------------------------------------------
.SUBCKT LOADF2 1 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Pin Connection
*--------------------------------------------------------------------------
L_FIXTURE 1 3 1e-12
C_FIXTURE 3 100 1e-15
R_FIXTURE 3 4 50
V_FIXTURE 4 100 5
.ENDS
*--------------------------------------------------------------------------
.SUBCKT FALLING2 2 100
* | |
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Output Serving as PWL Voltage Source to Input Connection
*--------------------------------------------------------------------------
VIN 2 100 PWL
+ 0.0 5
+ 1.5n 5
+ 2.5n 2.5
.ENDS
*==========================================================================

ibiscal.lib
*==========================================================================
* IBIS CALCULATED TABLE AND WAVEFORM SUBCIRCUITS
*==========================================================================
*
* LIBRARY OF SUBCIRCUITS
*
* IBISMOD.LIB Copy of IBIS Data formatted into a Subcircuit
* Data Library for Inclusion.
* IBISCAL.LIB Copy of Simulation Tables and Data for Calculations
* for Inclusion.
*
* SUBCIRCUIT CONTENTS
*
* RAMPS Simutaneous Ramps for Rising and Falling Sources
*
* KUR Pullup Rising Wavefrom VI Table Multiplier
* KDR Pulldown Rising Wavefrom Time VI Table Multiplier
*
* KUF Pullup Falling Waveform Time VI Table Multiplier
* KDF Pulldown Falling Waveform Time VI Table Multiplier
*
* NOTES:
* (1) The Kxx tables are scaled 1nV = 1ns so that Spice Time
* data is inserted directly after inserting "+ " for the
* continuation of the table. These tables could be used
* directly as PWL current sources.
* (2) The ramp data is in the order of 10V maximum, but is scaled
* by 1e-9 for ramp VCCS tables to correspond to typical
* "nanosecond" time scaling.
*
*==========================================================================

*==========================================================================
* TIMERAMP
*--------------------------------------------------------------------------
.SUBCKT RAMPS 1 100 2 3
* | | | |
* | | | Output Falling Voltage Ramp
* | | Output Rising Voltage Ramp
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Input Pulse Voltage
*--------------------------------------------------------------------------
* Enter Scaled Ramp Duration Here in 1nV = 1nS
* vvv
VTIME 4 100 3.00N
*
RTIME 4 100 1E9
ETIMEG 5 100 4 100 1E9
RIN 1 100 1E9
GRAMPR 7 100 1 6 -2
CRAMP 7 100 1E-9
ERAMPR 2 100 7 100 1E-9
RRAMPR 2 100 1E9
ERAMPF 3 100 4 2 1
RRAMPF 3 100 1E9
DMAX 7 5 DIDEAL
DMIN 100 7 DIDEAL
VHALF 6 100 0.5
RHALF 6 100 1E9
.MODEL DIDEAL D (N=0.001)
.ENDS
*==========================================================================

*==========================================================================
* PULLUP TABLE RISING WAVEFORM MULTIPIER VCCS
*--------------------------------------------------------------------------
.SUBCKT KUR 1 100 2
* | | |
* | | Current Source Output
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Input Sense Voltage (Usually at ramp output)
*--------------------------------------------------------------------------
GDR_HS 100 2 PWL(1) 1 100
+ 0. 0
+ 1.5n 0
+ 2.0n 0.5
+ 2.5n 1.0
.ENDS
*==========================================================================
* PULLDOWN TABLE RISING WAVEFORM MULTIPIER VCCS
*--------------------------------------------------------------------------
.SUBCKT KDR 1 100 2
* | | |
* | | Current Source Output
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Input Sense Voltage (Usually at ramp output)
*--------------------------------------------------------------------------
GDF_HS 100 2 PWL(1) 1 100
+ 0. 1
+ 1n 1
+ 1.5n 0.0
.ENDS
*==========================================================================

*==========================================================================
* PULLUP TABLE FALLING WAVEFORM MULTIPIER VCCS
*--------------------------------------------------------------------------
.SUBCKT KUF 1 100 2
* | | |
* | | Current Source Output
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Input Sense Voltage (Usually at ramp output)
*--------------------------------------------------------------------------
GUF_HS 100 2 PWL(1) 1 100
+ 0. 1
+ 0.5n 1
+ 1.0n 0.5
+ 1.5n 0
.ENDS
*==========================================================================
*==========================================================================
* PULLDOWN TABLE FALLING WAVEFORM MULTIPIER VCCS
*--------------------------------------------------------------------------
.SUBCKT KDF 1 100 2
* | | |
* | | Current Source Output
* | Reference Voltage (Usually Pulldown Ref. or GND)
* Input Sense Voltage (Usually at ramp output)
*--------------------------------------------------------------------------
GDF_HS 100 2 PWL(1) 1 100
+ 0. 0
+ 1.5n 0
+ 2.0n 0.5
+ 2.5n 1
.ENDS
*==========================================================================

ext2r.sp

* EXTRACT 2 WAVEFORM RISING CALIBRATION
*
.INCLUDE IBISMOD.LIB $......... VVVVVVVV
*
* SUPPLIES
XPWR VCC GND PWRC GNDC SUPPLIES
*
* INPUT WAVEFORM 1 AND DUMMY LOAD
XVIN1 IN1 GND RISING1
RIN1 IN1 GND 1E6
*
* INPUT WAVEFORM 2 AND DUMMY LOAD
XVIN2 IN2 GND RISING2
RIN2 IN2 GND 1E6
*
* HIGH SIDE 1
XUP1 OUT1 VCC NU1 PULLUP
VUP1 NU1 VCC 0
GUP1 OUT1 VCC CUR='-I(VUP1)*I(VKUR)'
XPC1 OUT1 PWRC POWER_CLAMP
*
* LOW SIDE 1
XDN1 OUT1 GND ND1 PULLDOWN
VDN1 ND1 GND 0
GDN1 OUT1 GND CUR='-I(VDN1)*I(VKDR)'
XGC1 OUT1 GNDC GND_CLAMP
*
* C_COMP AND DUT PACKAGE 1
XCAP1 OUT1 GND C_COMP
XPKG1 OUT1 GND PIN1 PACKAGE
*
* LOAD 1
XLOAD1 PIN1 GND LOADR1
RPIN1 PIN1 GND 1E9
*
* HIGH SIDE 2
XUP2 OUT2 VCC NU2 PULLUP
VUP2 NU2 VCC 0
GUP2 OUT2 VCC CUR='-I(VUP2)*I(VKUR)'
XPC2 OUT2 PWRC POWER_CLAMP
*
* LOW SIDE 2
XDN2 OUT2 GND ND2 PULLDOWN
VDN2 ND2 GND 0
GDN2 OUT2 GND CUR='-I(VDN2)*I(VKDR)'
XGC2 OUT2 GNDC GND_CLAMP
*
* C_COMP AND DUT PACKAGE 2
XCAP2 OUT2 GND C_COMP
XPKG2 OUT2 GND PIN2 PACKAGE
*
* LOAD 2
XLOAD2 PIN2 GND LOADR2
RPIN2 PIN2 GND 1E9
*
* FEEDBACK TABLE ADJUSTMENT .............................. VVV
GDET NDET GND CUR='(I(VDN2)*I(VUP1)-I(VDN1)*I(VUP2))/(1E4)'
VDET NDET GND 0
*
GKUR NKU GND
+ CUR='((V(IN2)-V(PIN2))*I(VDN1)-(V(IN1)-V(PIN1))*I(VDN2))/I(VDET)'
VKUR NKU GND 0
*
GKDR NKD GND
+ CUR='((V(IN1)-V(PIN1))*I(VUP2)-(V(IN2)-V(PIN2))*I(VUP1))/I(VDET)'
VKDR NKD GND 0
*
.TRAN 0.2n 10n
.PRINT TRAN I(VKUR)
.PRINT TRAN I(VKDR)
*
.OPTION POST
.END

ext2f.sp

* EXTRACT 2 WAVEFORM FALLING CALIBRATION
*
.INCLUDE IBISMOD.LIB $......... VVVVVVVV
*
* SUPPLIES
XPWR VCC GND PWRC GNDC SUPPLIES
*
* INPUT WAVEFORM 1 AND DUMMY LOAD
XVIN1 IN1 GND FALLING1
RIN1 IN1 GND 1E6
*
* INPUT WAVEFORM 2 AND DUMMY LOAD
XVIN2 IN2 GND FALLING2
RIN2 IN2 GND 1E6
*
* HIGH SIDE 1
XUP1 OUT1 VCC NU1 PULLUP
VUP1 NU1 VCC 0
GUP1 OUT1 VCC CUR='-I(VUP1)*I(VKUF)'
XPC1 OUT1 PWRC POWER_CLAMP
*
* LOW SIDE 1
XDN1 OUT1 GND ND1 PULLDOWN
VDN1 ND1 GND 0
GDN1 OUT1 GND CUR='-I(VDN1)*I(VKDF)'
XGC1 OUT1 GNDC GND_CLAMP
*
* C_COMP AND DUT PACKAGE 1
XCAP1 OUT1 GND C_COMP
XPKG1 OUT1 GND PIN1 PACKAGE
*
* LOAD 1
XLOAD1 PIN1 GND LOADF1
RPIN1 PIN1 GND 1E9
*
* HIGH SIDE 2
XUP2 OUT2 VCC NU2 PULLUP
VUP2 NU2 VCC 0
GUP2 OUT2 VCC CUR='-I(VUP2)*I(VKUF))'
XPC2 OUT2 PWRC POWER_CLAMP
*
* LOW SIDE 2
XDN2 OUT2 GND ND2 PULLDOWN
VDN2 ND2 GND 0
GDN2 OUT2 GND CUR='-I(VDN2)*I(VKDF)'
XGC2 OUT2 GNDC GND_CLAMP
*
* C_COMP AND DUT PACKAGE 2
XCAP2 OUT2 GND C_COMP
XPKG2 OUT2 GND PIN2 PACKAGE
*
* LOAD 2
XLOAD2 PIN2 GND LOADF2
RPIN2 PIN2 GND 1E9
*
* FEEDBACK TABLE ADJUSTMENT .............................. VVV
GDET NDET GND CUR='(I(VDN2)*I(VUP1)-I(VDN1)*I(VUP2))/(1E7)'
VDET NDET GND 0
*
GKUF NKU GND
+ CUR='((V(IN2)-V(PIN2))*I(VDN1)-(V(IN1)-V(PIN1))*I(VDN2))/I(VDET)'
VKUF NKU GND 0
*
GKDF NKD GND
+ CUR='((V(IN1)-V(PIN1))*I(VUP2)-(V(IN2)-V(PIN2))*I(VUP1))/I(VDET)'
VKDF NKD GND 0
*
.TRAN 0.2n 10n
.PRINT TRAN I(VKUF)
.PRINT TRAN I(VKDF)
.OPTION POST
.END

 
Received on Mon Oct 27 19:16:12 1997

This archive was generated by hypermail 2.1.8 : Fri Jun 03 2011 - 09:52:29 PDT