****************************************************************************** ****************************************************************************** BIRD ID#: 98.3 ISSUE TITLE: Gate Modulation Effect (table format) REQUESTER: Arpad Muranyi, Mentor Graphics Corp.; Antonio Girardi, Giacomo Bernardi, Roberto Izzi, STMicroelectronics; Bob Ross, Teraspeed Consulting Group DATE SUBMITTED: May 20,2005, March 9, 2007, July 31, 2007 DATE REVISED: October 10, 2007 DATE ACCEPTED BY IBIS OPEN FORUM: November 2, 2007 ****************************************************************************** ****************************************************************************** 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. | | 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 connected to 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 connected to 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, | the extra currents that are associated with them should be | removed from the [ISSO PD] and [ISSO PU] tables. The process | details are not discussed here, but need to be solved by the | modeler. Such details may depend upon the contents of the | [GND Clamp] and [POWER Clamp] tables and the | [GND Clamp Reference] and [POWER Clamp Reference] selections. | | 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. | | To describe the modulation coefficients, a reference algorithm | to generate an output response producing Vout(t) for a given | load including clamp currents that requires an Iout(t) is | shown in terms of pullup table currents Ipu(Vcc-Vout(t)) and | pulldown table currents Ipd(Vout(t)). | | | Vcc (or pullup reference typ/min/max value) | | | ___|___ | | | | | | | | PU | Kpu(t)*Ipu(Vcc-Vout(t)) | | | | | | | |_______| <----- Iout(t) | |____________ | ___|___ Vout(t) | | | | | | | | PD | Kpd(t)*Ipd(Vout(t)) | | | | | | | |_______| | | | | | GND (or pulldown reference typ/min/max value) | | | When the supplies are modulated during simulation, the | modulation coefficients Ksso_pu(Vtable_pu) and | Ksso_pd(Vtable_pd) modify the equations as shown: | | | Vcc (or pullup reference typ/min/max value) | | | ___|___ | | | | | | | | PU | Kpu(t)*Ipu(Vcc-Vout(t))*Ksso_pu(Vtable_pu) | | | | | | | |_______| <----- Vout(t) | |____________ | ___|___ Vout(t) | | | | | | | | PD | Kpd(t)*Ipd(Vout(t))*Ksso_pd(Vtable_pd) | | | | | | | |_______| | | | | | GND (or pulldown reference typ/min/max value) | | | The Vtable_pd and Vtable_pu values may change at each time | step. The Ksso_pd(Vtable_pd) and Ksso_pu(Vtable_pu) values | are derived from the dynamic reference voltage variation and | [ISSO PD] and [ISSO PU] table entries according to the | formulas below: | | Ksso_pd(Vtable_pd) = Isso_pd(Vtable_pd)/Isso_pd(0) | | Ksso_pu(Vtable_pu) = Isso_pu(Vtable_pu)/Isso_pu(0) | | Note that the extraction setup equates the currents for each | column at Vtable = 0 lines to the corresponding pulldown | and pullup table currents: | | Isso_pd(0) = Ipd(Vcc) | | Isso_pu(0) = Ipu(Vcc) | | where Vcc are the typ/min/max values for the corresponding | typ/min/max columns. | | For example, for a typ/min/max [Voltage Range] of 5.0V, 4.5V | and 5.5V, and with the negative reference set to GND, the | Isso_pu(0) and Isso_pu(0) values for typ/min/max should be | as equal to the column values as shown: | | typ min max | | Isso_pd(0) Ipd(5.0) Ipd(4.5) Ipd(5.5) | | Isso_pu(0) Ipu(5.0) Ipu(4.5) Ipu(5.5) | | With no modulation, Ksso_pd(0) = 1 and Ksso_pu(0) = 1. However, | if during simulation of the typical corner the Vcc voltage | drops from 5.0 to 4.7, then Vtable_pu = 5.0 - 4.7 = 0.3, and | Ksso_pu(0.3) is calculated. If at the same time the ground | reference voltage at the buffer increases to 0.2 V, then | Ksso_pd(0.2) is calculated. These two modulation factors are | used in the reference model calculations to account for gate | modulation effects associated with both output transistors. | | These modulation factors are updated at each time step. | | Note, the [ISSO PD] and [ISSO PU] 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. | | As a minor source of error, actual modulation effects may lag | slighty from simulated modulation effects due to internal | delays within the physical device. |----------------------------------------------------------------------------- | Assume [Voltage Range is s 1.8V (typ), 1.7V (min) and 1.95V (max). | | The table voltage entries are relative to the typ/min/max of the | corresponding reference voltage for each table. | [ISSO PD] | Relative to the [Pulldown Reference] voltage | | Voltage I(typ) I(min) I(max) | -1.8V 10.0m 7.0m 13.0m | . | . -0.5V 24.0m 18.0m 31.0m -0.2V 27.0m 20.0m 37.0m 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] | Relative to the [Pullup Reference] voltage) | | Voltage I(typ) I(min) I(max) | -1.8V -10.0m -9.0m -14.0m | . | . -0.6V -28.0m -19.0m -40.0m -0.4V -31.0m -22.0m -43.0m -0.2V -29.0m -21.0m -40.0m 0.0V -27.0m -19.0m -38.0m 0.2V -21.0m -14.0m -31.0m 0.4V -14.0m -9.0m -22.0m | . | . 1.8V 0.0m 0.0m 0.0m | |============================================================================= |*** 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. BIRD98.3 The Other Notes section was rewritten to add a reference model for the algorithm to show where the modulating coefficients are used. The section was written in terms of relative voltages from the rails in a consistent manner with the the usage rules. The following paragraphs in the Other Notes section were removed from the official specification but are presented below as algorithm discussion justification of the proposed method: | | 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. | The algorithm itself is not officially standardized, and the above discussion relates to a specific what of handling the table. All aspects of IBIS are subject to such range of accuracy discussion that should be in presentations and other documents. The original example was deleted and a replacement example is inserted to conform to relative voltages for the [ISSO PD] and [ISSO PU] tables and to have several entries centered around 0 V. Some of the numbers are artifical. The deleted example is shown below: [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 | ***************************************************************************** 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.3 was approved by the IBIS Open Forum during the November 2, 2007 teleconference. ******************************************************************************