Subject: DRAFT IBIS Rev 2.0, part 3

From: Derrick Duehren <[email-masked]>
Date: Wed, 25 May 94 00:30:03 PST

Text item: Text_1

$|==============================================================================
$|    Keyword:  [GND Clamp Reference]
$|   Required:  Yes, if the [Voltage Range] keyword is not present.
$|Description:  Defines a power supply rail other than 0v as the reference
$|              voltage for the [GND Clamp] V/I data.  If this keyword is not
$|              present, the voltage data points in the [GND Clamp] V/I table
$|              are referenced to 0v.
$|Usage Rules:  Provide actual voltages (not percentages) in the usual typ, min,
$|              max format.  "NA" is allowed for the min and max values only.
$|Other Notes:  Power Supplies: It is intended that standard TTL and CMOS
$|              devices be specified using only the [Voltage Range] keyword.
$|              However, in cases where the output characteristics of a device
$|              depend on more than a single supply and ground, or a pullup,
$|              pulldown, or clamp structure is referenced to something other
$|              than the default supplies, use the additional 'reference'
$|              keywords.
$|
$|              If the [Voltage Range] keyword is not present, then all four of
$|              the other keywords must be present.  If the [Voltage Range]
$|              keyword is present, the other keywords are optional and may or
$|              may not be used as required.  It is legal (although redundant)
$|              for an optional keyword to specify the same voltage as specified
$|              by the [Voltage Range] keyword.
$|---------------------------------------------------------------------------
$| variable              typ             min             max
$[GND Clamp Reference]   0V              0V              0V
$|
|==============================================================================
|    Keywords:  [Pulldown], [Pullup], [GND Clamp], [POWER Clamp]
|    Required:  Yes, if they exist in the device
| Description:  The data points under these keywords define the V/I curves of
|               the pulldown and pullup structures of an output buffer and the
|               V/I curves of the clamping diodes connected to the GND and the
$|               POWER pins, respectively.  Currents are considered positive
$|               when their direction is into the component.
$|
| Usage Rules:  In each of these sections, the first column contains the
|               voltage value, and the three remaining columns hold the
|               typical, minimum, and maximum current values.  The four
|               entries, Voltage, I(typ), I(min), and I(max) must be placed on
|               a single line and must be separated by at least one white
|               space or tab character.
|
|               All four columns are required under these keywords.  However,
|               data is only required in the typical column.  If minimum
|               and/or maximum current values are not available, the reserved
|               word "NA" must be used.  "NA" can be used for currents in the
|               typical column, but numeric values MUST be specified for the
|               first and last voltage points on any V/I curve.  Each V/I
|               curve must have at least 2, but not more than 100, voltage
|               points.
|
| Other Notes:  The V/I curve of the [Pullup] and the [POWER Clamp] structures 
$|               are 'Vcc relative', meaning that the voltage values are 
$|               referenced to the Vcc pin.  (Note: Under these keywords, all 
$|               references to 'Vcc' refer to the voltage rail defined by the 
$|               [Voltage range], [Pullup Reference], or [POWER Clamp Reference]
$|               keywords, as appropriate.)  The voltages in the data tables are
|               derived from the equation:  Vtable = Vcc - Voutput.
|
|               Therefore, for a 5V component, -5 V in the table actually
|               means 5 V above Vcc, which is +10 V with respect to ground;
|               and 10 V means 10 V below Vcc, which is -5 V with respect to
|               ground.  Vcc-relative data is necessary to model a pullup
|               structure properly, since the output current of a pullup
|               structure depends on the voltage between the output and Vcc
|               pins and not the voltage between the output and ground pins.
|               Note that the [GND Clamp] V/I curve can include quiescent
|               input currents, or the currents of a 3-stated output, if so
|               desired.
|
$|               When tabulating data for ECL devices, the data in the pulldown
$|               table is measured with the output in the 'logic low' state.
$|               In other words, the data in the table represents the V-I
$|               characteristics of the output when the output is at the most
$|               negative of its two logic levels.  Likewise, the data in the
$|               pullup table is measured with the output in the 'logic one'
$|               state and represents the V-I characteristics when the output
$|               is at the most positive logic level.  Note that in BOTH of
$|               these cases, the data is referenced to the Vcc supply voltage,
$|               using the equation  Vtable = Vcc - Voutput.
$|
$|               V/I table data is allowed to be non-monotonic in one axis.
$|               To be monotonic, the V/I table data must meet any one of the
$|               following 8 criteria:
$|                 1- The CURRENT axis either increases or remains constant as
$|                    the voltage axis is increased.
$|                 2- The CURRENT axis either increases or remains constant as
$|                    the voltage axis is decreased.
$|                 3- The CURRENT axis either decreases or remains constant as
$|                    the voltage axis is increased.
$|                 4- The CURRENT axis either decreases or remains constant as
$|                    the voltage axis is decreased.
$|
$|                 5- The VOLTAGE axis either increases or remains constant as
$|                    the current axis is increased.
$|                 6- The VOLTAGE axis either increases or remains constant as
$|                    the current axis is decreased.
$|                 7- The VOLTAGE axis either decreases or remains constant as
$|                    the current axis is increased.
$|                 8- The VOLTAGE axis either decreases or remains constant as
$|                    the current axis is decreased.
$|
$|                It is assumed that the simulator sums the clamp curves
$|                together with the appropriate pullup or pulldown curve when a
$|                buffer is driving high or low, respectively.  From this
$|                assumption and the nature of 3-statable buffers, it follows
$|                that the data in the clamping curve sections are handled as
$|                constantly present curves and the pullup and pulldown curves
$|                are used only when needed in the simulation.
$|
$|                The clamp curves of an input or I/O buffer can be measured
$|                directly with a curve tracer, with the I/O buffer 3-stated.
$|                However, sweeping enabled buffers results in curves that are
$|                the sum of the clamping curves and the output structures.
$|                Based on the assumption outlined above, the pullup and
$|                pulldown curves of an IBIS model must represent the difference
$|                of the $3-stated and the enabled buffer's curves.  (Note that
$|                the resulting difference curve can demonstrate a non-monotonic
$|                shape.)  This requirement enables the simulator to sum the
$|                curves, without the danger of double counting, and arrive at
$|                an accurate model in both the 3-stated and enabled conditions.
$|
$|                Since in the case of a non 3-statable buffer, this difference
$|                curve cannot be generated through lab measurements (because
$|                the clamping curves cannot be measured alone), the pullup and
$|                pulldown curves of an IBIS model can contain the sum of the
$|                clamping characteristics and the output structure.  In this
$|                case, the clamping curves must contain all zeroes, or the
$|                keywords must be omitted.
|------------------------------------------------------------------------------
[Pulldown]
|  Voltage   I(typ)    I(min)    I(max)
|
   -5.0V    -40.0m    -34.0m    -45.0m
   -4.0V    -39.0m    -33.0m    -43.0m
