Subject: DRAFT IBIS Rev 2.0, Part 1

From: Derrick Duehren <[email-masked]>
Date: Wed, 25 May 94 00:00:20 PST

Text item: Text_1

Key to right-most column revision marks:  
   ## = Editor Comments
   $  = Change from Version 1.1
Post comments to the IBIS reflector.  We will discuss this draft at the 5/27/94 
IBIS teleconference.  The bridge number is (415) 904-8800 #744468, 8:00 AM to 
10:00 AM PDT (15:00 to 17:00 UTC). 
- Derrick Duehren ([email-masked])
----------------------------------- Cut Here ----------------------------------
|==============================================================================
| I/O Buffer Information Specification (IBIS) Version 2.x1  [DRAFT 5/24/94]
|==============================================================================
|
| 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.1 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.
|
| 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.
|
| Version 1.1 update.  The file "ver1_1.ibs" is conceptually the same as
| the 1.0 version of the IBIS ASCII format (ver1_0.ibs).  However, various
| comments have been added for further clarification.
|
$| Version 2.0 update.  The file "ver2_0.ibs" maintains backward compatibility
$| with Versions 1.0 and 1.1.  A complete list of changes to the specification
$| is in the IBIS Version 2.0 Release Notes document ("ver2_0.rn").
$|
|==============================================================================
|
$| General syntax rules and guidelines for ASCII IBIS files:
|
$| 1)  The content of the files is case sensitive, except for reserved
$|     words, parameters, sub-parameters, 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 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 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)  Underscores and spaces are equivalent in keywords.  Spaces are not
$|     allowed in sub-parameter names.
|
| 8)  Valid scaling factors are:
$|        T = tera        k = kilo        n = nano
$|        G = giga        m = milli       p = pico
$|        M = mega        u = micro       f = femto
|     When no scaling factors are specified, the appropriate base units are
|     assumed.  (These are Volts, Amperes, Ohms, Farads, and Henries.)  The
|     parser looks 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).  In addition, scientific notation IS
|     allowed (e.g., 1.2345e-12).
|
| 9)  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.
|
| 10) Currents are considered positive when their direction is into the
|     component.
|
|==============================================================================
|     Keyword:  [IBIS Ver]
|    Required:  Yes
| Description:  Specifies the IBIS template version.  This keyword informs 
|               electronic parsers of the kinds of data types that are 
|               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]      2.0                     | Used for template variations
|==============================================================================
|     Keyword:  [Comment char]
|    Required:  No
| Description:  Defines a new comment character to replace the default
|               "|" (pipe) character, if desired.
| Usage Rules:  The new comment character 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 is in effect 
|               only following the [Comment char] keyword.  The following 
|               characters can NOT be used:  A B C D E F G H I J K L M N O P 
|               Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 
$|               v w x y z 0 1 2 3 4 5 6 7 8 9 [ ] . _ / = + -
| Other Notes:  The [Comment char] keyword can be used throughout the file, as
|               desired.
|------------------------------------------------------------------------------
[Comment char]  |_char
|==============================================================================
|     Keyword:  [File name]
|    Required:  Yes
| Description:  Specifies 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]     ver2_0.ibs
|==============================================================================
|     Keyword:  [File Rev]
|    Required:  Yes
| Description:  Tracks the revision level of a particular .ibs file.
| Usage Rules:  Revision level is 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] [Copyright]
| Required:     No
| Description:  Optionally clarifies the file.
| Usage Rules:  The [Date] information is allowed to contain blanks, and be of
$|               any format up to 40 characters. 
$|
$|               Because IBIS model writers may consider the information in
$|               these keywords essential to users, and sometimes legally
$|               required, design automation tools should make this information
$|               available.  Derivative models should include this text
$|               verbatim.  Any text following the [Copyright] keyword must be
$|               included in any derivative models verbatim.
|------------------------------------------------------------------------------
$[Date]          06/09/94                        | The latest file revision date
|
[Source]        Put originator and the 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]         Use this section for any special notes related to the file.
|
[Disclaimer]    This information is for modeling purposes only, and is not 
                guaranteed.                     | May vary by component
