[IBIS] IBIS BIRD98.2 - Gate Modulation Effect

From: Bob Ross <bob_at_.....>
Date: Tue Jul 31 2007 - 16:27:12 PDT
To All:

the attached BIRD98.2 is sent because it represents a substantial
reoganization of the prior BIRD98.1, some removal of unnecessary
or redundant material and some additional clarifications.  These
changes are based on suggestions from the authors.  See the Analysis
Path section for a list of changes.

So BIRD98.2 is issued to provide visibility of the substantial
changes to date for comment and input.  More work and updated
examples are still needed before BIRD98.X is in final form
and ready for a vote.

Bob
-- 
Bob Ross
Teraspeed Consulting Group LLC     Teraspeed Labs
121 North River Drive              13610 SW Harness Lane
Narragansett, RI 02882             Beaverton, OR 97008
401-284-1827                       503-430-1065
http://www.teraspeed.com           503-246-8048 Direct
bob@teraspeed.com

Teraspeed is a registered service mark of Teraspeed Consulting Group LLC

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


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

BIRD ID#:        BIRD98.2
ISSUE TITLE:     Gate Modulation Effect (table format)
REQUESTER:       Arpad Muranyi, Intel Corp.; Antonio Girardi, Giacomo Bernardi, 
                 Roberto Izzi, STMicroelectronics; Bob Ross, Teraspeed Consulting
                 Group
DATE SUBMITTED:  May 20,2005, March 9, 2007
DATE REVISED:    July 31, 2007
DATE ACCEPTED BY IBIS OPEN FORUM:  PENDING

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

STATEMENT OF THE ISSUE:

The I-V and V-T tables of IBIS models are extracted at fixed, ideal supply
voltage conditions. However, due to SSO noise, the actual drive strength
(and consequently the edge rate) may vary during transients depending on the
instantaneous value of the supply voltage.  This phenomena is usually called
the "gate modulation effect", which is not described by IBIS models. To
achieve more accurate switching waveforms, and power and ground supply
currents it would be desirable to include these effects in IBIS models.

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

STATEMENT OF THE RESOLVED SPECIFICATIONS:

Two new keywords, [ISSO_PD] and [ISSO_PU], will be added to the specification
to provide two tables of the effective saturation currents, for the pulldown 
and pullup stage respectively, measured with respect to the voltage value 
variation on the related reference supply node (the ground reference node for
the pulldown stage and the power reference node for the pullup stage). The 
information contained in the tables enables the simulators to calculate
modulation coefficients which may be used to modulate the original pullup and
pulldown currents when the instanteneous voltage on the power and ground nodes
changes from the nominal values at which the I-V tables of the [Model]s were
obtained. It has to be noted that the instantaneous voltage values are referred 
to an ideal ground as done for the nominal values.


