|=============================================================================| | | | Statement of Intent: | | | | In order to enable an industry standard method to electronically transport | | IBIS Modeling Data between silicon vendors, simulation software vendors, and| | end customers, this template is proposed. The intention of this template is| | to specify a consistent format that can be parsed by software, allowing each| | simulation vendor to derive models compatible with their own product. | | | | One goal of this template is to represent the current state of IBIS data, | | while allowing a growth path to more complex models / methods (when deemed | | appropriate). This would be accomplished by a revision of the base | | template, and possibly the addition of new keywords or categories. | | | | Another goal of this template is to ensure that it is simple enough for | | silicon vendors and customers to use and modify, while ensuring that it is | | rigid enough for software simulation vendors to write reliable parsers. | | | | Finally, this template is meant to contain a complete description of the I/O| | elements on an entire component. Consequently, several models will need to | | be defined in each file, as well as a table that equates the appropriate | | buffer to the correct pin and signal name. | | | | Version 1.0 of this electronic template was finalized by an industry-wide | | group of simulation experts representing various companies and interests. | | "IBIS Open Forum" meetings were held biweekly to accomplish this task. For | | information concerning the IBIS Open Forum, contact Donald Telian at Intel | | Corporation at (916) 356-5029. | | | | Commitment to Backward Compatibility. Version 1.0 is the first valid IBIS | | ASCII file format. It represents the minimum amount of I/O buffer | | information required to create an accurate IBIS model of common CMOS and | | bipolar I/O structures. Future revisions of the ASCII file will add items | | considered to be "enhancements" to Version 1.0 to allow accurate modeling | | of new, or other, I/O buffer structures. Consequently, all future | | revisions will be considered super sets of Version 1.0, allowing backward | | compatibility. In addition, as modeling platforms develop support for | | revisions of the IBIS ASCII template, all previous revisions of the | | template must also be supported. | | | | The following is a list of the companies which contributed to the | | development of the IBIS_ASCII standard. | | | | Company: Phone: Contact: | | Cadence Des. (508) 262-6481 Sandeep Khanna | | Contec Micro. (408) 434-6767 Maah Sango | | Hyperlynx (206) 869-2320 Kellee Crisafulli | | Integrity Engr. (612) 636-6913 Greg Doyle | | Intel Corp. (503) 696-4369 Will Hobbs | | Intel Corp. (916) 356-5029 Donald Telian | | IntuSoft (310) 833-0710 Charles Hymowitz | | Meta-Software (408) 369-5400 Stephen Fenstermaker | | MicroSim (714) 770-3022 Arthur Wong | | Quad-Design (805) 988-8250 Jon Powell | | Quantic Labs (204) 942-4000 Mike Ventham | | | |=============================================================================| | | | General syntax rules and guidelines: | | | | 1) The content of the IBIS_ASCII file is case sensitive, except for file | | names, reserved words and keywords. Reserved words and keywords are not | | case sensitive, and file names must be all lower case. | | | | 2) The following words are reserved words and must not be used for | | any other purposes in the document: | | POWER - reserved model name, used with power supply pins, | | GND - reserved model name, used with ground pins, | | NC - reserved model name, used with no connect pins, | | NA - used where data not available. | | | | 3) File names used in the IBIS_ASCII file must only have lower case | | characters to enhance UNIX compatibility and must conform to DOS rules. | | (The length of a file name should not exceed eight plus three characters | | and it must not contain special characters which are illegal in DOS). | | | | 4) The IBIS_ASCII file must have no more than 80 characters per line. | | | | 5) Anything following the comment character is ignored and considered a | | comment on that line. The default "|" (pipe) character can be changed by | | the keyword [Comment char] to any other character. The [Comment char] | | keyword can be used throughout the file as desired. | | | | 6) Keywords must be enclosed in square brackets, [], and must start in | | column 1 of the line. | | | | 7) Valid scaling factors are: | | M = mega, k = kilo, m = milli, u = micro, n = nano, p = pico. | | When no scaling factors are specified, the appropriate base units are | | assumed. (These are Volts, Amperes, Ohms, Farads and Henries). The parser | | will look at only one alphabetic character after a numerical entry, | | therefore it is enough to use only the prefixes to scale the parameters. | | However, for clarity, it is allowed to use full abbreviations for the | | units. (E.g. pF, nH, mA, mOhm). | | | | 8) The V/I data tables should use enough data points around sharply curved | | areas of the V/I curves to describe the curvature accurately. In linear | | regions there is no need to define unnecessary data points. | | | | 9) Currents are considered positive when their direction is into the | | component. | | | |=============================================================================| | Keyword: [IBIS Ver] | | Required: Yes | | Description: Used to specify the IBIS ASCII template version. This will be| | used to inform an electronic parser of the kinds of data types| | that will be present in the file. | | Usage Rules: [IBIS Ver] must be the first keyword in any IBIS file. It is | | normally on the first line of the file, but can be preceded | | by comment lines (that must begin with a "|"). | |-----------------------------------------------------------------------------| [IBIS Ver] 1.0 | Used for template variations |=============================================================================| | Keyword: [Comment char] | | Required: Optional | | Description: Used to define a new comment character to replace the default | | "|" (pipe), if desired. | | Usage Rules: The new comment character which is to be defined must be | | followed by the underscore character and the letters "char". | | For example: "|_char" redundantly redefines the comment | | character to be the pipe character. The new comment character| | will be in effect only following the [Comment char] keyword. | |-----------------------------------------------------------------------------| [Comment char] |_char |=============================================================================| | Keyword: [File name] | | Required: Yes | | Description: Used to specify the name of the IBIS file, "filename.ibs". | | Usage Rules: The file name must comply with normal DOS rules (8 char. max. | | and no characters that are illegal in DOS). In addition, it | | must be all lower case, and use the extension ".ibs". | |-----------------------------------------------------------------------------| [File name] ver1_0.ibs |=============================================================================| | Keyword: [File Rev] | | Required: Yes | | Description: Used to track the revision level of a particular .ibs file. | | Usage Rules: Revision level can be set at the discretion of the engineer | | defining the file. The following guidelines are recommended: | | 0.x silicon and file in development | | 1.x pre-silicon file data from silicon model only | | 2.x file correlated to actual silicon measurements| | 3.x mature product, no more changes likely | |-----------------------------------------------------------------------------| [File Rev] 1.0 | Used for .ibs file variations |=============================================================================| | Keywords: [Date] [Source] [Notes] [Disclaimer] | | Required: Optional | | Description: Optionally used for further file clarifications. | |-----------------------------------------------------------------------------| [Date] 04/19/93 | Latest file revision date [Source] Put originator and source of information here. For example: From silicon level SPICE model at Intel, From lab measurement at IEI, Compiled from manufacturer's data book at Quad Design, etc... [Notes] This section can be used for any special notes related to the file. [Disclaimer] This information is for modeling purposes only, and is not guaranteed. | May vary by component |=============================================================================| | Keyword: [Component] | | Required: Yes | | Description: Used to mark the beginning of the IBIS description of the | | integrated circuit named after the keyword. | | Usage Rules: If the .ibs file contains data for more than one component, | | each section must begin with a new [Component] keyword. The | | length of the Component Name must not exceed 40 characters. | |-----------------------------------------------------------------------------| [Component] Component Name |=============================================================================| | Keyword: [Manufacturer] | | Required: Yes | | Description: Used to clarify the component's manufacturer. | | Usage Rules: The length of the Manufacturer's Name must not exceed 40 | | characters. In addition, each manufacturer must use a | | consistent name in all .ibs files | |-----------------------------------------------------------------------------| [Manufacturer] Manufacturer's Name | e.g., Intel, Signetics, TI... |=============================================================================| | Keyword: [Package] | | Required: Yes | | Description: Used to define a range of values for the default packaging | | resistance, inductance, and capacitance of the component pins.| | Sub-Params: R_pkg, L_pkg, C_pkg | | Usage Rules: Typical column must be specified. If data for the other | | columns are not available, they must be noted with "NA". | | Other Notes: If RLC parameters are available for individual pins, they can | | be listed in columns 4-6 under keyword [Pin]. The values | | listed in the [Pin] description section override the default | | values defined here. | |-----------------------------------------------------------------------------| [Package] | variable typ min max R_pkg 250.0m 225.0m 275.0m L_pkg 15.0nH 12.0nH 18.0nH C_pkg 18.0pF 15.0pF 20.0pF |=============================================================================| | Keyword: [Pin] | | Required: Yes | | Description: Used to associate the component's I/O models to its various | | external pins and signal names. | | Sub-Params: signal_name, model_name, R_pin, L_pin, C_pin | | Usage Rules: All pins on a component must be specified. The first column | | must contain the pin name. The second column, signal_name, | | gives the data book name for the signal on that pin. The | | third column, model_name, associates the I/O model for that | | pin. Each model_name must have a [Model] keyword below, | | unless it is a reserved model name (POWER, GND, or NC). | | | | Each line must contain either three or six columns. A pin | | line with three columns only associates the pin's signal and | | model. Six columns can be used to override the default | | package values (specified under [Package]) FOR THAT PIN ONLY. | | If "NA" is in columns 4 through 6, the default packaging | | values must be used. | | | | All columns are alphanumeric, with lengths limited to: | | [Pin] 5 characters max | | model_name 20 characters max | | signal_name 20 characters max | | R_pin 9 characters max | | L_pin 9 characters max | | C_pin 9 characters max | |-----------------------------------------------------------------------------| [Pin] signal_name model_name R_pin L_pin C_pin | 1 RAS0# Buffer1 200.0m 5.0nH 2.0pF 2 RAS1# Buffer2 209.0m NA 2.5pF 3 EN1# Input1 NA 6.3nH NA 4 A0 3-state 5 D0 I/O1 6 RD# Input2 310.0m 3.0nH 2.0pF 7 WR# Input2 8 A1 I/O2 9 D1 I/O2 10 GND GND 297.0m 6.7nH 3.4pF 11 RDY# Input2 12 GND GND 270.0m 5.3nH 4.0pF | . | . | . 18 VCC3 POWER 19 NC NC 20 Vcc5 POWER 226.0m NA 1.0pF |=============================================================================| | Keyword: [Model] | | Required: Yes | | Description: Used to define a model, and its attributes. | | Sub-Params: Model_type, Polarity, Enable, Vinl, Vinh, C_comp | | Usage Rules: Each Input, Output, I/O, 3-state, or Open-drain model must | | begin with the keyword [Model]. The model_name must match | | the one that is listed under the [Pin] keyword and must not | | contain more than 20 alphanumeric characters. An .ibs file | | must contain enough [Model] keywords to cover all of the | | model_names specified under the [Pin] keyword, except for | | those model_names which use reserved words (POWER, GND and | | NC). Model_names with reserved words are an exception and | | they do not have to have a corresponding [Model] keyword. | | Other Notes: A complete [Model] description normally contains the following| | keywords: [Voltage range], [Pullup], [Pulldown], [GND_clamp],| | [POWER_clamp], and [Ramp]. However, some models may have only| | a subset of these keywords. For example, an input structure | | normally only needs the [Voltage range], [GND_clamp], and | | possibly the [POWER_clamp] keywords. | | Note that C_comp defines the silicon die capacitance. This | | value should not include the capacitance of the package. | | | |-----------------------------------------------------------------------------| [Model] model_name Model_type Input, Output, I/O, 3-state, Open_drain | List one only Polarity Non-Inverting, Inverting | List one only, if any Enable Active-High, Active-Low | List one only, if any | Signals RAS, CAS, A(0-64), D(0-128),... | Local list, if desired Vinl = 0.8V | input logic "low" DC voltage, if any Vinh = 2.0V | input logic "high" DC voltage, if any | variable typ min max C_comp 12.0pF 10.0pF 15.0pF |=============================================================================| | Keyword: [Voltage range] | | Required: Yes | | Description: Used to define the power supply voltage tolerance over which | | the model is intended to operate. | | Usage Rules: Actual voltages (not percentages) are to be presented in the | | usual typ, min, max format. | | Other Notes: [Voltage range] also describes the voltage range over which | | the various V/I curves and ramp rates were derived. | |-----------------------------------------------------------------------------| | variable typ min max [Voltage range] 5.0V 4.5V 5.5V |=============================================================================| | Keywords: [Pulldown], [Pullup], [GND_clamp], [POWER_clamp] | | Required: Yes, if they exist in the device | | Description: The data points under these keywords define the V/I curves of | | the pulldown and pullup structures of an output buffer and the| | V/I curves of the clamping diodes connected to the GND and the| | POWER pins, respectively. | | Usage Rules: In each of these sections the first column contains the | | voltage value, and the three remaining columns hold the | | typical, minimum, and maximum current values. The four | | entries, Voltage, I(typ), I(min), and I(max) 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 under these keywords, 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. Each V/I curve must not have more | | than 100 voltage points. | | Other Notes: It should be noted that the V/I curve of the [Pullup] and the | | [POWER_clamp] structures are 'Vcc relative', meaning that the | | voltage values are referenced to the Vcc pin. The voltages in| | the data tables are derived from the equation: | | Vtable = Vcc - Voutput | | Therefore, for a 5V component, -5 V in the table actually | | means 5 V above Vcc, which is +10 V with respect to ground; | | and 10 V means 10 V below Vcc, which is -5 V with respect to | | ground. Vcc-relative data is necessary to model a pullup | | structure properly, since the output current of a pullup | | structure depends on the voltage between the output and Vcc | | pins and not the voltage between the output and ground pins. | | Note that the [GND_clamp] V/I curve can include quiescent | | input currents, or the currents of a 3-stated output if so | | desired. | |-----------------------------------------------------------------------------| [Pulldown] | Voltage I(typ) I(min) I(max) | -5.0V -40.0m -34.0m -45.0m -4.0V -39.0m -33.0m -43.0m | . | . 0.0V 0.0m 0.0m 0.0m | . | . 5.0V 40.0m 34.0m 45.0m 10.0V 45.0m 40.0m 49.0m | [Pullup] | | Voltage I(typ) I(min) I(max) | -5.0V 32.0m 30.0m 35.0m -4.0V 31.0m 29.0m 33.0m | . | . 0.0V 0.0m 0.0m 0.0m | . | . 5.0V -32.0m -30.0m -35.0m 10.0V -38.0m -35.0m -40.0m | [GND_clamp] | | Voltage I(typ) I(min) I(max) | -5.0V -3900.0m -3800.0m -4000.0m -0.7V -80.0m -75.0m -85.0m -0.6V -22.0m -20.0m -25.0m -0.5V -2.4m -2.0m -2.9m -0.4V 0.0m 0.0m 0.0m 5.0V 0.0m 0.0m 0.0m | [POWER_clamp] | | Voltage I(typ) I(min) I(max) | -5.0V 4450.0m NA NA -0.7V 95.0m NA NA -0.6V 23.0m NA NA -0.5V 2.4m NA NA -0.4V 0.0m NA NA 0.0V 0.0m NA NA |=============================================================================| | Keyword: [Ramp] | | Required: Yes, except for inputs | | Description: Used to define the rise and fall times of a buffer. | | Sub-Params: dV/dt_r, dV/dt_f | | Usage Rules: These parameters describe an ideal slope and can be expressed | | as a ratio of any reasonable voltage and time values as shown | | in the examples. | |-----------------------------------------------------------------------------| [Ramp] | variable typ min max dV/dt_r 4.2/1.8n 3.5/2.5n 5.0/1.1n dV/dt_f 2.5/1.5n 2.0/2.3n 3.0/0.8n |=============================================================================| | Keyword: [End] | | Required: Yes | | Description: Used to define the end of the .ibs file. | |-----------------------------------------------------------------------------| [End] |=============================================================================| | | | NOTES ON DATA DERIVATION METHOD | | | | This section explains how data values are derived. The intention here is to| | avoid over-guardbanding, enabling simulation results that are meaningful and| | useful. This is accomplished by having each silicon vendor base their data | | on typical process data, and then derate by voltage and temperature, and a | | proprietary "X%" factor. This methodology also has the nice feature that | | the data can be derived either from vendor-proprietary silicon models, or | | typical device measurement over temperature/voltage. | | | | 1) V/I curves for CMOS devices: | | typ = nominal voltage, 50 degrees C, typical process | | min = low voltage tol, 100 degrees C, typical process, minus "X%" | | max = hi voltage tol, 0 degrees C, typical process, plus "X%" | | | | V/I curves for bipolar devices: | | typ = nominal voltage, 50 degrees C, typical process | | min = low voltage tol, 0 degrees C, typical process, minus "X%" | | max = hi voltage tol, 100 degrees C, typical process, plus "X%" | | | | where X% should be statistically determined by the silicon vendor | | based on numerous fab lots, test chips, process controls, ... The | | value of X need not be published in the IBIS file, and may decrease | | over time as data on the I/O buffers and silicon process increases. | | Temperatures are junction temperatures. | | | | 2) Voltage Ranges: | | Points for each curve must span the voltages listed below: | | | | Curve Low Voltage High Voltage | | ----------- ----------- ------------ | | [Pulldown] GND - POWER POWER + POWER | | [Pullup] GND - POWER POWER + POWER | | [GND_clamp] GND - POWER GND + POWER | | [POWER_clamp] POWER POWER + POWER | | | | For example, a device with a 5 V power supply voltage should be | | characterized between (0 - 5) = -5 V and (5 + 5) = 10 V; | | and a device with a 3.3 V power supply should be characterized | | between (0 - 3.3) = -3.3 V and (3.3 + 3.3) = 6.6 V for the | | pulldown curve. | | | | 3) Ramp Rates: | | The ramp rates (listed in AC characteristics below) should be | | derived by: | | 1. Start with silicon model, remove all packaging. | | 2. Attach 50 Ohm resistor to GND to derive rising edge ramp. | | 3. Attach 50 Ohm resistor to POWER to derive falling edge ramp. | | 4. Due to the resistor, output swings will not make a full | | transition as expected. However the pertinent data can still | | be collected as follows: | | a) determine the 20% to 80% voltages of the 50 Ohm swing | | b) measure this voltage change as "dv" | | c) measure the amount of time required to make this swing "dt"| | 5. Post the value as a ratio "dv/dt", the simulation tool vendor | | will extrapolate this value to span the required voltage swing | | range in the final model. | | 6. Typ, Min, and Max must all be posted, and are derived at the | | same extremes as the V/I curves, which are: | | | | Ramp times for CMOS devices: | | typ = nominal voltage, 50 degrees C, typical process | | min = low voltage tol, 100 degrees C, typical process, minus "Y%" | | max = hi voltage tol, 0 degrees C, typical process, plus "Y%" | | | | Ramp times for bipolar devices: | | To be determined by manufacturer. | | | | Note that the derate factor, "Y%", may be different than that used| | for the V/I curve data. This factor is similar to the X% factor | | described above. As in the case of V/I curves, temperatures are | | junction temperatures here also. | | | | 7. The rise time of an open-drain device must be measured into | | a 50 Ohm pullup resistor tied to the power pin. | | | | It is expected that this data will be created from silicon vendor | | proprietary silicon-level models, and later correlated with actual device | | measurement. | |=============================================================================|