|
$[Copyright]     Copyright 1994, XYZ Corp., All Rights Reserved
|
|==============================================================================
|     Keyword:  [Component]
|    Required:  Yes
| Description:  Marks 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,
|               and blank characters are allowed.
|------------------------------------------------------------------------------
$[Component]     Component Name                  | e.g., 7403398 MC452
$|
|==============================================================================
|     Keyword:  [Manufacturer]
|    Required:  Yes
| Description:  Clarifies the component's manufacturer.
| Usage Rules:  The length of the Manufacturer's Name must not exceed 40
|               characters (blank characters are allowed, e.g., Texas
|               Instruments).  In addition, each manufacturer must use a
|               consistent name in all .ibs files.
|------------------------------------------------------------------------------
[Manufacturer]  Manufacturer's Name             | e.g., Intel Corp.
|
|==============================================================================
|     Keyword:  [Package]
|    Required:  Yes
| Description:  Defines 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:  The typical (typ) 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.  Use the [Package Model] keyword for more 
$|               complex package descriptions.  If defined, the [Package Model] 
$|               data overrides the values in the [Package] keyword.  
$|               Regardless, the data listed under the [Package] keyword must 
$|               still be valid.
|------------------------------------------------------------------------------
[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:  Associates 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.
|               When using six columns, the headers R_pin, L_pin, and C_pin
|               must be listed.  If "NA" is in columns 4 through 6, the
|               default packaging values must be used.
|
|               Column length limits are:
|                  [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
|==============================================================================
################################################################################
##                 PENDING BIRD14.1 ADDITION FOR VERSION 2.0                  ##
$|==============================================================================
$|    Keyword:   [Pin Extension 1]
$|   Required:   Optional
$|Description:   These data are an extension to the [Pin] keyword.
$|               Associates additional component specifications for the
$|               various external pins.
$| Sub-Params:   Vinl, Vinh, Vmeas, Rref, Vref, Cref, C_comp
$|Usage Rules:   Only pins that have values different from the default
$|               values specified in the [Model] sub-parameters should be
$|               listed.  Sub-parameters not used on a line must be
$|               filled in with NA.  All sub-parameters must be separated
$|               by at least one blank space.  Use this keyword to avoid
$|               duplicating models due to minor differences in pin
$|               specifications.  The definitions of Rref, Vref, Cref and
$|               C_comp are found under the [Model] keyword.
$|               Column length limits are:
$|                  Pin        5 characters max
$|                  Vinl       6 characters max
$|                  Vinh       6 characters max
$|                  Vmeas      5 characters max
$|                  Rref       5 characters max
$|                  Vref       5 characters max
$|                  Cref       5 characters max
$|                  C_comp     6 characters max each for "typ", "min", and "max"
$|------------------------------------------------------------------------------
$[Pin Extension 1]
$|                                                  C_comp
$|                                           -------------------
$Pin   Vinl   Vinh   Vmeas Rref  Vref  Cref  typ    min    max
$1     0.8V   2.0V   1.5V  NA    NA    50pF  4.5pF  3.0pF  6.0pF
$4     NA     NA     2.5V  NA    NA    30pF  NA     NA     NA
$9     1.5V   3.5V   NA    NA    NA    NA    NA     NA     NA
$12    NA     NA     NA    NA    NA    NA    NA     NA     NA
$13    NA     NA     NA    50    5V    NA    NA     NA     NA
$|
$|##################### END OF PENDING BIRD 14.2 ###############################
$|==============================================================================
$| Keyword:      [Package Model] Package_Model_Name
$| Required:     No
$| Description:  Indicates the name of the package model
$| Usage Rules:  The Package_Model_Name is limited to 40 characters.
$|               Spaces are allowed in the name.  The name should include the
$|               company name or initials to help ensure uniqueness.  If the
$|               package model is in a separate .pkg file, it must be kept in
$|               the same directory as the .ibs file.
$| Other Notes:  Use the [Package_Model] keyword within a [Component] to
$|               indicate which package model should be used for that part.
$|               The specification permits .ibs files to contain [Define
$|               Package Model] keywords as well.  These are described
$|               in the "package modeling" section below.  When package model
$|               definitions occur within an .ibs file, their scope is
$|               "local"--they are known only within that .ibs file and no
$|               other.  In addition, within that .ibs file, they override any
$|               globally defined package models that have the same name.
$|
$|               NOTES ON PACKAGE MODELS AND SEPERATE FILES
$|
$| Keywords for [Define Package Model] through [End Model Data] are
$| defined in the "package modeling" section of this specification.  Note that
$| the actual package models can be in a separate file <package_file_name>.pkg. 
$| or may also exist in the IBIS files between the [Define Package Model]...[End
$| Model Data] keywords for each package model that is defined.  For reference,
$| these keywords are shown below.  Refer to the "package modeling" section
$| of this specification for full descriptions, syntax and usage.  Simulators
$| that do not support these keywords will ignore all entries between the
$| [Define Package Model] and [End Model Data] keywords.
$|
$| [Define Package Model]
$| [Manufacturer]
$| [OEM]
$| [Description]
$| [Number of Pins]
$| [Pin Names]
$| [Model Data]
$| [Resistance Matrix]
$| [Inductance Matrix]
$| [Capacitance Matrix]
$| [Row]
$| [Bandwidth]
$| [End Model Data]
$|
---------------------------------- end of part one ----------------------------