BIRD42 Modeling Current Waveforms

From: Bob Ross <bob@icx.com>
Date: Fri May 16 1997 - 18:07:00 PDT

To IBIS Committee:

Based on the discussions at the May 9, 1997 IBIS Meeting I am
issuing BIRD42. Kumar and I may not agree yet entirely on the
format, but I feel it is important to get the proposal on the
table to raise any questions and comments.

The data in the examples is taken from a Spice extraction of a
real device. However, I am suspicious of the initial (0.000nS)
current values which may be wrong before the first time step.

How this data is to be used needs to be discussed.

Bob Ross
Interconnectix

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

BIRD ID#: 42
ISSUE TITLE: Modeling Current Waveforms
REQUESTER: C. Kumar, Cadence, Bob Ross, Interconnectix
DATE SUBMITTED: May 16, 1997
DATE ACCEPTED BY IBIS OPEN FORUM: Pending

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

STATEMENT OF THE ISSUE:

Current into the power and ground rails are needed to give a more accurate
analysis for ground and power bounce analysis associated with simutaneous
switching.
 
******************************************************************************

STATEMENT OF THE RESOLVED SPECIFICATIONS:

Four current Waveform tables in sync. with [Rising Waveform] and
[Falling Waveform] are added.

Also some of the data associated with [Rising Waveform] and [Falling Waveform]
is modified to reflect a real situation. The existing data in the
specification was not realistic and gave incorrect guidance.

The waveform tables in the examples were generated from a real sample.
(I am suspicious of the 0.000nS current values. I think something is
lost in the initial Spice time step.)

Replace this section:

|==============================================================================
| 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
| 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
| subparameters. 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. The data in the waveform
| table is taken with the effects of the C_comp parameter
| included.
|
| 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. Each
| table must contain at least two entries. Thus, numerical
| values are required for the first and last entries of any
| column containing numerical data.
|
| 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' subparameters specify the loading
| conditions under which the waveform is taken. The R_dut,
| C_dut, and L_dut subparameters 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 |---@@@@@--/\/\/\--o-----|--@@@@---o---/\/\/\----- V_fixture
| |_________| | | |
| | | |
| | | |
| C_dut === | === C_fixture
| | | |
| | | |
| GND | GND
|
| Only the R_fixture and V_fixture subparameters are
| required, the rest of the subparameters are optional.
| If a subparameter is not used, its value defaults to
| zero. The subparameters must appear in the text after
| the keyword and before the first row of the waveform
| table.
|
| V_fixture defines the voltage for typ, min, and max
| supply conditions. However, when the fixture voltage
| is related to the power supply voltages, then the
| subparameters V_fixture_min and V_fixture_max can
| be used to further specify the fixture voltage for
| min and max supply voltages.
|------------------------------------------------------------------------------
[Rising Waveform]
R_fixture = 500
V_fixture = 5.0
V_fixture_min = 4.5 |Note, R_fixture is connected to Vcc
V_fixture_max = 5.5 |Specified, but not used in this example
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
|

Insert this new [Rising Waveform] and [Fallling Waveform] section and new
examples and text changes noted by "|*" lines. Add the new keyword
section and examples.

