Subject: IBIS BIRD39 - SPECIFICATION ENHANCEMENT

From: [email-masked] ( Bob Ross)
Date: Fri, 11 Oct 96 11:03 PDT

To IBIS Committee:

BIRD39 is put forth as the Specification Committee recommendation.  BIRD39
supercedes BIRD38 by John Fitzpatrick on overshoot and dynamic overshoot,
some proposals by Ahmed Omer on dynamic noise immunity, and a proposal in
Egg12 by Bob Ross on min and max thresholds.

Comments are welcome.  

Bob Ross
Interconnectix, Inc.

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

BIRD ID#:      39
ISSUE TITLE:   SPECIFICATION ENHANCEMENT
REQUESTER:     John Fitzpatrick, Alcatel CIT
               Ahmed Omer, Motorola, Inc.
               Jon Powell, Quad Design
               Bob Ross, Interconnectix, Inc.
DATE SUBMITTED:                       10/11/96
DATE ACCEPTED BY IBIS OPEN FORUM:     Pending

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

STATEMENT OF THE ISSUE:

Additional optional specification parameters are needed for completeness and
useful extensions.

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

STATEMENT OF THE RESOLVED SPECIFICATIONS:

The optional [Model Spec] keyword is proposed to be associated with
a model.  Its purpose is to provide an extendable format to deal with
new specification.  Several parameters are contained in the proposal.

|==============================================================================
|    Keywords:  [Model Spec]
|    Required:  No
|  Sub-params:  Vinh, Vinl, Vinh+, Vinh-, Vinl+, Vinl-, Overshoot_high,
|               Overshoot_low, D_overshoot_high, D_overshoot_low,
|               D_overshoot_time, Pulse_high, Pulse_low, Pulse_time
|
|Description:   The [Model Spec] keyword defines four columns under which
|               specification subparameters are defined.  
|               
|               The following subparamters are defined:
|               Vinh               Input voltage threshold high
|               Vinl               Input voltage threshold low
|               Vinh+              Hysteresis threshold high max Vt+
|               Vinh-              Hysteresis threshold high min Vt+
|               Vinl+              Hysteresis threshold low max Vt-
|               Vinl-              Hysteresis threshold low min Vt-
|               Overshoot_high     Static overshoot high voltage
|               Overshoot_low      Static overshoot low voltage
|               D_overshoot_high   Dynamic overshoot high voltage
|               D_overshoot_low    Dynamic overshoot low voltage
|               D_overshoot_time   Dynamic overshoot time
|               Pulse_high         Pulse immunity high voltage
|               Pulse_low          Pulse immunity low voltage
|               Pulse_time         Pulse immunity time
|
| Usage Rules:  [Model Spec] must follow all other subparameters under the 
|               [Model] keyword.
|
|               For each subparameter contained in the first column, the 
|               remaining three hold its typical, minimum and maximum values.
|               The entries of typical, minimum and maximum be must be placed 
|               on a single line and must be separated by at least one white
|               space or tab or tab character.  All four columns are required
|               under the [Model Spec] keyword.  However, data is required
|               only in the typical column.  If minimum and/or maximum values
|               are not available, the reserved word "NA" must be used
|               indicating the typical value by default.
|
|               The minimum and maximum values are used for specifications
|               subparameter values that may track the min and max operation
|               conditions of the [Model].  Usually it is related to the
|               Voltage range settings.
|
|               Unless noted below, each subparameter does not require having
|               any other subparameter.
|      
|               Vinh, Vinl rules: 
|               The threshold subparameter lines
|               provide additional min and max column values, if needed.
|               The typ column values are still required and would be
|               expected to override the Vinh and Vinl subparameter values
|               specified elsewhere.  Note: the syntax rule that require
|               inserting Vinh and Vinl under models remains unchanged
|               even if the values are defined under the [Model Spec]
|               keyword.
|
|               To mimic a hysteresis effect, the values of Vinh and Vinl may
|               interchanged such that the Vinl value is larger than the Vinh
|               value.  However, simulators may process this information
|               differently or report an error.
|
|               Vinh+, Vinh-, Vinl+, Vinl- rules:
|               The four hysteresis subparmeters must all be defined before
|               the hysteresis threshold rules become effective.  Otherwise
|               the standard threshold subparameters remain in effect.  The
|               hysteresis thresholds shall be at the Vinh+ and Vinh- values
|               for a low-to-high transition, and at the Vinl+ and Vinl-
|               values for a high-to-low transition.
|
|               Overshoot_high, Overshoot_low rules:
|               The static overshoot sub-parameters provide the voltage values
|               for which the component is no longer guaranteed to function
|               correctly.
|
|               D_overshoot_high, D_overshoot_low, D_overshoot_time rules:
|               The dynamic overshoot values provide a time window during
|               which the the overshoot may exceed the static overshoot limits
|               but be below the dynamic overshoot limits.  D_overshoot_time is
|               required for dynamic overshoot testing.  In addition, if
|               D_overshoot_high is specified, then Overshoot_high is necessary
|               for testing beyond the static limit.  Similarly, if
|               D_overshoot_low is specified, then Overshoot_low is necessary
|               for testing beyond the static limit.
|                
|               Pulse_high, Pulse_low, Pulse_time rules:
|               The pulse immunity values provide a time window during which
|               a rising pulse may exceed the nearest threshold value but
|               be below the pulse voltage value and still not cause the
|               input to switch.  Pulse_time is required for pulse immunity
|               testing.  A rising response is tested only if Pulse_high is
|               specified.  Similarly, a falling response is tested only if
|               Pulse_low is specified.  The rising response may exceed the
|               Vinl value, but remain below the Pulse_high value.  Similarily,
|               the falling response drop below the Vinh value, but remain
|               above the Pulse_low value.  In either case the input is
|               regarded as immune to switching if the the responses are 
|               within these extended windows.  If the hysteresis thresholds
|               are defined, then the rising response shall use Vinh- as the
|               reference voltage, and the falling response shall use Vinl+
|               as the reference voltage.
|
|------------------------------------------------------------------------------
[Model Spec]
|   Subparameter          typ        min        max
|
| Thresholds
|
Vinh                      3.5        3.15       3.85    | 70% of Vcc
Vinl                      1.5        1.35       1.65    | 30% of Vcc
|
| Vinh                    3.835       3.335     4.335   | Offset from Vcc
| Vinl                    3.525       3.025     4.025   | for PECL
|
| Hysteresis
|
Vinh+                     2.0        NA         NA      | Overrides the
Vinh-                     1.6        NA         NA      | thresholds
Vinl+                     1.1        NA         NA 
Vinl-                     0.6        NA         NA      | All 4 are required
|
| Overshoot
|
Overshoot_high            5.5        5.0        6.0     | Static overshoot
Overshoot_low            -0.5        NA         NA
D_overshoot_high          6.0        5.5        6.5     | Dynamic overshoot
D_overshoot_low          -1.0       -1.0       -1.0     | requires
                                                        | D_overshoot_time 