|    .
|    .
    0.0V      0.0m      0.0m      0.0m
|    .
|    .
    5.0V     40.0m     34.0m     45.0m
   10.0V     45.0m     40.0m     49.0m
|
[Pullup]
|
|  Voltage   I(typ)    I(min)    I(max)
|
   -5.0V     32.0m     30.0m     35.0m
   -4.0V     31.0m     29.0m     33.0m
|    .
|    .
    0.0V      0.0m      0.0m      0.0m
|    .
|    .
    5.0V    -32.0m    -30.0m    -35.0m
   10.0V    -38.0m    -35.0m    -40.0m
|
[GND Clamp]
|
|  Voltage   I(typ)    I(min)    I(max)
|
   -5.0V  -3900.0m  -3800.0m  -4000.0m
   -0.7V    -80.0m    -75.0m    -85.0m
   -0.6V    -22.0m    -20.0m    -25.0m
   -0.5V     -2.4m     -2.0m     -2.9m
   -0.4V      0.0m      0.0m      0.0m
    5.0V      0.0m      0.0m      0.0m
|
[POWER Clamp]
|
|  Voltage   I(typ)    I(min)    I(max)
|
   -5.0V   4450.0m       NA        NA
   -0.7V     95.0m       NA        NA
   -0.6V     23.0m       NA        NA
   -0.5V      2.4m       NA        NA
   -0.4V      0.0m       NA        NA
    0.0V      0.0m       NA        NA