|==============================================================================
| 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
| 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
| subparameters. 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. The data in the waveform
| table is taken with the effects of the C_comp parameter
| included.
|
| 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. Each
| table must contain at least two entries. Thus, numerical
| values are required for the first and last entries of any
| column containing numerical data.
|
| 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' subparameters specify the loading
| conditions under which the waveform is taken. The R_dut,
| C_dut, and L_dut subparameters 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 |---@@@@@--/\/\/\--o-----|--@@@@---o---/\/\/\----- V_fixture
| |_________| | | |
| | | |
| | | |
| C_dut === | === C_fixture
| | | |
| | | |
| GND | GND
|
|* NOTE: The use of L_dut, R_dut, and C_dut is strongly
|* discouraged in developing Waveform data from Simulation
|* models. Some simulators may ignore these parameters
|* because they may introduce numerical time constant
|* artifacts.
|*
| Only the R_fixture and V_fixture subparameters are
| required, the rest of the subparameters are optional.
| If a subparameter is not used, its value defaults to
| zero. The subparameters must appear in the text after
| the keyword and before the first row of the waveform
| table.
|
| V_fixture defines the voltage for typ, min, and max
| supply conditions. However, when the fixture voltage
| is related to the power supply voltages, then the
| subparameters V_fixture_min and V_fixture_max can
| be used to further specify the fixture voltage for
| min and max supply voltages.
|*
|* NOTE: Test fixtures with R_fixture and V_fixture,
|* V_fixture_min, and V_fixture_max only are strongly
|* encouraged because they provide the BEST set of data
|* needed to produce the best model for simulation. C_fixture
|* and L_fixture can be used to produce waveforms which
|* describe the
|------------------------------------------------------------------------------
[Rising Waveform]
R_fixture = 50
V_fixture = 0.0
| C_fixture = 50p | These are shown, but are generally not recommended
| L_fixture = 2n
| C_dut = 7p
| R_dut = 1m
| L_dut = 1n
| 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]
R_fixture = 50
V_fixture = 5.5
V_fixture_min = 4.5
V_fixture_max = 5.5
| 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: [GND Rising Waveform], [GND Falling Waveform],
| [POWER Rising Waveform], [GND Falling Waveform]
| Required: No
| Description: Describes the shape of the rising and falling edge
| current waveforms of a GND and POWER nodes, respectively.
| Sub-Params: R_fixture, V_fixture, V_fixture_min, V_fixture_max,
| C_fixture, L_fixture
| Usage Rules: Each [GND Rising Waveform] and [GND Falling Waveform],
| [POWER Rising Waveform] and [POWER Falling Waveform]
| keyword
| introduces a table of time vs. current points that
| describe the shape of a current waveform. These
| time/current points are taken under the conditions
| specified in the R/L/C/V_fixture
| subparameters. The table itself consists of
| one column of time points, then three columns of
| current 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.
|
| A waveform table must include the entire waveform;
| i.e., the first entry (or entries) in a current column
| must be the DC current before switching
| and the last entry (or entries) of the column must be
| the final DC value after switching. Each
| table must contain at least two entries. Thus, numerical
| values are required for the first and last entries of any
| column containing numerical data.
|
| 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' subparameters specify the loading
| conditions under which the waveform is taken. The R_dut,
| C_dut, and L_dut subparameters 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.
|
| NOTE: For computation purposes, the effect of the
| L_dut, R_dut, and C_dut subparameters will be ignored.
| It is strongly recommmended that they not be used, if
| possible. Furthermore, it is strongly recommended that
| the 'fixture' not use any L_fixture or C_fixture
| component. L_dut, R_dut, and C_dut are not permitted
| for the [GND Rising Waveform], [POWER Rising Waveform],
| [GND Falling Waveform], and [POWER Falling Waveform]
| keywords.
|
| The current into the ground is shown as I_GND, and the
| current into the POWER node is shown as I_POWER.
|
| Each [GND Rising Waveform] and [POWER Rising Waveform]
| tables must correlate with an existing [Rising Waveform]
| table. The correlation is done by specifying identical
| fixture subparameter values: R_fixture, V_fixture,
| V_fixture_min, V_fixture_max, L_fixture, and C_fixture.
| Similarly [GND Falling Waveform] and [POWER Falling
| Waveform] must correlate with an existing [Falling
| Waveform] table.
|
| Because of the assumption that the currents into the
| GND, POWER, and output nodes must sum to zero, only GND
| Waveform or POWER waveform tables are needed. The output
| node current is available from the test fixture and
| output waveform data. However, both GND and POWER
| waveform tables are permitted. Similarly, an Open model
| device such as Open_drain or and ECL device such as
| Output_ECL may not need any GND or POWER waveform tables.
| However, each or both are still permitted. It is
| simulator dependent which set of data takes precedence
| in case of redundant information.
|
|
| POWER
| |
| | |
| I_POWER | |
| v | PACKAGE | TEST FIXTURE
| ____|____ |
| | DUT | L_dut R_dut | L_fixture R_fixture
| | die |---@@@@@--/\/\/\--o-----|--@@@@---o---/\/\/\----- V_fixture
| |_________| | | |
| | | | |
| ^ | | | |
| I_GND | | C_dut === | === C_fixture
| | | | | |
| | | | |
| GND GND | GND
|
| Only the R_fixture and V_fixture subparameters are
| required, the rest of the subparameters are optional.
| If a subparameter is not used, its value defaults to
| zero. The subparameters must appear in the text after
| the keyword and before the first row of the waveform
| table.
|
| V_fixture defines the voltage for typ, min, and max
| supply conditions. However, when the fixture voltage
| is related to the power supply voltages, then the
| subparameters V_fixture_min and V_fixture_max can
| be used to further specify the fixture voltage for
| min and max supply voltages.
|------------------------------------------------------------------------------
[GND Rising Waveform]
R_fixture = 50
V_fixture = 0.0
| Time I(typ) I(min) I(max)
   0.0000S -338.4000uA -188.6000uA -635.9000uA
   0.2000nS -2.0160mA -123.4000uA -6.2360mA
   0.4000nS -2.3650mA -3.5670mA -11.0600mA
   0.6000nS -7.2070mA -5.1150mA -12.0600mA
   0.8000nS -7.4570mA -4.9160mA -17.1600mA
   1.0000nS -8.2950mA -3.9180mA -19.7900mA
   1.2000nS -9.5720mA -3.5720mA -8.2330mA
   1.4000nS -10.5400mA -3.5850mA -2.9600mA
   1.6000nS -7.8290mA -3.8150mA -1.4140mA
   1.8000nS -4.6260mA -3.9860mA -1.1420mA
   2.0000nS -2.3870mA -4.1520mA -1.1250mA