D_overshoot_time          20n        20n        20n     | & static overshoot
|
| Pulse Immunity
|
Pulse_high                3V         NA         NA      | Pulse immunity
Pulse_low                 0          NA         NA      | requires
Pulse_time                3n         NA         NA      | Pulse_time
|
|==============================================================================

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

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

BIRD39 is introduced to assist the model provider, model user and EDA tool
provider.

The model provider provides better models:

  - Improve specification threshold details for CMOS and other technologies
  - Allow hysteresis inputs to be modeled

The model user can do better analysis:

  - Work with dynamic overshoot, a parameter not usually specified in
    datasheets
  - Work with pulse immunity

The EDA tool provider has some clearly defined parameters for more expedient
tool development:

  - Provide an easy to parse structure
  - Provide an evolution path for future extensions

Providing a consistent extension format appears valuable, even if some
parameters do not fit exactly.  It may overspecify most parameters.

The min/typ/max format was chosen over explicit definitions such as:

  Vinh_min = <min_column_value>
  Vinl_max = <max_column_value>

Each additional subparameter would then require 3 names.

Vinl and Vinh for typical values are redundant.  The [Model Spec] 
subparameters are chosen to override the regular [Model] Subparameter because
it is presumed that specification subparameter was purposefully chosen an
may give more detail.  The [Model] Vinh and Vinl remain required to
support processing of files in simulators which support portions, but not
all of Version 3.X.

The following diagram shows how the hysteresis subparameters are defined:

         ^
     O   |              +-------+----<----+--------+------------
     U   |              !       !         !        !
     T   |              !       !         !        !
     P   |              !       !         !        !
     U   |              !       !         !        !
     T   |              !       !         !        !
         |              v       v         ^        ^
     V   |              !       !         !        !
     O   |              !       !         !        !
     L   |              !       !         !        !
     T   |              !       !         !        !
     T   |              !       !         !        !
     A   |              !       !         !        !
     G   |              !       !         !        !
     E   |   -----------+-------+---->----+--------+
         |_____________________________________________________________> 
                     Vinl-   Vinl+     Vinh-     Vinh+
                           INPUT VOLTAGE

Rather than getting into a complicated set of mixed rules, all four
hysteresis subparameters were chosen to be required for hysteresis checking
to take effect.

The Overshoot_high and Overshoot_low values are the same subparameters as
in RAIL.  These are static.

The dynamic overshoot, as introduced by BIRD38 can be represented by 
tables.  However, such information is readily available for more than
a handful of parts.  Therefore a simpler representation was chosen.  This
would work with the PCI specification.  There are defined test setups for
dynamic overshoot - often a large voltage such as 5 V above the rail into
50 ohms connected to an input.  Since the input typically has clamping, the
actual overshoot value may depend on the clamp I/V characteristics.  Thus
the specification limits in the table may be voltages that arise with the
clamp in place.  The dynamic overshoot is a maximum voltage over which
voltage may exceed the static overshoot limit for a maximum period of time.
Thus no dynamic overshoot is specified unless time is specified and the 
two high limits (Overshoot_high and D_overshoot_high) or the two low limits
(Overshoot_low and D_overshoot_low) are both in each case specified.  Otherwise,
no dynamic overshoot testing is done.  It is too complicated to create
a set of default scenerios.

After long discussion, by the specification subcommittee, the pulse immunity
specification was defined similar to the dynamic overshoot.  The data appears 
mostly available from typical curves given as general information.  The pulse
immunity parameters can be estimated from the typical values.  In fact, the
designer has great latitude to enter a set of pulse and amplitude values
according to how much immunity is to be tolerated.  The reference thresholds
from which immunity is calculated is chosen to be the limit input thresholds.

Both the dynamic overshoot and pulse immunity data are not true specification
limits.  The data may appear as a pulse amplitude versus pulse duration
graph for a typical device.  Therefore the user may be the primary source
of this data based on how conservative the user chooses.  Because the data
is not in the format of a true specification, it does not seem reasonable
to provide a format for tabular data where there is no reliable source of
such data.  The pulse immunity data appears to be based on a typical threshold
device.
			     
******************************************************************************

ANY OTHER BACKGROUND INFORMATION:

This proposal replaces BIRD38 and expands the Specification areas regarding
Overshoot.  It also replaces Egg12 regarding typical, minimum, maximum 
format options for threshold specifications.

The Specification committee consisted of Ahmed Omer, John Fitzpatrick, Jon
Powell, and Bob Ross.

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