|=============================================================================
|     Keyword:  [ISSO PD], [ISSO PU]
|    Required:  No
| Description:  The data points under the keyword [ISSO_PD] define the 
|               effective current of the pulldown structure of a buffer as a 
|               function of the voltage on the pulldown reference node (the 
|               ground node), whereas the points under the keyword [ISSO_PU]
|               define the effective current of the pullup structure as a 
|               function of the voltage on the pullup reference node (the power
|               node).
|
| Usage Rules:  The first column contains the voltage value at which the 
|               currents of the remaining three columns are obtained. The three
|               remaining columns contain the typical, minimum, and maximum 
|               effective current values to be defined below of pullup/pulldown
|               stage.
|             
|               All four columns are required under this keyword. 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 in any table.  Each table must
|               have at least 2, but not more than 100, rows.  
|
|               The [ISSO PD} table voltages are relative to the [Pulldown
|               Reference] typ/min/max values (usually ground).  The [ISSO PU}
|               table voltages are relative to the [Pullup Reference] typ/
|               min/max values (also usually the [Voltage Range] voltages.
|               In the case of the [ISSO PU] table the voltages follow the
|               same Vtable = Vcc - Vmeasured convention as the [Pullup]
|               table.
|              
|               Each of the tables are aligned with and span the typical
|               -Vcc to Vcc voltages.  So the 0 V value for the [ISSO PD]
|               corresponds to the [Pulldown Reference] typ/min/max values.
|               The 0 V value for the [ISSO PU] table corresponds to the
|               the [Pullup Reference] typ/min/max values.
|
|               If the [ISSO_PD] and [ISSO_PU] keywords are not present, the
|               effect of power supply variations on the I-V tables is not 
|               explicitly defined by the model.
|
|               The effective current table for the Isso_pd current is
|               extracted by the following process.  The buffer is set to
|               "logic zero".  A Vtable voltage source is inserted between the
|               [Pulldown Reference] node and the buffer as shown below.  This
|               Vtable voltage is swept form -Vcc (typical) to +Vcc (typical)
|               and is relative to the [Pulldown Reference] typ/min/max values
|               for the corresponding columns.  The output is offset by the
|               Vcc (typical) value as shown below.
|
|
|               Low State (logic zero)
|
|                  Vcc (or pullup reference typ/min/max value)
|                   |
|                ___|___
|               |       |
|               |       |
|               |  PU   |     
|               |       |
|               |       | Isso_pd (function of Vtable from -Vcc to Vcc)
|               |_______| <------  
|                   |____________
|                ___|___         Vcc or pullup reference typ/min/max value) 
|               |       |
|               |       |
|               |  PD   |
|               |       |
|               |       |
|               |_______|
|                   |
|               +   |              
|                 Vtable
|               -   |
|                   |    
|                  GND (or pulldown reference typ/min/max value)
|
|
|               The effective current table for the Isso_pu current is
|               extracted by the following process.  The buffer is set to
|               "logic one".  A Vtable voltage source is inserted between the
|               [Pullup Reference] node and the buffer as shown below.  This
|               Vtable voltage is swept form -Vcc (typical) to +Vcc (typical)
|               and is relative to the [Pullup Reference] typ/min/max values
|               for the corresponding columns.  The output is offset by the
|               Vcc (typical) value as shown below.
|
|
|               High State (logic one)
|
|                  Vcc (or pullup reference typ/min/max value)
|                   |
|               -   |
|                 Vtable
|               +   |
|                ___|___
|               |       |
|               |       |
|               |  PU   |
|               |       |
|               |       | Isso_pu (function of Vtable from -Vcc to Vcc)
|               |_______| <------ 
|                   |____________
|                ___|___         GND or pulldown reference typ/min/max value)
|               |       |
|               |       |
|               |  PD   |
|               |       |
|               |       |
|               |_______|
|                   |
|                   |    
|                  GND (or pulldown reference typ/min/max value)
|
|
|              For each of these extractions, the corresponding [Gnd Clamp]
|              and [Power Clamp] currents need to be removed.  Normally
|              these are negligible.  However, if on-die terminators exist or
|              but are referenced to the same [Pulldown Reference] and
|              [Pullup Reference] voltages as the buffer, then the extra
|              currents that flow into the corresponding clamp table
|              can be determined on a point-by-point basis from the
|              voltage drop for each clamp.
|
|              Currents are considered positive when their direction is into
|              the component.
|
|Other Notes:  Simulators can use such tables to calculate modulation 
|              coefficients to modulate the original pulldown and pullup
|              currents when a voltage variation on the pullup and pulldown
|              reference nodes is revealed during power and/or ground bounce, 
|              and/or SSO simulation events.
|
|              The effective current, at an arbitrary instantaneous voltage 
|              (Vinst) on the reference node can be calculated from a [Model]'s
|              I-V table obtained at a nominal supply voltage Vnom as:
|
|                   I_effective(Vinst) = k_ssn(Vinst) * I_model(Vnom) 
|
|              where k_ssn(Vinst) is the modulation coefficient (used internally
|              by the simulator's algorithms) which modulates the I-V table at
|              each iteration of the simulation, Vinst is the actual, 
|              instantaneous voltage value on the reference node, and Vnom is 
|              the corresponding nominal value of the voltage on the reference
|              node at which the I-V tables were generated for the [Model] 
|              ([Voltage Range], or [Pullup Reference] for the pullup I-V tables
|              and [Pulldown Reference] for the pulldown I-V tables).
|
|              Therefore, two coefficents are globally needed for including the 
|              "gate modulation effect" in IBIS model: one for modulating the
|              pulldown nominal current (Kssn_PD) and another for modulating
|              the pullup nominal current (Kssn_PU). 

|              Starting from the above relationship between the effective and 
|              the nominal current, the two coefficients are calculated as:
|
|             k_ssn_PD (Vinst_PD) = I_PD_effective(Vinst_PD)/I_PD_model(Vnom_PD)
|                
|             k_ssn_PU(Vinst_PU) = I_PU_effective(Vinst_PU)/I_PU_model(Vnom_PU)
|            
|              For example, if the typical pullup table of a 5 volt device has
|              a 100 mA data point at Vnom=5V on the pullup reference node, 
|              and the associated [ISSO PU] keyword has 100 mA at Vinst=5V and
|              90 mA at Vinst=4.5V, then the nominal pullup current will be 
|              scaled down by 10% at an instance during a simulation when the 
|              instantenous voltage value on the pullup reference node of the
|              model happens to be 4.5V.
|
|              As already mentioned above, the Vinst values must be referred to 
|              an ideal ground or, more precisely, to the same reference node 
|              used for [Pulldown Reference] and [Pullup Reference]. 
|
\              The assumption is that the pulldown/pullup current, obtained 
|              at nominal supply voltages, can be modulated by a coefficient 
|              to generate the effective current when a change occurs on the 
|              related reference supply node. 
|
|              Although the effective pullup and pulldown currents, and so 
|              the K_ssn coefficients, depend on Vgs and Vds, which require a
|              lot of tables to describe the different I(Vgs, Vds) MOS-like 
|              characteristics of both stages, this assumption is based on the
|              usage of only two tables. In fact, several analysis have showed 
|              that a good accuracy can be obtained by drawing the effective 
|              current I(Vgs, Vds) for different values of Vgs and only one 
|              fixed value of Vds, chosen in the saturation zone. A good 
|              choice may be Vds=VCC. Nevertheless, considering that the current 
|              in the saturation zone has a minor dependence from Vds, due to 
|              channel modulation effect. In critical cases, such effect may be 
|              averaged by changing the Vds voltage (for instance linearly)
|              within the saturation zone. 
|
|              This assumption may provide reasonably accurate results while
|              the operating points variations remain within the saturation 
|              region of the I-V tables, condition that is always verified 
|              when a bouncing occurs on the reference node of the stage under
|              transition. 
|
|              Nevertheless, during the bouncing noise evolution the operating
|              points tend to fall in the linear zore, where this assumption 
|              may be less accurate, but it does not impact drammatically the
|              accuracy of output transition.
|
|              In fact, it has been verified that the lower is the bouncing
|              magnitude, the lower is the error, which helps considering that
|              in the linear zone the current to be modulated and the bouncing
|              noise decrease.
|
|              Note, these keywords are designed for CMOS technology and may
|              not be appropriate for bipolar or ECL technologies.  A single
|              [ISSO PU] or ISSO PD] keyword table is appropriate for open
|              technologies such as Open_drain, Open_source, Open_sink, etc.
|
|** EXAMPLE NEEDS TO BE UPDATED: Delete Old Example
|**
|-----------------------------------------------------------------------------
[ISSO_PD]
|
|The [voltage range] is 1.8V (typ), 1.7V (min) and 1.95V (max)  
|
|  Voltage   I(typ)    I(min)    I(max) 
|
   -1.8V    10.0m      7.0m      13.0m