| ...
  10.0000nS -388.4000uA -135.3000uA -964.2000uA
|
[POWER Rising Waveform]
R_fixture = 50
V_fixture = 0.0
| Time I(typ) I(min) I(max)
   0.0000S 842.5000uA 493.0000uA 1.5070mA
   0.2000nS 6.6700mA 3.2490mA 9.7430mA
   0.4000nS 12.9000mA 4.6150mA 26.3100mA
   0.6000nS 25.9800mA 11.3000mA 42.5700mA
   0.8000nS 35.3200mA 19.0900mA 58.4600mA
   1.0000nS 43.2400mA 24.2100mA 70.4200mA
   1.2000nS 49.7700mA 28.9700mA 64.7800mA
   1.4000nS 55.3400mA 32.9800mA 64.7600mA
   1.6000nS 56.4000mA 36.3800mA 64.3900mA
   1.8000nS 56.3100mA 39.1500mA 64.4500mA
   2.0000nS 56.2000mA 41.3300mA 64.5700mA
| ...
  10.0000nS 55.9500mA 47.3500mA 64.3200mA
|
[GND Falling Waveform]
R_fixture = 50
V_fixture = 5.5
V_fixture_min = 4.5
V_fixture_max = 5.5
| Time I(typ) I(min) I(max)
   0.0000S -157.4000uA -86.9600uA -291.0000uA
   0.2000nS -34.6000mA -17.1000mA -48.6100mA
   0.4000nS -41.5400mA -20.8600mA -70.7200mA
   0.6000nS -60.5500mA -30.4800mA -96.8400mA
   0.8000nS -77.7500mA -41.5500mA -107.4000mA
   1.0000nS -88.1500mA -52.0000mA -115.5000mA
   1.2000nS -92.9400mA -60.9400mA -110.6000mA
   1.4000nS -96.9700mA -68.0800mA -107.1000mA
   1.6000nS -98.1100mA -72.7800mA -106.4000mA
   1.8000nS -96.5100mA -75.9600mA -106.0000mA
   2.0000nS -95.1600mA -77.7100mA -105.9000mA
| ...
  10.0000nS -94.3700mA -81.4700mA -106.3000mA
[POWER Falling Waveform]
R_fixture = 50
V_fixture = 5.5
V_fixture_min = 4.5
V_fixture_max = 5.5
| Time I(typ) I(min) I(max)
   0.0000S 157.4000uA 86.8500uA 291.0000uA
   0.2000nS 17.4600mA 10.0440mA 22.5200mA
   0.4000nS 11.7300mA 8.2320mA 18.0200mA
   0.6000nS 11.0800mA 6.8680mA 15.2900mA
   0.8000nS 10.1700mA 6.2700mA 11.1900mA
   1.0000nS 8.3370mA 6.2160mA 14.7000mA
   1.2000nS 6.2100mA 5.7840mA 9.4580mA
   1.4000nS 6.9920mA 5.3040mA 5.7280mA
   1.6000nS 8.2280mA 4.6130mA 4.8490mA
   1.8000nS 5.5850mA 3.8730mA 4.3310mA
   2.0000nS 4.0180mA 3.2190mA 4.1990mA
| ...
  10.0000nS 2.2710mA 1.3390mA 3.9900mA
|
******************************************************************************

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

Some additonal clarification information is needed in the original [Rising
Waveform] and [Falling Waveform] keyword. A better example needs to
be supplied because the existing example illustrates some bad practices.

The current waveform specification is needed to better define the
currents in the GND and POWER nodes during switching. Currently the
allocation of currents into these nodes is simulator-algorithm dependent.
There is no information regarding paths directly from POWER to GND as
might occur in a make-before-break transition implementation that exists
in some CMOS devices.

The L_dut, R_dut, and C_dut fixture parameters are deleted from the
new keywords. While actual package electrical characteristic may exist,
there effects are negligible for current waveforms. Moreover, this
level of detail has proven in many case to actually reduce accuracy in
simulation because of numerical time constant considerations.

Suggestions encouraging resistive-only fixture loads are embedded in this
proposal to encourage generating data that is most suitable for developing
models that may be used by most simulators. The new examples reflect this
practice.

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

ANY OTHER BACKGROUND INFORMATION:

This proposal is based on discussion initiated by C. Kumar at the IBIS
Open Forum Meeting on May 9, 1997

 
Received on Fri May 16 18:08:30 1997

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