Subject: BIRD 70

From: "Gregory R Edlund" <[email-masked]>
Date: Fri, 16 Mar 2001 13:34:56 -0600

Hi Everyone,

BIRD 69.1 has evolved into BIRD 70.  The main change is making one test
load
available to ALL models through a new keyword, [Test Load], and a new
subparameter under [Rising Waveform] and [Falling Waveform],
Golden_test_load.  Thanks to Al Davis and Bob Ross for their input.

Please see the section "ANALYSIS PATH" for the details.

I am very interested to know if this BIRD is "obvious to the casual
observer"
or "obscure to anyone not involved!"

Greg

p.s. A similar concept could be used for expanded standard loads,
e.g. PCI, etc.

*******************************************************************************
*******************************************************************************

BIRD ID#:      70
ISSUE TITLE:   Golden Waveforms
REQUESTOR:     Greg Edlund, IBM

DATE SUBMITTED:                       March 16, 2000
DATE REVISED:
DATE ACCEPTED BY IBIS OPEN FORUM:     Pending

*******************************************************************************
*******************************************************************************

STATEMENT OF THE ISSUE:

Golden Waveforms are a set of SPICE waveforms simulated using known ideal
test loads.  They are useful in verifying the accuracy of behavioral
simulation results for any given simulator.  They are not the same thing as
the traditional VT tables recommended in the "IBIS Cookbook."  The "I/O
Buffer
Accuracy Handbook" recommends a set of ideal test loads for classical
push-pull and open-drain drivers.

There is currently a problem with including Golden Waveforms in an IBIS
datasheet: the simulator tries to use these waveforms to construct its
stimulus waveform, and erroneous simulations result.

This BIRD proposes a new syntactical construct to tell the simulator
that a waveform is a Golden Waveform.  The simulator may then choose to
ignore the data or (better yet) run a set of simulations using the network
and circuit parameters provided and report the correlation between the
simulation results and the Golden Waveforms.  The mechanism for describing
a Golden Waveform involves a new subparameter under the [Rising Waveform]
and [Falling Waveform] keywords and a new keyword, [Test Load], whose
scope is global and whose subparameters are accessible by all models.

*******************************************************************************

STATEMENT OF THE RESOLVED SPECIFICATIONS:

|=============================================================================
|    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, V_fixture_min, V_fixture_max,
C_fixture,
|*              L_fixture, R_dut, L_dut, C_dut, Golden_test_load
.
.
.
|               All tables assume that the die capacitance is included.
|               Potential numerical problems associated with processing the
|               data using the effective C_comp for effective die
capacitance
|               may be handled differently among simulators.
|
|*              A model developer may use the Golden_test_load subparameter
|*              to document Golden Waveforms whose purpose is to facilitate
|*              the correlation of SPICE and behavioral simulations. The
|*              value of Golden_test_load must be a valid [Test Load] name.
|*              Golden_test_load is mutually exclusive of all other
|*              subparameters and nullifies them if used. The process,
|*              temperature, and voltage conditions under which the
waveforms
|*              are generated must be identical to those used to generate
|*              the VI and VT tables. The Golden Waveforms must be
generated
|*              using unpackaged driver and receiver models. The simulator
|*              must not use the Golden Waveform tables in the construction
|*              of its internal stimulus function.
|
|-----------------------------------------------------------------------------
.
.
.
|
| Example Golden Waveforms:
|
[Rising Waveform]
Golden_test_load = Load1
| Time            V(typ)              V(min)              V(max)
   0.0000s       25.2100mV           15.2200mV           43.5700mV
   0.2000ns       2.3325mV           -8.5090mV           23.4150mV
   0.4000ns       0.1484V            15.9375mV            0.3944V
   0.6000ns       0.7799V             0.2673V             1.3400V
   0.8000ns       1.2960V             0.6042V             1.9490V
   1.0000ns       1.6603V             0.9256V             2.4233V
   1.2000ns       1.9460V             1.2050V             2.8130V
   1.4000ns       2.1285V             1.3725V             3.0095V
   1.6000ns       2.3415V             1.5560V             3.1265V
   1.8000ns       2.5135V             1.7015V             3.1600V
   2.0000ns       2.6460V             1.8085V             3.1695V