|    .
|    .
    0.0V     25.0m     19.0m     34.0m
    0.2V     18.0m     13.0m     26.0m   | ISSO_PD_min must match I(1.70V) min
    0.5V     10.0m      7.0m     16.0m   | ISSO_PD_typ must match I(1.80V) typ
    0.7V      5.0m      3.0m      9.0m   | ISSO_PD_max must match I(1.95V) max
    1.0V      1.0m      0.7m      3.0m   | in the corresponding I-V table
    6.0V     44.0m     33.0m     53.0m   | 
|    .
|    .
    1.8V      0.0m      0.0m      0.0m
|
|
[ISSO_PU]                                | Note: Vtable = Vcc - Vinst
| 
|  Voltage   I(typ)    I(min)    I(max) 
|
    0.0V     0.0m      0.0m      0.0m
|    .
|    .
    0.8V      2.0m       1.0m     4.0m   
    1.0V      5.0m       3.0m    10.0m   | ISSO_PU_min must match I(1.70V) min
    1.2V      9.0m       6.0m    15.0m   | ISSO_PU_typ must match I(1.80V) typ
    1.4V     14.0m       9.0m    22.0m   | ISSO_PU_max must match I(1.95V) max
    1.6V     21.0m      14.0m    31.0m   | in the corresponding I-V table
    1.8V     27.0m      19.0m    38.0m   | 
|    .
|    .
    3.6V     16.0m      13.0m    20.0m
|
|** End of Deleted Example
|**
|** Begin Replacement Example - To be filled in later
|**
|-----------------------------------------------------------------------------
[ISSO_PD]
|
|The [voltage range] is 1.8V (typ), 1.7V (min) and 1.95V (max)  
|
|  Voltage   I(typ)    I(min)    I(max) 
|
   -1.8V    10.0m      7.0m      13.0m
|    .
|    .

|  *** Some negative entries ??????  The offset statements are not needed

|  *** all the 0 V entries correspond to the typ/min/max rails
|
    0.0V     25.0m     19.0m     34.0m
    0.2V     18.0m     13.0m     26.0m
    0.5V     10.0m      7.0m     16.0m
    0.7V      5.0m      3.0m      9.0m
    1.0V      1.0m      0.7m      3.0m
|    .
|    .
    1.8V      0.0m      0.0m      0.0m
