Subject: RE: BIRD 70.1

From: "Peters, Stephen" <[email-masked]>
Date: Mon, 16 Apr 2001 12:22:31 -0700

Hi Greg:

  A question and comment.

1. The [Test Data] keyword includes a Driver_model subparameter to specify a
driver model.  Should there also be a Receiver_model subparameter to specify
the receiver?

2. The [Rising Golden Waveform]/[Falling Golden Waveform] keywords are
"Required: Yes (within the scope of [Test Data]".  I think I understand what
you are trying to say -- if [Test Data] is present then the golden waveforms
must also be present -- but both [Test Data] and the golden waveform
keywords belong in the global scope.  I'd make the requirement read
"Required: Yes, if [Test Data] is present."

  Regards,
  Stephen

-----Original Message-----
From: Gregory R Edlund [mailto:[email-masked]]
Sent: Monday, April 16, 2001 8:48 AM
To: [email-masked]
Subject: BIRD 70.1

Here is BIRD 70.1 for discussion at Friday's Open Forum conference call.
After discussion with Bob Ross and Al Davis, I made some significant
changes that should make it upwardly compatible.  Please note that this
BIRD sets up the infrastructure for a future BIRD to facilitate non-RC
standard loads.  In fact, that BIRD becomes almost trivial.

I have two questions for readers:

1) Semiconductor vendors:  If your customers require you to supply Golden
Waveforms and IF a production-quality SPICE-to-IBIS modeling tool were
available to support them, would this BIRD enable you to do so?

2) EDA vendors:  If your customers asked you to support automated analysis
of Golden Waveforms and produce a correlation figure of merit table, would
this BIRD enable you to do so?

Thanks for your consideration everyone!

Greg

Greg Edlund
Electrical Packaging
IBM Server Technology Development
3605 Hwy. 52 N, Dept. HDC
Rochester, MN 55901
[email-masked]

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

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

DATE SUBMITTED:                       April 16, 2001
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 two new keywords whose scope is global:
[Test Load] and [Test Data].  Under the [Test Data] keyword are two new
keywords whose scope is local:  [Rising Golden Waveform] and
[Falling Golden Waveform].

[Test Load] is a description of a test load network that may be referenced
by any Golden Waveform under the [Test Data] keyword.  [Test Data] is a
marker keyword that indicates the beginning of a group of Golden Waveforms.

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

STATEMENT OF THE RESOLVED SPECIFICATIONS:

|===========================================================================
==
|    Keywords:  [Test Data]
|    Required:  No
| Description:  Indicates the beginning of a pair of Golden Waveforms
|               and references the conditions under which they were
derived.
|               An IBIS file may contain any number of [Test Data] sections
|               representing different driver and load combinations.
|
|  Sub-Params:  Test_data_type, Driver_model, Test_load, Test_point,
|               T_period, T_meas, V_meas
|
| Usage Rules:  The name following the [Test Data] keyword is required.
|               It allows a tool to select which data to analyze.
|
|               The Test_data_type subparameter is required, and its value
|               must be either "single_ended" or "differential."
|
|               The Driver_model subparameter is required.  Its value
|               specifies the "device-under-test" and must be a valid
[Model]
|               name.
|
|               The Test_load subparameter is required and indicates which
|               [Test Load] was used to derive the Golden Waveforms. It
must
|               reference a valid [Test Load] name.
|
|               The Test_point subparameter is optional.  It indicates
which
|               node in the test load network the Golden Waveforms
represent.
|               The legal values for Test_point are "near" and "far."  If
|               Test_point is not specified, it defaults to "far."
|
|               The T_period subparameter is optional.  In the case that
the
|               Golden Waveforms represent more than one rising or falling
|               edge, the T_period subparameter tells the simulator the
|               period between rising or falling edges.  This subparameter
|               is useful when constructing a test load in which a
reflection
|               from the first edge hits the driver during the second edge.
|
|               The T_meas subparameter is optional.  It captures the time
|               at which the standard load crosses the threshold specified
|               in the component datasheet during a SPICE simulation.  This
|               subparameter is useful when correlating timing intervals
|               between SPICE and behavioral simulations.  It defines the
|               beginning of a timing interval.
|
|               The V_meas subparameter is optional and is also used to
|               perform timing interval correlation.  The end of a timing
|               interval is defined as the time when a Golden Waveform or
|               a behavioral waveform crosses V_meas.
|
|               A timing interval in a behavioral waveform begins when
|               the waveform crosses V_meas defined in the [Model] keyword
|               while driving C_ref and R_ref, i.e. the standard load
defined
|               in the component datasheet.  Note that there are two
|               DIFFERENT V_meas subparameters in IBIS:  one associated
with
|               [Model] and one associated with [Test Data].
|
|---------------------------------------------------------------------------
--
[Test Data] Data1
Test_data_type single_ended
Driver_model Buffer1
Test_load Load1
Test_point far
T_period = 10ns
| variable      typ             min             max
T_meas          1.0ns           0.5ns           1.5ns
V_meas          0.75V           0.75V           0.75V
|
|===========================================================================
==
|    Keywords:  [Rising Golden Waveform], [Falling Golden Waveform]
|    Required:  Yes (within the scope of [Test Data])
| Description:  Describes the shape of the rising and falling Golden
|               Waveforms of a given driver and a given [Test Load].
|               A model developer may use the [Rising Golden Waveform] and
|               [Falling Golden Waveform] keywords to document Golden
|               Waveforms whose purpose is to facilitate the correlation of
|               SPICE and behavioral simulations.
|
|  Sub-Params:  None.
|
| Usage Rules:  The process, temperature, and voltage conditions under
which
|               the Golden 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.
|
|---------------------------------------------------------------------------
--
|
[Rising Golden Waveform]
| 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 Golden Waveform]
| 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
|               under the [Test Data] keyword.  The Golden Waveform
|               tables access a given [Test Load] by the value of the
|               Test_load subparameter under the [Rising Golden Waveform]
|               and [Falling Golden Waveform] keywords.
|
|  Sub-Params:  Test_data_type, 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, V_term1, V_term2, Receiver_model, R_diff_near,
|               R_diff_far.
|
| Usage Rules:  The value of the Test_data_type subparameter must be either
|               "single_ended" or "differential."
|
|               The subparameters specify the electrical parameters
|               associated with a fixed generic test load.  The diagram
|               below describes the single_ended test load.
|
|               All subparameters except Test_data_type are optional.
|               If omitted, series elements are shorted and shunt elements
|               are opened by default.
|
|
|                                    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
|
|
|               If the Td subparameter is present, then the Zo subparameter
|               must also be present.  If the Td subparameter is not
present,
|               then the simulator must remove the transmission line from
|               the network and short the two nodes to which it was
|               connected.
|
|               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 is optional and indicates which, if any,
|               receiver is connected to the far end node. If not used, the
|               network defaults to no receiver.
|
|               If Test_load_type is differential, a the test load is a
|               pair of the above circuits.  If the R_diff_near
subparameter
|               is used, it is connected between the near nodes of the two
|               circuits.  If the R_diff_far subparameter is used, it is
|               connected between the near nodes of the two circuits.
|
|---------------------------------------------------------------------------
--
|
[Test Load] Load1
Test_load_type single_ended
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 Input1
| 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 Input1
|---------------------------------------------------------------------------
--

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

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.

Changes between BIRD 70 and BIRD 70.1:

 1. Moved the Golden Waveforms OUT of the [Model] scope and under the
    scope of a new keyword, [Test Data].

 2. Changed [Rising Waveform] to [Rising Golden Waveform].
    Changed [Falling Waveform] to [Falling Golden Waveform].

 3. Added subparameter Driver_model under [Rising Golden Waveform] and
    [Falling Golden Waveform].  This is necessary because the waveforms
    are now outside the scope of the [Model].

 4. Changed the subparameter Golden_test_load to Test_load.

 5. Added the V_meas subparameter to indicate where timing correlation
    measurements should begin and end.

 6. Added subparameters Test_data_type and Test_load_type to facilitate
    upward compatibility with future versions of IBIS.

 7. Removed Tline_present subparameter in favor of language explaining
    that the simulator should remove the Tline if Td is not present.

 8. Moved Driver_model, Test_load, V_meas under the scope of [Test Data].

 9. Added T_meas subparameter to facilitate timing correlation.

10. R_diff became R_diff_near and R_diff_far.

11. Added T_period subparameter to allow multi-cycle correlation in the
    case where a reflection hits the driver while it is switching.

BIRD 70.1 adds 205 lines of code to IBIS, of which 162 are comments.

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

ANY OTHER BACKGROUND INFORMATION:

See BIRD 69.1.

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