| ...
  10.0000ns       2.7780V             2.3600V             3.1670V
|
[Falling Waveform]
Golden_test_load = Load1
| Time            V(typ)              V(min)              V(max)
   0.0000s        5.0000V             4.5000V             5.5000V
   0.2000ns       4.7470V             4.4695V             4.8815V
   0.4000ns       3.9030V             4.0955V             3.5355V
   0.6000ns       2.7313V             3.4533V             1.7770V
   0.8000ns       1.8150V             2.8570V             0.8629V
   1.0000ns       1.1697V             2.3270V             0.5364V
   1.2000ns       0.7539V             1.8470V             0.4524V
   1.4000ns       0.5905V             1.5430V             0.4368V
   1.6000ns       0.4923V             1.2290V             0.4266V
   1.8000ns       0.4639V             0.9906V             0.4207V
   2.0000ns       0.4489V             0.8349V             0.4169V
| ...
  10.0000ns       0.3950V             0.4935V             0.3841V
|
.
.
.
|=============================================================================
|    Keywords:  [Test Load]
|    Required:  No
| Description:  Defines a generic test load network and its associated
|               electrical parameters for reference by Golden Waveforms
|               defined in [Rising Waveform] and [Falling Waveform] tables.
|               The Golden Waveform tables access a given [Test Load]
|               by the value of the Golden_test_load subparameter under the
|               [Rising Waveform] and [Falling Waveform] keywords.
|  Sub-Params:  C1_near, Rs_near, Ls_near, C2_near, Rp1_near, Rp2_near,
|               Td, Zo, Rp1_far, Rp2_far, C2_far, Ls_far, Rs_far, C1_far,
|               R_diff, V_term1, V_term2, Receiver_model_name, Test_point,
|               Tline_present
| Usage Rules:  The subparameters specify the electrical parameters
|               associated with a fixed generic test load.  The diagram
|               below describes the generic test load schematically.
|
|                                    V_term1
|                                 o-----------o
|                                 |           |
|                                 \           \
receiver_model_name
|   ______                        /           /
______
|  |      |  NEAR        Rp1_near \           \ Rp1_far          FAR  |
|
|  | |\   |                       /           /                       | |\
|
|  | | \  |   Rs_near  Ls_near    |   _____   |     Ls_far  Rs_far    | | \
|
|  | |  >-|---o--/\/\--@@@@--o----o--O_____)--o----o--@@@@--/\/\--o---|-|
> |
|  | | /  |   |              |    |   Td      |    |              |   | | /
|
|  | |/   |   | C1_near      |    \   Zo      \    | C2_far       |   | |/
|
|  |______|  ===            ===   /           /   ===            ===
|______|
|             |      C2_near |    \           \    |       C1_far |
|             |              |    /           /    |              |
|             |              |    |  V_term2  |    |              |
|             o--------------o    o-----------o    o--------------o
|             |                Rp2_near    Rp2_far                |
|            GND                                                 GND
|
|
|               R_diff is not shown in the schematic but would be connected
|               between the true and complement far end nodes in the case
|               of a differential driver.  In this case, the true and
|               complement nets will be identical as defined by the other
|               subparameters.
|
|               V_term1 defines the termination voltage for parallel
|               termination resistors Rp1_near and Rp1_far.  This voltage
|               is not related to the [voltage range] keyword.
|               V_term2 defines the termination voltage for parallel
|               termination resistors Rp2_near and Rp2_far.
|
|               Receiver_model_name is optional and indicates which, if
any,
|               receiver is connected to the far end node. If not used, the
|               network defaults to no receiver.
|
|               Test_point is required and defines the node in the above
|               schematic at which the Golden Waveform is measured.  It
must
|               have the value near or far.
|
|               Tline_present is required and indicates whether or not
|               the transmission line exists in the network. It must have
|               the value yes or no. If no, the transmission line is
|               replaced by a short circuit. This prevents the user from
|               having to specify a very small delay value when no
|               transmission is present, which would result in the
simulator
|               taking excessively small time steps.
|
|               The following parameters are optional and default to the
|               values specified in table below:
|
|               C1_near     = 1f
|               Rs_near     = 1M
|               Ls_near     = 1p
|               C2_near     = 1f
|               Rp1_near    = 1M
|               Rp2_near    = 1M
|               Td          = 1ns
|               Zo          = 50
|               Rp1_far     = 1M
|               Rp2_far     = 1M
|               C2_far      = 1f
|               Ls_far      = 1p
|               Rs_far      = 1M
|               C1_far      = 1f
|               R_diff      = 1M
|               V_term1     = 1
|               V_term2     = 0
|
|-----------------------------------------------------------------------------
|
[Test Load] Load1
C1_near     = 1p
Rs_near     = 10
Ls_near     = 1n
C2_near     = 1p
Rp1_near    = 100
Rp2_near    = 100
Td          = 1ns
Zo          = 50
Rp1_far     = 100
Rp2_far     = 100
C2_far      = 1p
Ls_far      = 1n
Rs_far      = 10
C1_far      = 1p
R_diff      = 100
Receiver_model_name Input1
Test_point far
Tline_present yes
| variable      typ             min             max
Vterm1          1.5             1.4             1.6
Vterm2          0.0             0.0             0.0
|
| Example Transmission Line and Receiver test load from "I/O Buffer
Accuracy
| Handbook," section 3.4.4.
|
[Test Load] Tline_rcv
Td          = 1n
Zo          = 50
Receiver_model_name Input1
Test_point far
|-----------------------------------------------------------------------------