|
|
[ISSO_PU]                                  | Note: Vtable = Vcc - Vinst
| 
|  Voltage   I(typ)    I(min)    I(max) 
|

   -1.8V    ....... Some Negative V enteries corrsponding to 3.6 V absolute


    0.0V     0.0m      0.0m      0.0m
|    .
|    .
    0.8V      2.0m       1.0m     4.0m   
    1.0V      5.0m       3.0m    10.0m
    1.2V      9.0m       6.0m    15.0m
    1.4V     14.0m       9.0m    22.0m
    1.6V     21.0m      14.0m    31.0m
    1.8V     27.0m      19.0m    38.0m   | (these are really the 0 V entries)
|    .
|    .
|*** The 1.8 V corresponds to 0 V by the Vtable = Vcc-V rule for [ISSO_PU]
|
|
|=============================================================================

|*** End Replacement Example

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

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION

This proposal is based on I-V curve data obtained from actual lab and
simulation measurements. In the context of BIRD95, which attempts to refine
the power and ground bounce simulation capabilities of IBIS simulators, this
feature becomes very important, because the non-ideal ground and power 
supplies introduce significant deviations in the buffer's I-V curves, i.e.
drive strength. Omitting these I-V curve variations reduces the accuracy
of the SSO and power delivery simulations when the buffers are surrounded by
non ideal power networks.

BIRD98.2
The format is changed to clarify the table content
- All table voltages are relative to the typ/min/max voltage rail values of
  the corresponding table and are offsets from these values
- The Isso_pu table follows the voltage polarity reversal rule so that its
  entries actually align with the pullup table enteries directly (but under
  the condition that this is extracted with the opposite table held with Vcc
  across it.
- Current polarities clarified and context diagram added.
- The currents are extracted from the Output terminal rather than the
  GND and Power terminal to avoid dealing with the internal currents.
- The output termninal is now held constant, but this makes the clamp
  removal for on die terminations currents a point-by-point process.
- Note added regarding designed for CMOS technology including open
  configurations.
- Example needs to be changed.

Note, some more work is needed.

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

ANY OTHER BACKGROUND INFORMATION:

The BIRDxx is a variant of the BIRD98 to match the STMicroelectronics 
proposal to the "gate modulation effect". The algorithm behind this proposal
has been implemented and validated by the VHDL-AMS IBIS architecture, extending
the original code proposed by Arpad Muranyi.
Several benchmarking analysis between the actual IBIS model, the related SPICE
model and the extended VHDL-AMS IBIS implementation have revealed a very good 
performance of such proposal.  

Additional documentation:

IBIS Summit, January 16, 2007:
------------------------------
http://www.eda-stds.org/ibis/docs/BIRD98&ST_Proposal_Convergence.ppt
http://www.eda-stds.org/ibis/docs/IBIS_Gate_Modulation_ST_Proposal.pdf
 
IBIS Futures Subcommitte, July 8, 2005:
---------------------------------------
http://www.vhdl.org/pub/ibis/futures/ST_Vgs_Presentation.pdf
http://www.vhdl.org/pub/ibis/futures/ST_IBIS_Gate_Modulation_Effect.pdf

The BIRD98 was a variant of BIRD 97. It was based on feedback received from
Donald Telian, who suggested that the "Gate Modulation Effect" should be 
implemented using a table format instead of the equation proposed in BIRD 97.
The advantages and disadvantages of the table and equation format are too 
numerous to list here. Since the table format seems to be much easier from 
the perspective of the model maker, the BIRD98.0 was written to replace BIRD
97 by a "NO" vote.

Additional credits are due to Katja Koller and Bob Ross who were 
instrumental in writing and commenting on BIRD 97.

BIRD98.2

Material from European IBIS Summit presentation, slide 15 are used as the
basis for the added diagrams:

http://www.vhdl.org/pub/ibis/summits/apr07/girardi.pdf

However, the measurement point has been moved to the output terminal.

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


--------------------------------------------------------------------
|For help or to subscribe/unsubscribe, e-mail majordomo@eda-stds.org
|with the appropriate command message(s) in the body:
|
|  help
|  subscribe   ibis       <optional e-mail address, if different>
|  subscribe   ibis-users <optional e-mail address, if different>
|  unsubscribe ibis       <optional e-mail address, if different>
|  unsubscribe ibis-users <optional e-mail address, if different>
|
|or e-mail a request to ibis-request@eda-stds.org.
|
|IBIS reflector archives exist under:
|
|  http://www.eda-stds.org/pub/ibis/email_archive/ Recent
|  http://www.eda-stds.org/pub/ibis/users_archive/ Recent
|  http://www.eda-stds.org/pub/ibis/email/         E-mail since 1993
Received on Tue Jul 31 16:26:55 2007

This archive was generated by hypermail 2.1.8 : Tue Jul 31 2007 - 16:28:03 PDT