|=============================================================================| 
|                                                                             | 
| 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.                                                                | 
|=============================================================================| 