*******************************************************************************

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

Please refer to BIRD 69.1 for history.  BIRD 70 came about a result of an
attempt to make BIRD 69.1 upwardly compatible with IBIS-X.  BIRD 70 is
actually more compact and efficient because it allows multiple models to
access the same [Test Load].  Recommendations came from Bob Ross, Al Davis,
and the IBIS Open Forum, 3/2/01.

Changes between BIRD 69.1 and BIRD 70:

1. Scope of the "generic test load" is now global rather than being
   local to a particular model.  This is a big improvement.

2. Added one subparameter, Golden_test_load, to [Rising Waveform],
   [Falling Waveform] keywords.  Added text to describe new the
subparameter.
   The Golden_test_load subparameter calls a [Test Load].

3. Exported all the other code to the new [Test Load] keyword.

4. Removed T_ref subparameter. To do timing correlation, the simulator can
   pick a point on the 50 Ohm VT waveform as its "SPICE reference point"
and
   then simulate both the 50 Ohm load and the Golden_test_load to calculate
   a time difference.

5. Removed Pkg_pin parameter. It is too complicated. The user can model a
   simple single-pin lumped circuit using the parameters supplied.

6. Added Tline_present subparameter. If not used, the Tline should be
   removed from the simulation rather than assigned a very small delay
value.
   This prevents the simulator from taking ridiculously small time steps.

7. Replaced V_termxxx with tables similar to the dV/dt_x subparameters.
   This makes the BIRD more economical.

8. Got rid of the paragraph that read, "Using the Golden Waveform
tables..."
   This seemed to be redundant.

9. Specified which parameters are optional and which are required.

NOTE:

BIRD70 adds approximately 130 extra lines to IBIS. Of this, 25 line are
actual code and the remaining 105 are comments.

*******************************************************************************

ANY OTHER BACKGROUND INFORMATION:

See BIRD 69.1.

*******************************************************************************