****************************************************************************** ****************************************************************************** Buffer Issue Resolution Document (BIRD) BIRD ID#: 79 ISSUE TITLE: Non-linear Buffer Impedance (extension to C_comp) REQUESTOR: Luca Giacotto (Alstom Transport) & Arpad Muranyi (Intel Corp.) DATE SUBMITTED: November 6, 2002 DATE REVISED: DATE ACCEPTED BY IBIS OPEN FORUM: Rejected March 28, 2003 ****************************************************************************** ****************************************************************************** STATEMENT OF THE ISSUE: This BIRD aims to improve the modeling of the reactive component of the buffer impedance, currently represented by keywords C_comp and C_comp_*. (C_comp_* was introduced in BIRD 65.2 and is now part of the IBIS 4.0 specification). This extension models the non-linear (voltage dependent), frequency-dependent and state-dependent impedance behaviour of real buffers (as represented by the transistor-level model). These improvements were already foreseen in the bottom comments of BIRD 65.2. ****************************************************************************** STATEMENT OF THE RESOLVED SPECIFICATIONS: A new optional keyword [PZ Impedance] (abbreviation for "Pole/Zero Impedance") shall be introduced, with 24 possible subparameters. The new keyword should be placed in the Model section, after the [Model] keyword. |============================================================================= | Keyword: [PZ Impedance] | Required: No | Description: Used to enhance the modeling of the buffer impedance, beyond | the possibilities given by the C_comp* subparameters in the | [Model] keyword. It allows to account for the | a) non-linear, | b) frequency-dependent, | c) state-dependent | behavior of the buffer impedance. | Sub-Params: Pole_high_pullup, Zero_high_pullup, Pole_high_pulldown, | Zero_high_pulldown, Pole_high_gndclamp, Zero_high_gndclamp, | Pole_high_pwrclamp, Zero_high_pwrclamp, | Pole_low_pullup, Zero_low_pullup, Pole_low_pulldown, | Zero_low_pulldown, Pole_low_gndclamp, Zero_low_gndclamp, | Pole_low_pwrclamp, Zero_low_pwrclamp, | Pole_in_pullup, Zero_in_pullup, Pole_in_pulldown, | Zero_in_pulldown, Pole_in_gndclamp, Zero_in_gndclamp, | Pole_in_pwrclamp, Zero_in_pwrclamp. | Usage Rules: These subparameters define the pole/zero behavior of the | buffer impedance at various die-node voltage values, and in | each of the three basic states (whichever applicable to the | specific buffer type): "output high", "output low" and input". | The four impedances in each state should be thought as a | reactive network shunted to the corresponding I-V table. | Moreover, the pole/zero data account for the presence of the | I-V tables. | | Each of these subparameters, when present, is followed by a | F-V table. The first column | contains the voltage value at the die node, and the three | remaining columns hold the typical, minimum, and maximum | frequency values in [Hz]. The four entries, Voltage, req(typ), | Freq(min), and Freq(max) must be placed on a single line and | must be separated by at least one white space. | | All four columns are required under these subparameters. If | typical, minimum and/or maximum frequency values are not | available, the reserved word "NA" must be used. | | Other Notes: A typical [PZ Impedance] description could contain two sets of | Pole* tables and one set of Zero* tables. Or, just one set of | Pole* tables. |----------------------------------------------------------------------------- [PZ Impedance] |"HIGH-state": | *) a 2nd order non-linear impedance for the pullup element | *) a 1st order non-linear impedance for the pulldown element |pole_high_pullup |this is pole "1" in the high-state, related to the pullup |element | [Volt] typ [Hz] min [Hz] max [Hz] 0V 6.37E7 NA NA 1V 5.36E7 NA NA 2V 1.15E8 NA NA | ... ... ... ... 5V 2.53E8 NA NA | zero_high_pullup |this is the zero in the high-state, related to the pullup |element 0V 3.00E8 NA NA 1V 2.83E7 NA NA | ... ... ... ... 5V 2.56E8 NA NA | pole_high_pullup |this is pole "2" in the high-state, related to the pullup |element 0V 9.28E8 NA NA | ... ... ... ... | pole_high_pulldown |this is the pole in the high-state related to the pulldown |element 0V 5.37E7 NA NA 1V 5.22E7 NA NA 2V 9.05E7 NA NA | ... ... ... ... 5V 2.03E8 NA NA | |"LOW-state": |(1st order NL impedance for both the pullup and pulldown elements) pole_low_pullup |this is the pole in the low-state related to the pullup 0V 2.00E8 NA NA | ... ... ... ... | pole_low_pulldown |this is the pole in the high-state related to the pulldown 0V 5.25E9 NA NA | ... ... ... ... 5V 4.24E8 NA NA | |============================================================================= ****************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION: The fixed valued (constant) C_comp or C_comp* subparameters don't have the ability to describe the voltage-dependent (i.e., non-linear) and state-dependent behaviour of the die capacitance. Moreover, there are buffers showing an impedance that is also strongly frequency-dependent. This BIRD intend to extend the concept of "die-capacitance" to "die-impedance", making the necessary data available for a simulator to implement it. The improvement in the impedance modeling that can be obtained with the adoption of a second order non-linear "die-impedance" has been demonstrated in the presentation at the June'02 IBIS Summit by Luca Giacotto (the URL is http://www.eda.org/pub/ibis/summits/jun02/giacotto.pdf). Formulas and a modeling method can be found in the presentation too. To meet the needs of power delivery or supply noise simulations, the non-linear network from the above presentation has been splitted into four networks, following the idea of BIRD 65.2. How to arrange the data in IBIS Three options were considered for arranging the new data in the specification: 1) A new keyword with 24 subparameters (as in this version of the BIRD). 2) 6 new subparameters in each of the I-V table keywords (pole_high, zero_high, pole_low, zero_low, pole_in, zero_in). 3) Adding the subparameters directly in the [Model] keyword, beside the basic C_comp* subparameters. Actually, this option has been avoided because of the high number of subparameters (24) needed to cover all the types of buffers. ****************************************************************************** ANY OTHER BACKGROUND INFORMATION: Documents related to this BIRD (available on the IBIS website): - presentations at the Paris (March 2002) and New Orleans (June 2002) IBIS summits; - BIRD 65.2; - Arpad Muranyi's presentation at the June 2001 IBIS summit, in which the problem of the non-linear impedance modeling was first brought up (pp. 10-13). ******************************************************************************