|
$|==============================================================================
$|    Keywords:  [Rgnd], [Rpower], [Rac], [Cac]
$|    Required:  Yes, if they exist in the device
$| Description:  The data for these keywords define the resistance values of
$|               Rgnd and Rpower connected to GND and the POWER pins,
$|               respectively.
$| Usage Rules:  For each of these keywords, the three columns hold the
$|               typical, minimum, and maximum resistance values.  The three
$|               entries for R(typ), R(min), and R(max), or the three entries 
for
$|               C(typ), C(min), and C(max) must be placed on a single line and
$|               must be separated by at least one white space or tab character.
$|               All three columns are required under these keywords.  However,
$|               data is only required in the typical column.  If minimum
$|               and/or maximum values are not available, the reserved word
$|               "NA" must be used indicating the R(typ) or C(typ) value by
$|               default.
$| Other Notes:  It should be noted that [Rpower] is connected to 'Vcc' and
$|               [Rgnd] is connected to 'GND'.  However, [GND Clamp Reference]
$|               voltages, if defined, apply to [Rgnd].  [POWER Clamp Reference]
$|               voltages, if defined, apply to [Rpower].  Either or both [Rgnd]
$|               and [Rpower] may be defined and may coexist-exist with [GND 
Clamp]
$|               and [POWER Clamp] structures.  If an AC terminator is
$|               specified, then both [Rac] and [Cac] are required.  When
$|               [Rgnd], [Rpower], or [Rac] and [Cac] are specified, the
$|               Model_type must be Terminator.
$|
$|               |<-------------TERMINATOR Model--------------->|
$| 
$|                   VOLTAGE RANGE or
$|                   POWER_CLAMP REF
$|                          o
$|                          |
$|               POWER_ |---o---|
$|               CLAMP  |       |
$|                   |--o--|    \
$|                   |     |    /
$|                   | VI  |    \ RPOWER    PACKAGE Keyword
$|                  Parameters
$|                   |--o--|    |        |<----------------->|
$|                      |       |
$|                      |       |                               PIN
$|                o-----o-------o-----o-----/\/\/\--UUUUUU---o--o
$|                |     |GND_   |     |      R_PKG   L_PKG   |
$|                |     |CLAMP  |     |                      |
$|                |  |--o--|    |     |                      |
$|                |  |     |    \     |                      |
$|                |  | VI  |    /RGND |                      |
$|                |  |     |    \     \                      |
$|                |  |--o--|    /     / RAC                  |
$|                |     |       |     \                      |
$|                |     |---o---|     /                      |
$|                |         |         |                      |
$|        C_COMP ---        o        --- CAC          C_PKG ---
$|               ---     GND or      ---                    ---
$|                |   GND_CLAMP REF   |                      |
$|                |                   |                      |
$|                |-------------------o----------------------|
$|                                    |
$|                                    o
$|                                   GND
$|------------------------------------------------------------------------------
$| variable      R(typ)          R(min)          R(max)
$|
$[Rgnd]          330Ohm          300Ohm          360Ohm   | Parallel Terminator
$[Rpower]        220Ohm          200Ohm          NA
$|
$[Rac]           30Ohm           NA              NA
$|
$| variable      C(typ)          C(min)          C(max)   | AC terminator
$|
$[Cac]           50pF            NA              NA
$|
|==============================================================================
|     Keyword:  [Ramp]
|    Required:  Yes, except for inputs
| Description:  Defines the rise and fall times of a buffer.
$|  Sub-Params:  dV/dt_r, dV/dt_f, R_load
$| Usage Rules:  These parameters describe an ideal slope and can be expressed
$|               as a ratio of any reasonable voltage and time values as shown
$|               in the examples.  The [Ramp] values can to use "NA" for the
$|               min and max values only.  The R_load sub-parameter is optional
$|               if the preferred 50 ohm load is used.  It is required if a non-
$|               standard load is used.
$|------------------------------------------------------------------------------
[Ramp]
| variable      typ             min             max
dV/dt_r         4.2/1.8n        3.5/2.5n        5.0/1.1n
dV/dt_f         2.5/1.5n        2.0/2.3n        3.0/0.8n
$R_load = 300ohms
$|
$|==============================================================================
$|     Keywords:     [Rising waveform], [Falling waveform]
$|     Required:     No
$|     Description:  Describes the shape of the rising and falling edge
$|                   waveforms of a driver.
$|     Sub-params:   R_fixture, V_fixture, C_fixture, L_fixture,
$|                   R_dut, L_dut, C_dut
$|     Usage Rules:  Each [Rising waveform] and [Falling waveform] keyword
$|                   introduces a table of time vs. voltage points that
$|                   describe the shape of an output waveform.  These
$|                   time/voltage points are taken under the conditions
$|                   specified in the R/L/C/V_fixture and R/L/C_dut
$|                   sub-parameters.  The table itself consists of
$|                   one column of time points, then three columns of
$|                   voltage points in the standard typ, min, and max format.
$|                   The four entries must be placed on a single line and
$|                   must be separated by at least one white space or tab
$|                   character.  All four columns are required.  However, data
$|                   is only required in the typical column.  If minimum
$|                   or maximum data is not available, use the reserved word
$|                   "NA".  The first value in the time column need not be `0'.
$|                   Time values must increase as one parses down the table.
$|                   The waveform table can contain a maximum of 100 data
$|                   points.  A maximum of 100 waveform tables are allowed per
$|                   model.  Note that for backwards compatibility, the existing
$|                   [Ramp] keyword is still required.
$|
$|                   A waveform table must include the entire waveform;
$|                   i.e., the first entry (or entries) in a voltage column
$|                   must be the DC voltage of the output before switching
$|                   and the last entry (or entries) of the column must be
$|                   the final DC value of the output after switching.
$|
$|                   A [Model] specification can contain more than one rising
$|                   edge or falling edge waveform table.  However, each new
$|                   table must begin with the appropriate keyword and sub-
$|                   parameter list as shown below.  If more than one rising or
$|                   falling edge waveform table is present, then the data in
$|                   each of the respective tables must be time correlated.
$|                   In other words, the rising (falling) edge data in each
$|                   of the rising (falling) edge waveform tables must be
$|                   entered with respect to a common reference point on the
$|                   input stimulus waveform.
$|
$|                   The 'fixture' sub-parameters specifies the loading
$|                   conditions under which the waveform is taken.  The R_dut,
$|                   C_dut, and L_dut Sub-params are analogous to the
$|                   package parameters R_pkg, C_pkg and L_pkg and are used
$|                   if the waveform includes the effects of pin
$|                   inductance/capacitance.  The diagram below shows the
$|                   interconnection of these elements.
$|
$|                        PACKAGE          |   TEST FIXTURE
$|          _________
$|         |  DUT    |  L_dut   R_dut      |  L_fixture  R_fixture
$|         |  die    |__@@@@@__/\  /\______|__@@@@_______/\  /\_____ V_fixture
$|         |         |           \/    |   |         |     \/
$|         |_________|                 |   |
$|                                     |   |
$|                              C_dut ===  |        === C_fixture
$|                                     |   |
$|                                     |   |
$|                                    gnd  |        gnd
$|
$|                   Only the R_fixture and V_fixture sub-parameters are
$|                   required, the rest of the sub-parameters are optional.
$|                   If a sub-parameter is not used, its value defaults to
$|                   zero.  The sub-parameters must appear in the text after
$|                   the keyword and before the first row of the waveform
$|                   table.
$|------------------------------------------------------------------------------
$[Rising waveform]
$R_fixture = 500
$V_fixture = 5.0
$C_fixture = 50p
$L_fixture = 2n
$C_dut = 7p
$R_dut = 1m
$L_dut = 1n
$|Time     V(typ)     V(min)     V(max)
$ 0.0ns     0.3        0.5         NA
$ 0.5ns     0.3        0.5         NA
$ 1.0ns     0.6        0.7         NA
$ 1.5ns     0.9        0.9         NA
$ 2.0ns     1.5        1.3         NA
$ 2.5ns     2.1        1.7         NA
$ 3.0ns     3.0        2.7         NA
$ 3.5ns     3.2        3.0         NA
$|
$[Falling waveform]
$R_fixture = 50
$V_fixture = 0
$|Time     V(typ)     V(min)     V(max)
$ 10.0ns     3.2        3.0         NA
$ 10.5ns     3.0        2.7         NA
$ 11.0ns     2.1        1.7         NA
$ 11.5ns     1.5        1.3         NA
$ 12.0ns     0.9        0.9         NA
$ 12.5ns     0.6        0.7         NA
$ 13.0ns     0.3        0.5         NA
$ 13.5ns     0.3        0.5         NA
|
------------------------------ end of part 3 ---------------------------------