****************************************************************************** ****************************************************************************** BIRD ID#: 133.1 ISSUE TITLE: Model Corner C_comp REQUESTOR: Bob Ross, Teraspeed Consulting Group DATE SUBMITTED: May 25, 2011 DATE REVISED: January 6, 2012 DATE ACCEPTED BY IBIS OPEN FORUM: January 6, 2012 ****************************************************************************** ****************************************************************************** STATEMENT OF THE ISSUE: C_comp typ/min/max entries are currently ordered by their magnitude values. However, it is desirable to offer C_comp typ/min/max entries within a model aligned to the process/temperature/voltage corners similar to all the other entries scoped by a [Model] keyword. This allows direct correlation with extracted model parameters from SPICE or from measurement. An optional keyword is proposed to collect existing and possible future C_comp-based entries, that would override any existing entry. ****************************************************************************** STATEMENT OF THE RESOLVED SPECIFICATIONS: A new keyword [C Comp Corner] is positioned after the [External Reference]. In the tree diagram under [Model] and after [External Reference], add: | |-- [Model] Model_type, Polarity, Enable, | | ------- Vinl, Vinh, C_comp, C_comp_pullup, | | | C_comp_pulldown, | | | C_comp_power_clamp, | | | C_comp_gnd_clamp | | | Vmeas, Cref, Rref, Vref | | | Rref_diff, Cref_diff | | | (omitted entries) | | |-- [GND Clamp Reference] | | |-- [External Reference] |* | |-- [C Comp Corner] C_comp, C_comp_pullup, |* | | C_comp_pulldown, |* | | C_comp_power_clamp, |* | | C_comp_gnd_clamp | | |-- [TTgnd] | | |-- [TTpower] | | |-- [Pulldown] | | |-- [Pullup] (etc.) After the keyword [External Reference] add: | |============================================================================= | Keyword: [C Comp Corner] | Required: No | Description: Used to define C_comp values associated with the typ/min/max | corner | Sub-Params: C_comp, C_comp_pullup, C_comp_pulldown, C_comp_power_clamp, | C_comp_gnd_clamp | Usage Rules: If [C Comp Corner] is present, its value or values override |** any other C_comp* representations. The entries are values | associated with each of the typ/min/max corners rather than | entered by magnitude as with the other C_comp subparameters. | | The C_comp subparameter under [C Comp Corner] is required only | when C_comp_pullup, | C_comp_pulldown, C_comp_power_clamp, and C_comp_gnd_clamp are | not present. If the C_comp subparameter is not present, at | least one of the C_comp_pullup, C_comp_pulldown, | C_comp_power_clamp, or C_comp_gnd_clamp subparameters is | required. It is not illegal to include the C_comp | subparameter together with one or more of the remaining | C_comp_* subparameters, but in that case the simulator will | have to make a decision whether to use C_comp or the | C_comp_pullup, C_comp_pulldown, C_comp_power_clamp, and | C_comp_gnd_clamp subparameters. Under no circumstances should | the simulator use the value of C_comp simultaneously with the | values of the other C_comp_* subparameters. | | C_comp_pullup, C_comp_pulldown, C_comp_power_clamp, and | C_comp_gnd_clamp are intended to represent the parasitic | capacitances of those structures whose I-V characteristics | are described by the [Pullup], [Pulldown], [POWER Clamp] and | [GND Clamp] I-V tables. For this reason, the simulator | should generate a circuit netlist so that, if defined, each of | the C_comp_* capacitors is connected in parallel with its | corresponding I-V table(s), whether or not the I-V table(s) exist(s). | That is, the C_comp_* capacitors are positioned between the | signal pad and the nodes defined by the [Pullup Reference], | [Pulldown Reference], [POWER Clamp Reference] and [GND Clamp | Reference] keywords, or the [Voltage Range] keyword and GND. | |** The C_comp and C_comp_* subparameters define die capacitance. | These values should not include the capacitance of the | package. C_comp and C_comp_* are allowed to use "NA" for the | min and max values only. | | Other Notes: When C_comp values are obtained by extraction under the corner | process, voltage, and temperature conditions, the C_comp* | entries are often positioned with the maximum values under | the min column and the minimum values under the max column. | C_comp* entries under other keywords are entered into columns | by numerical magnitude. The [C Comp Corner] entries override | all other C_comp* entries under other keywords. | |----------------------------------------------------------------------------- [C Comp Corner] | variable typ min max C_comp 7.0pF 9.0pF 5.0pF | C_comp_pullup 3.0pF 3.5pF 2.5pF | These four can be C_comp_pulldown 2.0pF 2.5pF 1.5pF | used instead of C_comp_power_clamp 1.0pF 1.5pF 0.5pF | C_comp C_comp_gnd_clamp 1.0pF 1.5pF 0.5pF | ****************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION Originally C_comp typ/min/max entries were ordered by magnitude for various extraction and usage reasons, including: - offering a range of C_comp values for robust design - no official and consistent way existed to extract an exact value - physical buffer layout differences such as metalization (not necessarily shown in SPICE subcircuits) can cause different C_comp values for similar buffers - C_comp is a non-linear function of many other variables (measured voltage, frequency, previous voltage value, mode of operation, etc.) - for the same buffer, some design behaviors (such as ringback) might be worst with a low value, while other behaviors (e.g., maximum delay) might be worst with a maximum value - thus justifying a range of values for checking Some tools do provide a way of doing range checking and ordering. However, this is not standardized, and other tools may just select the C_comp for a model under the given corner. So [C Comp Corner] is needed for consistent entry and processing. Specifying [C Comp Corner] with its entries aligned under the typ/min/max columns under [Model] makes the C_comp_* entries consistent with all of the other data that is entered by process/voltage/temperature (PVT) conditions for the column. The entries would be consistent with SPICE or measurement extractions, and the model could be correlated directly with the source data. Only these C_comp subparameters need to be considered because all of the other column or corner entries are already aligned by PVT extraction conditions. These include the I-V tables, V-T tables, and the specification entries such as those under [Model Spec]. The rules are copied from the sub-parameter rules under [Model]. The same subparameters are used so that they can override the values specified elsewhere in existing implementations. An alternative approach might have been to use a C_comp corner re-mapping subparameter such as: "Map_C_comp_corners typ max min" instead of entering values. However, it is clearer to provide numerical entries and this supports direct numerical processing rather than additional selection code in several locations. There are also problems with this approach including the fact that the existing min/typ/max values might be more extreme or different from the actual extracted corner values. Also, dealing with NA data in the original C_comp data set would complicate the re-mapping. So this option was not selected. A separate [C Comp Corner] keyword would allow for future additions such a providing a different value for non-driving model in I/O and 3-state buffers. This BIRD is focused on just what has been defined for simplicity and for ease of adoption within existing tools. The keyword "[C Comp Corner]" can be expressed as "[C_comp Corner]" in compliance with the keyword syntax rule that allows for case insensitve keywords as well as permitting a single space and a single underline character to be interchanged. BIRD133.1 |** lines show minor editorial changes prior to vote - and --> any - buffer --> die ***************************************************************************** ANY OTHER BACKGROUND INFORMATION: Some other variations of C_comp have been suggested: 1. Separate C_comp values for Input and Output modes in 3-state and I/O models 2. C_comp as a function of previous state (high-to-low and low-to-high values) 3. C_comp table as a function of voltage 4. More general description of frequency dependency of C_comp as proposed with many parameters in BIRD79 5. C_comp as a function of frequency Also, C_comp values may vary based on the method used for extraction. ******************************************************************************