|============================================================================= | I/O Buffer Information Specification (IBIS) Version 3.0 (June 12, 1997) | | IBIS is a standard for electronic behavioral specifications of integrated | circuit input/output analog characteristics. |============================================================================= | | 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 | simulation vendors to derive models compatible with their own products. | | 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 3.0 of this electronic template was finalized by an industry-wide | group of simulation experts representing various companies and interests. | Regular "EIA/IBIS Open Forum" meetings were held 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 supersets 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. All new keywords and elements added in Version | 2.0 are optional. A complete list of changes to the specification is in the | IBIS Version 2.0 Release Notes document ("ver2_0.rn"). | | Version 2.1 update. The file "ver2_1.ibs" contains clarification text | changes, corrections, and two additional waveform parameters beyond | Version 2.0. | | Version 3.0 update. The file "ver3_0.ibs" contains adds a number of new | keywords and functionality. A complete list of functions can be found | on vhdl.org under /pub/ibis/birds/birddir.txt showing the approved Buffer | Issue Resolution Documents (BIRDs) that have been approved for Version 3.0. | |============================================================================= | | General syntax rules and guidelines for ASCII IBIS files: | | 1) The content of the files is case sensitive, except for reserved | words and keywords. 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 that 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 subparameter 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, henries, and | seconds.) 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) The usage of TAB characters is legal, but they should be avoided as far | as possible. This is to eliminate possible complications which might | arise in situations when TAB characters are automatically converted to | multiple spaces by text editing, file transferring and similar software. | In cases like that, lines might become longer than 80 characters, which | is illegal in IBIS files. | | 11) Currents are considered positive when their direction is into the | component. | | 12) All temperatures are represented in degrees Celsius. | | 13) Important supplemental information is contained in the last section, | "NOTES ON DATA DERIVATION METHOD", concerning how data values are | derived. | |============================================================================= | 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] 3.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 MAY 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_1.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 keyword arguments can contain blanks, and be of any | format. The [Date] keyword argument is limited to a maximum | of 40 characters, and the month should be spelled out for | clarity. | | 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] June 12, 1997 | 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 1997, 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. | Sub-Params: Si_location, Timing_location | 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. | | NOTE: Blank characters are not recommended due to usability | issues. | | Si_location and Timing_location are optional and specify | where the Signal Integrity and Timing measurements are made | for the component. The default location is at the 'Pin'. | However, the 'Die' location is also available for either or | and both subparameters. |----------------------------------------------------------------------------- [Component] 7403398 MC452 | Si_location Pin | Optional subparameters to give measurement Timing_location Die | location positions | |============================================================================= | 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] 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 contain valid data. |----------------------------------------------------------------------------- [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 | |============================================================================= | Keyword: [Package Model] | 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. The simulator | will search for a matching package model name as an argument | to a [Define Package Model] keyword in the current IBIS file | first. If a match is not found, the simulator will look for a | match in an external .pkg file. 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 near the end of this specification. | When package model definitions occur within a .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. |----------------------------------------------------------------------------- [Package Model] QS-SMT-cer-8-pin-pkgs | |============================================================================= | Keyword: [Pin Mapping] | Required: No | Description: Used to indicate which power and ground buses a given driver, | receiver, or terminator is connected to. | Sub-Params: pulldown_ref, pullup_ref, gnd_clamp_ref, power_clamp_ref | Usage Rules: Each power and ground bus is given a unique name which must | not exceed 15 characters. The first column contains a pin | number. Each pin number must match one of the pin numbers | declared previously in the [Pin] section of the IBIS file. | The second column, pulldown_ref, designates the ground bus | connections for that pin. Here the term ground bus can also | mean another power bus. The third column pullup_ref | designates the power bus connection. The fourth and fifth | columns gnd_clamp_ref and power_clamp_ref contain entries, | if needed, to specify different ground bus and power bus | connections than those previously specified. | | If the [Pin Mapping] keyword is present, then the bus | connections for EVERY pin listed in the [Pin] section must | be given. | | Each line must contain either three or five columns. Use the | NC reserved word for entries that are not needed or that | follow the conditions below: | | All entries with identical labels are assumed to be connected. | Each unique entry label must connect to at least one pin whose | model_name is POWER or GND. | | If a pin has no connection, then both the pulldown_ref and | pullup_ref subparameters for it will be NC. | | GND and POWER pin entries and buses are designated by entries | in either the pulldown_ref or pullup_ref columns. There is no | implied association to any column other than through explicit | designations in other pins. | | For any other type of pin, the pulldown_ref column contains | the power connection for the [Pulldown] table for non-ECL | type [Models]. This is also the power connection for the | [GND Clamp] table and the [Rgnd] model unless overridden by a | specification in the gnd_clamp_ref column. | | Also, the pullup_ref column contains the power connection for | the [Pullup] table and, for ECL type models, the [Pulldown] | table. This is also the power connection for the [POWER | Clamp] table and the [Rpower] model unless overridden by a | specification in the power_clamp_ref column. | | The column length limits are: | [Pin Mapping] 5 characters max | pulldown_ref 15 characters max | pullup_ref 15 characters max | gnd_clamp_ref 15 characters max | power_clamp_ref 15 characters max | | When 5 columns are specified, the headings gnd_clamp_ref and | power_clamp_ref must be used. Otherwise, these headings can | be omitted. |----------------------------------------------------------------------------- [Pin Mapping] pulldown_ref pullup_ref gnd_clamp_ref power_clamp_ref | 1 GNDBUS1 PWRBUS1 | Signal pins and their associated 2 GNDBUS2 PWRBUS2 | ground and power connections 3 GNDBUS1 PWRBUS1 GNDCLMP PWRCLAMP 4 GNDBUS2 PWRBUS2 GNDCLMP PWRCLAMP 5 GNDBUS2 PWRBUS2 NC PWRCLAMP 6 GNDBUS2 PWRBUS2 GNDCLMP NC | Some possible clamping connections | . | are shown above for illustration | . | purposes | . 11 GNDBUS1 NC | One set of ground connections. 12 GNDBUS1 NC | NC indicates no connection to 13 GNDBUS1 NC | power bus. | . 21 GNDBUS2 NC | Second set of ground connections 22 GNDBUS2 NC 23 GNDBUS2 NC | . 31 NC PWRBUS1 | One set of power connections. 32 NC PWRBUS1 | NC indicates no connection to 33 NC PWRBUS1 | ground bus. | . 41 NC PWRBUS2 | Second set of power connections 42 NC PWRBUS2 43 NC PWRBUS2 | . 51 GNDCLMP NC | Additional power connections 52 NC PWRCLMP | for clamps | |============================================================================= | Keyword: [Diff Pin] | Required: No | Description: Associates differential pins, their differential threshold | voltages, and differential timing delays. | Sub-Params: inv_pin, vdiff, tdelay_typ, tdelay_min, tdelay_max | Usage Rules: Enter only differential pin pairs. The first column, [Diff | Pin], contains a non-inverting pin number. The second column, | inv_pin, contains the corresponding inverting pin number for | I/O output. Each pin number must match the pin numbers | declared previously in the [Pin] section of the IBIS file. | The third column, vdiff, contains the specified output and | differential threshold voltage between pins if the pins are | Input or I/O model types. For output only differential pins, | the vdiff entry is 0 V. The fourth, fifth, and sixth columns, | tdelay_typ, tdelay_min, and tdelay_max, contain launch delays | of the non-inverting pins relative to the inverting pins. The | values can be of either polarity. | | If a pin is a differential input pin, the differential input | threshold (vdiff) overrides and supersedes the need for Vinh | and Vinl. | | If vdiff is not defined for a pin that is defined as requiring | a Vinh by its [Model] type, vdiff is set to the default value | of 200 mV. | | Other Notes: The output pin polarity specification in the table overrides | the [Model] Polarity specification such that the pin in the | [Diff Pin] column is Non-Inverting and the pin in the inv_pin | column is Inverting. This convention enables one [Model] to | be used for both pins. | | Column length limits are: | [Diff Pin] 5 characters max | inv_pin 5 characters max | vdiff 9 characters max | tdelay_typ 9 characters max | tdelay_min 9 characters max | tdelay_max 9 characters max | | Each line must contain either four or six columns. If "NA" is | entered in the vdiff, tdelay_typ, or tdelay_min columns, its | entry is interpreted as 0 V or 0 ns. If "NA" appears in the | tdelay_max column, its value is interpreted as the tdelay_typ | value. When using six columns, the headers tdelay_min and | tdelay_max must be listed. Entries for the tdelay_min column | are based on minimum magnitudes; and tdelay_max column, | maximum magnitudes. One entry of vdiff, regardless of its | polarity, is used for difference magnitudes. |----------------------------------------------------------------------------- [Diff Pin] inv_pin vdiff tdelay_typ tdelay_min tdelay_max | 3 4 150mV -1ns 0ns -2ns | Input or I/O pair 7 8 0V 1ns NA NA | Output* pin pair 9 10 NA NA NA NA | Output* pin pair 16 15 200mV 1ns | Input or I/O pin pair 20 19 0V NA | Output* pin pair, tdelay = 0 22 21 NA NA | Output*, tdelay = 0 | * Could be Input or I/O with vdiff = 0 | |============================================================================= | Keyword: [Series Switch Groups] | Required: No | Description: Used to define allowable switching combinations of series | switches described using the names of the groups in the | [Series Pin Mapping] keyword function_table_group column | Sub-Params: On, Off | Usage Rules: Each state line contains an allowable configuration. A | typical state line will start with 'On' followed by all of the | on-state group names or an 'Off' followed by all of the | off-state group names. Only one of 'On' or 'Off' is required | since the undefined states are presumed to be opposite of the | explicitly defined states. The state line is terminated with | the slash '/', even if it extends over several lines to fit | within the 80 character column width restriction. | | The group names in the function_table_group are used to | associate switches whose switching action is synchronized by | a common control function. The first line defines the assumed | (default) state of the set of series switches. Other sets of | states are listed and can be selected through a user interface | or through automatic control. | |----------------------------------------------------------------------------- [Series Switch Groups] | Function Group States On 1 2 3 4 / | Default setting is all switched On. | Off 1 2 3 4 / | All Off setting. On 1 / | Other possible combinations below. On 2 / On 3 / On 4 / On 1 2 / On 1 3 / On 1 4 / On 2 3 / On 2 4 / On 3 4 / On 1 2 3 / On 1 2 4 / On 1 3 4 / On 2 3 4 / | Off 4 / | The last four lines above could have been replaced | Off 3 / | with these four lines with the same meaning. | Off 2 / | Off 1 / | On 5 / | Crossbar switch straight thru connection On 6 / | Crossbar cross over connection Off 5 6 / | Crossbar open switches | |============================================================================= | Keyword: [Series Pin Mapping] | Required: No | Description: Used to associate two pins joined by a series device. | Sub-Params: pin_2, model_name, function_table_group | Usage Rules: Enter only series pin pairs. The first column, [Series Pin | Mapping], contains the series pin for which input impedances | are measured. The second column, pin_2, contains the other | connection of the series model. Each pin must match the pin | numbers declared previously in the [Pin] section of the IBIS | file. The third column, model_name, associates the Series or | Series_switch model for the pair of pins in the first two | columns. The fourth column, function_table_group, contains | an alphanumeric designator string to associate those sets of | Series_switch pins that are switched together. | | Each line must contain either three or four columns. When | using four columns, the header function_table_group must be | listed. | | One possible application is to model crossbar switches where | the straight through On paths are indicated by one designator | and the cross over On paths are indicated by another | designator. If the model referenced is a Series model, then | the function_table_group entry is omitted. | | Column length limits are: | [Series Pin Mapping] 5 characters max | pin_2 5 characters max | model_name 20 characters max | function_table_group 20 characters max | | Other Notes: If the model_name is for a non-symmetrical series device, | then the order of the pins is important. The [Series Pin | Mapping] and pin_2 entries must be in the columns that | correspond with Pin 1 and Pin 2 of the referenced model. | | This mapping covers only the series paths between pins. The | package parasitics and any other elements such as additional | capacitance or clamping circuitry are defined by the | model_name that is referenced in the [Pin] keyword. The | model_names under the [Pin] keyword that are also referenced | by the [Series Pin Mapping] keyword must be either 'NC' or | reference a [Model] whose Model_type is 'Terminator'. Thus. | for example, a Series_switch model may contain Terminator | models on EACH of the pins to describe both the capacitance | on each pin and some clamping circuitry that may exist on | each pin. | |----------------------------------------------------------------------------- [Series Pin Mapping] pin_2 model_name function_table_group | 2 3 CBTSeries 1 | Four independent groups 5 6 CBTSeries 2 9 8 CBTSeries 3 12 11 CBTSeries 4 | 22 23 CBTSeries 5 | Straight through path 25 26 CBTSeries 5 22 26 CBTSeries 6 | Cross over path 25 23 CBTSeries 6 | 32 33 Fixed_series | No group needed | |============================================================================= | Keyword: [Model Selector] | Required: No. | Description: Used to pick a [Model] from a list of [Model]s for a pin which | uses a programmable buffer. | Usage Rules: A programmable buffer must have an individual [Model] section | for each one of its modes used in the .ibs file. The names of | these [Models] must be unique and can be listed under the | [Model Selector] keyword and/or pin list. The name of the | [Model Selector] keyword must match the corresponding model | name listed under the [Pin] or [Series Pin Mapping] keyword | and must not contain more | than 20 characters. A .ibs file must contain enough [Model | Selector] keywords to cover all of the model selector names | specified under the [Pin] and [Series Pin Mapping] keywords. | | The section under the [Model Selector] keyword must have two | fields. The two fields must be separated by at least one | space or tab character. However, the use of tab characters is | not recommended in general. The first field lists the [Model] | name (up to 20 characters long). The second field contains a | short description of the [Model] shown in the first field. | The contents and format of this description is not | standardized, however it shall be limited in length so that | none of the descriptions exceed the 80-character length of the | line that it started on. The purpose of the descriptions is to | aid the user of the simulator tool in making intelligent | buffer mode selections and it can be used by the simulator | tool in a user interface dialog box as the bases of an | interactive buffer selection mechanism. | | The first entry under the [Model Selector] keyword shall be | considered the default by the simulator tool for all those | pins which call this [Model Selector]. | | The operation of this selection mechanism implies that a group | of pins which use the same programmable buffer (i.e. model | selector name) will be switched together from one [Model] to | another. Therefore, if two groups of pins, for example an | address bus and a data bus, use the same programmable buffer, | and the user must have the capability to configure them | independently, one can use two [Model Selector] keywords with | unique names and the same list of [Model] keywords; however, | the usage of the [Model Selector] is not limited to these | examples. Many other combinations are possible. |----------------------------------------------------------------------------- | [Pin] signal_name model_name R_pin L_pin C_pin | 1 RAS0# Progbuffer1 200.0m 5.0nH 2.0pF 2 EN1# Input1 NA 6.3nH NA 3 A0 3-state 4 D0 Progbuffer2 5 D1 Progbuffer2 320.0m 3.1nH 2.2pF 6 D2 Progbuffer2 7 RD# Input2 310.0m 3.0nH 2.0pF | . | . | . 18 Vcc3 POWER | | [Model Selector] Progbuffer1 | OUT_2 2 mA buffer without slew rate control OUT_4 4 mA buffer without slew rate control OUT_6 6 mA buffer without slew rate control OUT_4S 4 mA buffer with slew rate control OUT_6S 6 mA buffer with slew rate control | [Model Selector] Progbuffer2 | OUT_2 2 mA buffer without slew rate control OUT_6 6 mA buffer without slew rate control OUT_6S 6 mA buffer with slew rate control OUT_8S 8 mA buffer with slew rate control OUT_10S 10 mA buffer with slew rate control | |============================================================================= | Keyword: [Model] | Required: Yes | Description: Used to define a model, and its attributes. | Sub-Params: Model_type, Polarity, Enable, Vinl, Vinh, C_comp, Vmeas, Cref, | Rref, Vref | Usage Rules: Each model type must begin with the keyword [Model]. The | The model name must match the one that is listed under | [Pin] or [Series Pin Mapping] keyword and must not contain | more than 20 characters. A .ibs file must contain enough | [Model] keywords to cover all of the model names specified | under the [Pin] and [Series Pin Mapping] keywords, except | for those model names that 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. | | Model_type must be one of the following: | | Input, Output, I/O, 3-state, Open_drain, I/O_open_drain, | Open_sink, I/O_open_sink, Open_source, I/O_open_source, | Input_ECL, Output_ECL, I/O_ECL, Terminator, Series, and | Series_switch. | | Special usage rules apply to the following. Some definitions | are included for clarification: | | Input These model types must have Vinl and Vinh | I/O defined. If they are not defined, the | I/O_open_drain parser issues a warning and the default | I/O_open_sink values of Vinl = 0.8 V and Vinh = 2.0 V are | I/O_open_source assumed. | | Input_ECL These model types must have Vinl and Vinh | I/O_ECL defined. If they are not defined, the | parser issues a warning and the default | values of Vinl = -1.475 V and Vinh = | -1.165 V are assumed. | | Terminator This model type is an input-only device | that can have analog loading effects on the | circuit being simulated but has no digital | logic thresholds. Examples of Terminators | are: capacitors, termination diodes, and | pullup resistors. | | Output This model type indicates that an output | always sources and/or sinks current and | cannot be disabled. | | 3-state This model type indicates that an output | can be disabled, i.e. put into a high | impedance state. | | Open_sink These model types indicate that the output | Open_drain has an OPEN side (do not use the [Pullup] | keyword, or if it must be used, set I = | 0 mA for all voltages specified) and the | output SINKS current. Open_drain model | type is retained for backward | compatibility. | | Open_source This model type indicates that the output | has an OPEN side (do not use the [Pulldown] | keyword, or if it must be used, set I = | 0 mA for all voltages specified) and the | output SOURCES current. | | Input_ECL These model types specify that the model | Output_ECL represents an ECL type logic that follows | I/O_ECL different conventions for the [Pulldown] | keyword. | | Series This model type is for series devices that | can be described by [R Series], [L Series], | [Rl Series], [C Series], [Lc Series], | [Rc Series], [Series Current] and [Series | MOSFET] keywords | | Series_switch This model type is for series switch | devices that can described by [On], [Off], | [R Series], [L Series], [Rl Series], | [C Series], [Lc Series], [Rc Series], | [Series Current] and [Series MOSFET] | keywords | | The Model_type and C_comp subparameters are required. The | Polarity, Enable, Vinl, Vinh, Vmeas, Cref, Rref, and Vref | subparameters are optional. C_comp defines the silicon die | capacitance. This value should not include the capacitance of | the package. C_comp is allowed to use "NA" for the min and | max values only. The Polarity subparameter can be defined as | either Non-Inverting or Inverting, and the Enable subparameter | can be defined as either Active-High or Active-Low. | | The Cref and Rref subparameters correspond to the test load | that the manufacturer uses when specifying the propagation | delay and/or output switching time of the device. The Vmeas | subparameter is the reference voltage level that the | manufacturer uses for the component. Include Cref, Rref, and | Vmeas information to facilitate board-level timing simulation. | The assumed connections for Cref, Rref, and Vref are shown in | the following diagram: | | _________ | | | | | |\ | Rref | |Driver| \|------o----/\/\/\----o Vref | | | /| | | | |/ | === Cref | |_________| | | | | GND | | Other Notes: A complete [Model] description normally contains the following | keywords: [Voltage Range], [Pullup], [Pulldown], [GND Clamp], | [POWER Clamp], and [Ramp]. A Terminator model uses one or | more of the [Rgnd], [Rpower], [Rac], and [Cac]. 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. If one | or more of [Rgnd], [Rpower], [Rac], and [Cac] keywords are | used, then the Model_type must be Terminator. |----------------------------------------------------------------------------- | Signals CLK1, CLK2,... | Optional signal list, if desired [Model] Clockbuffer Model_type I/O Polarity Non-Inverting Enable Active-High Vinl = 0.8V | input logic "low" DC voltage, if any Vinh = 2.0V | input logic "high" DC voltage, if any Vmeas = 1.5V | Reference voltage for timing measurements Cref = 50pF | Timing specification test load capacitance value Rref = 500 | Timing specification test load resistance value Vref = 0 | Timing specification test load voltage | variable typ min max C_comp 12.0pF 10.0pF 15.0pF | |============================================================================= | Keyword: [Model Spec] | Required: No | Sub-Params: Vinh, Vinl, Vinh+, Vinh-, Vinl+, Vinl-, S_overshoot_high, | S_overshoot_low, D_overshoot_high, D_overshoot_low, | D_overshoot_time, Pulse_high, Pulse_low, Pulse_time | Description: The [Model Spec] keyword defines four columns under which | specification subparameters are defined. | | The following subparameters are defined: | Vinh Input voltage threshold high | Vinl Input voltage threshold low | Vinh+ Hysteresis threshold high max Vt+ | Vinh- Hysteresis threshold high min Vt+ | Vinl+ Hysteresis threshold low max Vt- | Vinl- Hysteresis threshold low min Vt- | S_overshoot_high Static overshoot high voltage | S_overshoot_low Static overshoot low voltage | D_overshoot_high Dynamic overshoot high voltage | D_overshoot_low Dynamic overshoot low voltage | D_overshoot_time Dynamic overshoot time | Pulse_high Pulse immunity high voltage | Pulse_low Pulse immunity low voltage | Pulse_time Pulse immunity time | | Usage Rules: [Model Spec] must follow all other subparameters under the | [Model] keyword. | | For each subparameter contained in the first column, the | remaining three hold its typical, minimum and maximum values. | The entries of typical, minimum and maximum be must be placed | on a single line and must be separated by at least one white | space or tab or tab character. All four columns are required | under the [Model Spec] keyword. However, data is required | only in the typical column. If minimum and/or maximum values | are not available, the reserved word "NA" must be used | indicating the typical value by default. | | The minimum and maximum values are used for specifications | subparameter values that may track the min and max operation | conditions of the [Model]. Usually it is related to the | Voltage Range settings. | | Unless noted below, each subparameter does not require having | any other subparameter. | | Vinh, Vinl rules: | | The threshold subparameter lines provide additional min and | max column values, if needed. The typ column values are still | required and would be expected to override the Vinh and Vinl | subparameter values specified elsewhere. Note: the syntax | rule that require inserting Vinh and Vinl under models remains | unchanged even if the values are defined under the [Model | Spec] keyword. | | To mimic a hysteresis effect, the values of Vinh and Vinl may | interchanged such that the Vinl value is larger than the Vinh | value. However, simulators may process this information | differently or report an error. | | Vinh+, Vinh-, Vinl+, Vinl- rules: | | The four hysteresis subparmeters must all be defined before | the hysteresis threshold rules become effective. Otherwise | the standard threshold subparameters remain in effect. The | hysteresis thresholds shall be at the Vinh+ and Vinh- values | for a low-to-high transition, and at the Vinl+ and Vinl- | values for a high-to-low transition. | | S_overshoot_high, S_overshoot_low rules: | | The static overshoot sub-parameters provide the voltage values | for which the component is no longer guaranteed to function | correctly. | | D_overshoot_high, D_overshoot_low, D_overshoot_time rules: | | The dynamic overshoot values provide a time window during | which the overshoot may exceed the static overshoot limits | but be below the dynamic overshoot limits. D_overshoot_time | is required for dynamic overshoot testing. In addition, if | D_overshoot_high is specified, then S_overshoot_high is | necessary for testing beyond the static limit. Similarly, if | D_overshoot_low is specified, then S_overshoot_low is | necessary for testing beyond the static limit. | | Pulse_high, Pulse_low, Pulse_time rules: | | The pulse immunity values provide a time window during which | a rising pulse may exceed the nearest threshold value but | be below the pulse voltage value and still not cause the | input to switch. Pulse_time is required for pulse immunity | testing. A rising response is tested only if Pulse_high is | specified. Similarly, a falling response is tested only if | Pulse_low is specified. The rising response may exceed the | Vinl value, but remain below the Pulse_high value. | Similarly, the falling response drop below the Vinh value, | but remain above the Pulse_low value. In either case the | input is regarded as immune to switching if the responses | are within these extended windows. If the hysteresis | thresholds are defined, then the rising response shall use | Vinh- as the reference voltage, and the falling response shall | use Vinl+ as the reference voltage. |----------------------------------------------------------------------------- [Model Spec] | Subparameter typ min max | | Thresholds | Vinh 3.5 3.15 3.85 | 70% of Vcc Vinl 1.5 1.35 1.65 | 30% of Vcc | | Vinh 3.835 3.335 4.335 | Offset from Vcc | Vinl 3.525 3.025 4.025 | for PECL | | Hysteresis | Vinh+ 2.0 NA NA | Overrides the Vinh- 1.6 NA NA | thresholds Vinl+ 1.1 NA NA Vinl- 0.6 NA NA | All 4 are required | | Overshoot | S_overshoot_high 5.5 5.0 6.0 | Static overshoot S_overshoot_low -0.5 NA NA D_overshoot_high 6.0 5.5 6.5 | Dynamic overshoot D_overshoot_low -1.0 -1.0 -1.0 | requires | | D_overshoot_time D_overshoot_time 20n 20n 20n | & static overshoot | | Pulse Immunity | Pulse_high 3V NA NA | Pulse immunity Pulse_low 0 NA NA | requires Pulse_time 3n NA NA | Pulse_time | |============================================================================= | Keyword: [Driver Schedule] | Required: No | Description: Describes the relative model switching sequence for referenced | models to produce a multi-staged driver. | Usage Rules: The [Driver Schedule] table consists of five columns. The | first column is the model names of other models that exist | in the .ibs file. The remaining four columns describe | delays: Rise_on_dly, Rise_off_dly, Fall_on_dly, and | Falling_off_dly. All values are referenced to 0 seconds for | the start of the rising transition and 0 seconds for the start | of the falling transition. All delays must be equal to or | greater than 0. | | The Rise_on_dly entry gives the beginning of the low-to-high | transition. The Rise_off_dly entry may be given to end the | low-to-high transition and initiate a high-to-low transition | during the rising cycle. Similarly, the Fall_on_dly gives | the beginning of the high-to-low transition. The Fall_off_dly | may be given to end the high-to-low transition and initiate a | low-to-high transition. | | Use 'NA' when no transition is applicable. For each model, | the transition sequence must be complete, i.e., it must start | and end at the same state. | | Only the [Pulldown] and [Pullup] tables and transition data | [Ramp] or [Rising Waveform] and [Falling Waveform] data are | used from each model that is referenced. The [Model] keyword | provides the specification information, [GND Clamp] and [POWER | Clamp], and C_comp, regardless of information contained in | the referenced models. | | It is recommended that a "golden waveform" for the device | consisting of a [Rising Waveform] table and a [Falling | Waveform] table be supplied under the [Model] keyword to | serve as a reference for validation. | | No [Driver Schedule] may reference a model which itself has | within it a [Driver Schedule] table keyword. | | Other Notes: The added models typically consist of Open_sink (Open_drain) | or Open_source models to provide sequentially increased drive | strengths. The added drive may be removed within the same | transition for a momentary boost or during the opposite | transition. | | The syntax also allows for reducing the drive strength. |----------------------------------------------------------------------------- [Driver Schedule] | Model_name Rise_on_dly Rise_off_dly Fall_on_dly Fall_off_dly MODEL_OUT 0.0ns NA 0.0ns NA | | Examples of added multi-staged transitions M_O_SOURCE1 0.5ns NA 0.5ns NA | low (high-Z) to high high to low (high-Z) M_O_SOURCE2 0.5n 1.5n NA NA | low to high to low low (high-Z) M_O_DRAIN1 1.0n NA 1.5n NA | low to high (high-Z) high (high-Z) to low M_O_DRAIN2 NA NA 1.5n 2.0n | high (high-Z) high to low to high | Bus-hold stage M_O_DRAIN3 NA 1.0n NA 0.5n | high (high-Z) to low low to high (high-Z) | |============================================================================= | Keyword: [Temperature Range] | Required: Yes, if other than the preferred 0, 50, 100 degree Celsius | range | Description: Defines the temperature range over which the model is to | operate. | Usage Rules: List the actual die temperatures (not percentages) in the typ, | min, max format. "NA" is allowed for min and max only. | Other Notes: The [Temperature Range] keyword also describes the temperature | range over which the various V/I tables and ramp rates were | derived. |----------------------------------------------------------------------------- | variable typ min max [Temperature Range] 27.0 -50 130.0 | |============================================================================= | Keyword: [Voltage Range] | Required: Yes, if [Pullup Reference], [Pulldown Reference], [POWER | Clamp Reference], and [GND Clamp Reference] are not present | Description: Defines the power supply voltage tolerance over which the | model is intended to operate. It also specifies the default | voltage rail to which the [Pullup] and [POWER Clamp] V/I data | is referenced. | Usage Rules: Provide actual voltages (not percentages) in the typ, min, max | format. "NA" is allowed for the min and max values only. | Other Notes: If the [Voltage Range] keyword is not present, then all four | of these keywords described below must be present: [Pullup | Reference], [Pulldown Reference], [POWER Clamp Reference], | and [GND Clamp Reference]. If the [Voltage Range] is present, | the other keywords are optional and may or may not be used as | required. It is legal (although redundant) for an optional | keyword to specify the same voltage as specified by the | [Voltage Range] keyword. |----------------------------------------------------------------------------- | variable typ min max [Voltage Range] 5.0V 4.5V 5.5V | |============================================================================= | Keyword: [Pullup Reference] | Required: Yes, if the [Voltage Range] keyword is not present. | Description: Defines a voltage rail other than that defined by the [Voltage | Range] keyword as the reference voltage for the [Pullup] V/I | data. | Usage Rules: Provide actual voltages (not percentages) in the typ, min, max | format. "NA" is allowed for the min and max values only. | Other Notes: This keyword, if present, also defines the voltage range over | which the min and max dV/dt_r values are derived. |----------------------------------------------------------------------------- | variable typ min max [Pullup Reference] 5.0V 4.5V 5.5V | |============================================================================= | Keyword: [Pulldown Reference] | Required: Yes, if the [Voltage Range] keyword is not present. | Description: Defines a power supply rail other than 0 V as the reference | voltage for the [Pulldown] V/I data. If this keyword is not | present, the voltage data points in the [Pulldown] V/I table | are referenced to 0 V. | Usage Rules: Provide actual voltages (not percentages) in the typ, min, max | format. "NA" is allowed for the min and max values only. | Other Notes: This keyword, if present, also defines the voltage range over | which the typ, min, and max dV/dt_f values are derived. |----------------------------------------------------------------------------- | variable typ min max [Pulldown Reference] 0V 0V 0V | |============================================================================= | Keyword: [POWER Clamp Reference] | Required: Yes, if the [Voltage Range] keyword is not present. | Description: Defines a voltage rail other than that defined by the [Voltage | Range] keyword as the reference voltage for the [POWER Clamp] | V/I data. | Usage Rules: Provide actual voltages (not percentages) in the typ, min, | max format. "NA" is allowed for the min and max values only. | Other Notes: Refer the "Other Notes" section of the [GND Clamp Reference] | keyword. |----------------------------------------------------------------------------- | variable typ min max [POWER Clamp Reference] 5.0V 4.5V 5.5V | |============================================================================= | Keyword: [GND Clamp Reference] | Required: Yes, if the [Voltage Range] keyword is not present. | Description: Defines a power supply rail other than 0 V as the reference | voltage for the [GND Clamp] V/I data. If this keyword is not | present, the voltage data points in the [GND Clamp] V/I table | are referenced to 0 V. | Usage Rules: Provide actual voltages (not percentages) in the typ, min, max | format. "NA" is allowed for the min and max values only. | Other Notes: Power Supplies: It is intended that standard TTL and CMOS | devices be specified using only the [Voltage Range] keyword. | However, in cases where the output characteristics of a device | depend on more than a single supply and ground, or a [Pullup], | [Pulldown], [POWER Clamp], or [GND Clamp] table is referenced | to something other than the default supplies, use the | additional 'reference' keywords. |----------------------------------------------------------------------------- | variable typ min max [GND Clamp Reference] 0V 0V 0V | |============================================================================= | Keywords: [TTgnd], [TTpower] | Required: No | Description: These keywords specify the transit time parameters used to | estimate the transit time capacitances or develop transit time | capacitance tables for the [GND Clamp] and [POWER Clamp] | tables. | Usage Rules: For each of these keywords, the three columns hold the transit | values corresponding to the typical, minimum and maximum [GND | Clamp] or [POWER Clamp] tables, respectively. The entries for | TT(typ), TT(min), and TT(max) must be placed on a single line | and must be separated by at least one white space or tab | character. All three columns are required under these | keywords. However, data is required only in the typical | column. If minimum and/or maximum values are not available, | the reserved word "NA" must be used indicating the TT(typ) | value by default. | Other Notes: The transit time capacitance is added to C_comp. It is in a | Spice reference model as Ct = TT * d(Id)/d(Vd) where | d(Id)/d(Vd) defines the DC conductance at the incremental DC | operating point of the diode, and TT is the transit time. | This expression does not include any series resistance | component. Such a component is assumed to be negligible in | practice. Assume that the internal diode current (Id) - | voltage (Vd) relationship is Id = Is * (exp(q(Vd)/kT) - 1) | where Is is the saturation current, q is electron charge, k is | Boltzmann's constant, and T is temperature in degrees Kelvin. | Then d(Id)/d(Vd) is approximately (q/kT) * Id when the diode | is conducting, and zero otherwise. This yields the | simplification Ct = TT * (q/kT) * Id. The Id is found from | the [GND Clamp] and [POWER Clamp] operating points, and the | corresponding TTgnd or TTpower is used to calculate the Ct | value. If the [Temperature Range] keyword is not defined, | then use the default "typ" temperature for all Ct | calculations. | | The effective TT parameter values are intended to APPROXIMATE | the effects. They may be different from the values found in | the Spice diode equations. Refer to the NOTES ON DATA | DERIVATION METHOD for extracting the effective values. |----------------------------------------------------------------------------- | variable TT(typ) TT(min) TT(max) [TTgnd] 10n 12n 9n [TTpower] 12n NA NA | |============================================================================= | 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 tables of | the pulldown and pullup structures of an output buffer and the | V/I tables of the clamping diodes connected to the GND and the | POWER pins, respectively. Currents are considered positive | when their direction is into the component. | 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. "NA" can be used for currents in the | typical column, but numeric values MUST be specified for the | first and last voltage points on any V/I table. Each V/I | table must have at least 2, but not more than 100, voltage | points. | | Other Notes: The V/I table of the [Pullup] and the [POWER Clamp] structures | are 'Vcc relative', meaning that the voltage values are | referenced to the Vcc pin. (Note: Under these keywords, all | references to 'Vcc' refer to the voltage rail defined by the | [Voltage Range], [Pullup Reference], or [POWER Clamp | Reference] keywords, as appropriate.) The voltages in the | data tables are derived from the equation: Vtable = Vcc - | Voutput. | | Therefore, for a 5 V 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 table can include quiescent | input currents, or the currents of a 3-stated output, if so | desired. | | When tabulating data for ECL devices, the data in the | [Pulldown] table is measured with the output in the 'logic | low' state. In other words, the data in the table represents | the V/I characteristics of the output when the output is at | the most negative of its two logic levels. Likewise, the data | in the [Pullup] table is measured with the output in the | 'logic one' state and represents the V/I characteristics when | the output is at the most positive logic level. Note that in | BOTH of these cases, the data is referenced to the Vcc supply | voltage, using the equation: Vtable = Vcc - Voutput. | | Monotonicity Requirements: | | To be monotonic, the V/I table data must meet any one of the | following 8 criteria: | 1- The CURRENT axis either increases or remains constant as | the voltage axis is increased. | 2- The CURRENT axis either increases or remains constant as | the voltage axis is decreased. | 3- The CURRENT axis either decreases or remains constant as | the voltage axis is increased. | 4- The CURRENT axis either decreases or remains constant as | the voltage axis is decreased. | | 5- The VOLTAGE axis either increases or remains constant as | the current axis is increased. | 6- The VOLTAGE axis either increases or remains constant as | the current axis is decreased. | 7- The VOLTAGE axis either decreases or remains constant as | the current axis is increased. | 8- The VOLTAGE axis either decreases or remains constant as | the current axis is decreased. | | An IBIS syntax checking program shall test for non-monotonic | data and provide a maximum of one note per V/I table if | non-monotonic data is found. For example: | | "NOTE: Line 300, Pulldown V/I table for model DC040403 is | non-monotonic! Most simulators will filter this data | to remove the non-monotonic data." | | It is also recognized that the data may be monotonic if | currents from both the output stage and the clamp diode are | added together as most simulators do. To limit the complexity | of the IBIS Version 2.x syntax checking programs, such | programs will conduct monotonicity testing only on one V/I | table at a time. | | It is assumed that the simulator sums the clamp tables | together with the appropriate [Pullup] or [Pulldown] table | when a buffer is driving high or low, respectively. From this | assumption and the nature of 3-statable buffers, it follows | that the data in the clamping table sections are handled as | constantly present tables and the [Pullup] and [Pulldown] | tables are used only when needed in the simulation. | | The clamp tables of an Input or I/O buffer can be measured | directly with a curve tracer, with the I/O buffer 3-stated. | However, sweeping enabled buffers results in tables that are | the sum of the clamping tables and the output structures. | Based on the assumption outlined above, the [Pullup] and | [Pulldown] tables of an IBIS model must represent the | difference of the 3-stated and the enabled buffer's tables. | (Note that the resulting difference table can demonstrate a | non-monotonic shape.) This requirement enables the simulator | to sum the tables, without the danger of double counting, and | arrive at an accurate model in both the 3-stated and enabled | conditions. | | Since in the case of a non 3-statable buffer, this difference | table cannot be generated through lab measurements (because | the clamping tables cannot be measured alone), the [Pullup] | and [Pulldown] tables of an IBIS model can contain the sum of | the clamping characteristics and the output structure. In | this case, the clamping tables must contain all zeroes, or the | keywords must be omitted. |----------------------------------------------------------------------------- [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] | Note: Vtable = Vcc - Voutput | | 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] | Note: Vtable = Vcc - Voutput | | 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 | |============================================================================= | Keywords: [Rgnd], [Rpower], [Rac], [Cac] | Required: Yes, if they exist in the device | Description: The data for these keywords define the resistance values of | Rgnd and Rpower connected to GND and the POWER pins, | respectively. | Usage Rules: For each of these keywords, the three columns hold the | typical, minimum, and maximum resistance values. The three | entries for R(typ), R(min), and R(max), or the three entries | for C(typ), C(min), and C(max) must be placed on a single line | and must be separated by at least one white space or tab | character. All three columns are required under these | keywords. However, data is only required in the typical | column. If minimum and/or maximum values are not available, | the reserved word "NA" must be used indicating the R(typ) or | C(typ) value by default. | Other Notes: It should be noted that [Rpower] is connected to 'Vcc' and | [Rgnd] is connected to 'GND'. However, [GND Clamp Reference] | voltages, if defined, apply to [Rgnd]. [POWER Clamp | Reference] voltages, if defined, apply to [Rpower]. Either or | both [Rgnd] and [Rpower] may be defined and may coexist with | [GND Clamp] and [POWER Clamp] tables. If the terminator | consists of a series R and C (often referred to as either an | AC or RC terminator), then both [Rac] and [Cac] are required. | When [Rgnd], [Rpower], or [Rac] and [Cac] are specified, the | Model_type must be Terminator. | | |<-------------TERMINATOR Model--------------->| | | [Voltage Range] or | [POWER Clamp Reference] | o | | | POWER_ o---o---o | clamp | | | |--o--| \ | | | / | | VI | \ Rpower [Package] Keyword | | | / Subparameters * | |--o--| | |<----------------->| | | | | | | PIN | o-----o-------o-----o-----/\/\/\--@@@@@@---o--o | | |GND_ | | R_pkg L_pkg | | | |clamp | | | | | |--o--| | | | | | | | \ | | | | | VI | /Rgnd | | | | | | \ \ | | | |--o--| / / Rac | | | | | \ | | | o---o---o / | | | | | | | C_comp === o === Cac C_pkg === | | GND or | | | | [GND Clamp | | | | Reference] | | | o-------------------o----------------------o | | | o | GND | | * Note: More advanced package parameters are available | within this standard, including more detailed | power and ground net descriptions. |----------------------------------------------------------------------------- | variable R(typ) R(min) R(max) [Rgnd] 330ohm 300ohm 360ohm | Parallel Terminator [Rpower] 220ohm 200ohm NA | [Rac] 30ohm NA NA | | variable C(typ) C(min) C(max) | AC terminator [Cac] 50pF NA NA | |============================================================================= | Keywords: [On], [Off] | Required: Yes, both [On] and [Off] for Series_switch Model_types only | Description: The 'On' state electrical models are positioned under [On]. | The 'Off'state electrical models are positioned under [Off]. | Usage Rules: These keywords are only valid for Series_switch Model_types. | Only keywords associated with Series_switch electrical models | are permitted under [On] or [Off]. The Series electrical | models describe the path for one state only and do not use | the [On] and [Off] keywords. | | In Series_switch models, [On] or [Off] must be positioned | before any of the [R Series], [L Series], Rl Series], | [C Series], [Lc Series], [Rc Series], [Series Current], | and [Series MOSFET} keywords. There is no provision for | any of these keywords to be defined once, but to apply to | both states. |----------------------------------------------------------------------------- [On] | ... On state keywords such as [R Series], [Series Current], [Series MOSFET] [Off] | ... Off state keywords such as [R Series], [Series Current] | |============================================================================= | Keywords: [R Series], [L Series], [Rl Series], [C Series]. [Lc Series], | [Rc Series] | Required: Yes, if they exist in the device | Description: The data for these keywords allow the definition of Series or | Series_switch R, L or C paths. | Usage Rules: For each of these keywords, the three columns hold the | typical, minimum, and maximum resistance values. The three | entries must be placed on a single line and must be separated | by at least one white space or tab character. All three | columns are required under these keywords. However, data is | only required in the typical column. If minimum and/or | maximum values are not available, the reserved word "NA" must | be used. | Other Notes: This series RLC model is defined to allow IBIS to model simple | passive devices and/or parasitics. | | These keywords are valid only for Series or Series_switch | Model_types. | | The model is: | | R Series | +---/\/\/\/\---------------------+ | | | | Pin 1 | L Series Rl Series | Pin 2 | <---+---@@@@@@@@---/\/\/\/\----------+---> | | | | | | | | | +---| |---@@@@@@@@@---/\/\/\/\---+ | | | Lc Series Rc Series | C Series | | [Rl Series] shall be defined only if [L Series] exists. | [Rl Series] is 0 ohms if it is not defined in the path. | | [Rc Series] and [Lc Series] shall be defined only if | [C Series] exists. [Rc Series] is 0 ohms if it is not | defined in the path. [Lc Series is 0 henries if it is | not defined in the path. | | C_comp values are ignored for these keywords. |----------------------------------------------------------------------------- | variable R(typ) R(min) R(max) [R Series] 8ohm 6ohm 12ohm | | variable L(typ) L(min) L(max) [L Series] 5nH NA NA | variable R(typ) R(min) R(max) [Rl Series] 4ohm NA NA | | variable C(typ) C(min) C(max) | The other elements [C Series] 50pF NA NA | are 0 impedance | |============================================================================= | Keyword: [Series Current] | Required: Yes, if they exist in the device | Description: The data points under this keyword define the V/I tables for | voltages measured at Pin 1 with respect to Pin 2. Currents | are considered positive if they flow into Pin 1. Pins 1 and | 2 are listed under the [Series Pin Mapping] keyword under | columns [Series Pin Mapping] and pin_2, respectively. | Usage Rules: The first column contains the voltage value, and the 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. "NA" can be used for currents in the | typical column, but numeric values MUST be specified for the | first and last voltage points on any V/I table. Each V/I | table must have at least 2, but not more than 100, voltage | points. | | Other Notes: There is no monotonicity requirement. However the model | supplier should realize that it may not be possible to derive | a behavioral model from non-monotonic data. | | These keywords are valid only for Series or Series_switch | Model_types. | | The model is: | | Table Current | ------> | + Table Voltage - | Pin 1 |---------| Pin 2 | <---+ +---> | |---------| | | C_comp values are ignored for [Series Current] models. |----------------------------------------------------------------------------- [Series Current] | 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 | |============================================================================= | Keyword: [Series MOSFET] | Required: Yes, for series MOSFET switches | Description: The data points under this keyword define the V/I tables for | voltages measured at Pin 2 for a given Vds setting. Currents | are considered positive if they flow into Pin 1. Pins 1 and | 2 are listed under the [Series Pin Mapping] keyword under | [Series Pin Mapping] and pin_2 columns, respectively. | Sub-Params: Vds | Usage Rules: 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. "NA" can be used for currents in the | typical column, but numeric values MUST be specified for the | first and last voltage points on any V/I table. Each V/I | table must have at least 2, but not more than 100, voltage | points. | | Other Notes: There is no monotonicity requirement. However the model | supplier should realize that it may not be possible to derive | a behavioral model from non-monotonic data. | | The model is: | | Table Current | -------> | + Vds - | Pin 1 Pin 2 | <---| |---> + | d |_____| - s | --+-- Vgs Vs | | g + | - | | Vg = [Voltage Range] = Vcc | Vgs = Table Voltage = Vtable = Vcc - Vs | Ids = Table Current for a given Vcc and Vds | | Internal logic that is generally referenced to the power rail | is used to set the MOSFET switch to its 'On' state. Thus the | [Voltage Range] settings provide the assumed gate voltages. | If the [POWER Clamp Reference] exists, it overrides the | [Voltage Range] value. The table entries are actually the Vgs | values referenced to the power rail. The polarity conventions | are identical with those used for other tables that are | referenced to power rails. Thus the voltage column can be | viewed as a table defining the source voltages Vs according to | the convention: Vtable = Vcc - Vs. | | If the switch is used in an application such as interfacing | between 3.3 V and 5.0 V logic, the Vcc may be biased at a | voltage (such as 4.3 V) that is different from a power rail | voltage (such as 5.0 V) used to create the model. Just | readjust the [Voltage Range] entries (or [POWER Clamp | Reference] entries). | | One fundamental assumption in the MOSFET switch model is that | it operates in a symmetrical manner. The tables and | expressions are given assuming that Vd >= Vs. If Vd < Vs, | then apply the same relationships under the assumption that | the source and drain nodes are interchanged. A consequence of | assumption is that the Vds subparameter is constrained to | values Vds > 0. It is assumed that with Vds = 0 the currents | will be 0 mA. A further consequence of this assumption that | would be embedded in the analysis process is that the voltage | table is based on the side of the device with the lowest | voltage (and that side is defined as the source). Thus the | analysis must allow current to flow both in directions, as | would occur due to reflections when the switch is connected in | series with an unterminated transmission line. | | The model data is used to create an On state relationship | between the actual drain to source current, ids, and the | actual drain to source voltage, vds: | | ids = f(vds). | | This functional relationship depends on the actual source | voltage Vs and can be expressed in terms of the corresponding | table currents associated with Vs (and expressed as a function | of Vgs). | | If only one [Series MOSFET] table is supplied (as a first | order approximation), the functional relationship is assumed | to be linearly related to the table drain to source current, | Ids, for the given Vds subparameter value and located at the | existing gate to source voltage value Vgs. This table current | is denoted as Ids(Vgs, Vds). The functional relationship | becomes: | | ids = Ids(Vgs, Vds) * vds / Vds. | | More than one [Series MOSFET] table is permitted, but it is | simulator dependent how the data will be used. | | C_comp values are ignored for [Series MOSFET] models. |----------------------------------------------------------------------------- [On] [Series MOSFET] Vds = 1.0 | Voltage I(typ) I(min) I(max) 5.0V 257.9m 153.3m 399.5m | Defines the Ids current as a 4.0V 203.0m 119.4m 317.3m | function of Vgs, for Vds = 1.0 3.0V 129.8m 74.7m 205.6m 2.0V 31.2m 16.6m 51.0m 1.0V 52.7p 46.7p 56.7p 0.0V 0.0p 0.0p 0.0p | |============================================================================= | Keyword: [Ramp] | Required: Yes, except for inputs and terminators | Description: Defines the rise and fall times of a buffer. The ramp rate | does not include packaging but does include the effects of the | C_comp parameter. | Sub-Params: dV/dt_r, dV/dt_f, R_load | Usage Rules: The rise and fall time is defined as the time it takes the | output to go from 20% to 80% of its final value. The ramp | rate is defined as: | | dV 20% to 80% voltage swing | -- = ---------------------------------------- | dt Time it takes to swing the above voltage | | The ramp rate must be specified as an explicit fraction and | must not be reduced. The [Ramp] values can use "NA" for the | min and max values only. The R_load subparameter is optional | if the preferred 50 ohm load is used. The R_load subparameter | is required if a non-standard load is used. |----------------------------------------------------------------------------- [Ramp] | variable typ min max dV/dt_r 2.20/1.06n 1.92/1.28n 2.49/650p dV/dt_f 2.46/1.21n 2.21/1.54n 2.70/770p R_load = 300ohms | |============================================================================= | Keywords: [Rising Waveform], [Falling Waveform] | Required: No | Description: Describes the shape of the rising and falling edge waveforms | of a driver. | Sub-Params: R_fixture, V_fixture, V_fixture_min, V_fixture_max, C_fixture, | L_fixture, R_dut, L_dut, C_dut | Usage Rules: Each [Rising Waveform] and [Falling Waveform] keyword | introduces a table of time vs. voltage points that describe | the shape of an output waveform. These time/voltage points | are taken under the conditions specified in the | R/L/C/V_fixture and R/L/C_dut subparameters. The table itself | consists of one column of time points, then three columns of | voltage points in the standard typ, min, and max format. The | four entries 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. However, data is only required in | the typical column. If minimum or maximum data is not | available, use the reserved word "NA". The first value in the | time column need not be '0'. Time values must increase as one | parses down the table. The waveform table can contain a | maximum of 100 data points. A maximum of 100 waveform tables | are allowed per model. Note that for backwards compatibility, | the existing [Ramp] keyword is still required. The data in | the waveform table is taken with the effects of the C_comp | parameter included. | | A waveform table must include the entire waveform; i.e., the | first entry (or entries) in a voltage column must be the DC | voltage of the output before switching and the last entry (or | entries) of the column must be the final DC value of the | output after switching. Each table must contain at least two | entries. Thus, numerical values are required for the first | and last entries of any column containing numerical data. | | A [Model] specification can contain more than one rising edge | or falling edge waveform table. However, each new table must | begin with the appropriate keyword and subparameter list as | shown below. If more than one rising or falling edge waveform | table is present, then the data in each of the respective | tables must be time correlated. In other words, the rising | (falling) edge data in each of the rising (falling) edge | waveform tables must be entered with respect to a common | reference point on the input stimulus waveform. | | The 'fixture' subparameters specify the loading conditions | under which the waveform is taken. The R_dut, C_dut, and | L_dut subparameters are analogous to the package parameters | R_pkg, C_pkg, and L_pkg and are used if the waveform includes | the effects of pin inductance/capacitance. The diagram below | shows the interconnection of these elements. | | PACKAGE | TEST FIXTURE | _________ | | | DUT | L_dut R_dut | L_fixture R_fixture | | die |---@@@@@--/\/\/\--o-----|--@@@@---o---/\/\/\----- V_fixture | |_________| | | | | | | | | | | | | C_dut === | === C_fixture | | | | | | | | | GND | GND | | NOTE: The use of L_dut, R_dut, and C_dut is strongly | discouraged in developing Waveform data from simulation | models. Some simulators may ignore these parameters because | they may introduce numerical time constant artifacts. | | Only the R_fixture and V_fixture subparameters are required, | the rest of the subparameters are optional. If a subparameter | is not used, its value defaults to zero. The subparameters | must appear in the text after the keyword and before the first | row of the waveform table. | | V_fixture defines the voltage for typ, min, and max supply | conditions. However, when the fixture voltage is related to | the power supply voltages, then the subparameters | V_fixture_min and V_fixture_max can be used to further specify | the fixture voltage for min and max supply voltages. | | NOTE: Test fixtures with R_fixture and V_fixture, | V_fixture_min, and V_fixture_max only are strongly encouraged | because they provide the BEST set of data needed to produce | the best model for simulation. C_fixture and L_fixture can be | used to produce waveforms which describe the typical test case | setups for reference. | | All tables assume that the die capacitance is included. | Potential numerical problems associated with processing the | data using the effective C_comp for effective die capacitance | may be handled differently among simulators. |----------------------------------------------------------------------------- [Rising Waveform] R_fixture = 50 V_fixture = 0.0 | C_fixture = 50p | These are shown, but are generally not recommended | L_fixture = 2n | C_dut = 7p | R_dut = 1m | L_dut = 1n | Time V(typ) V(min) V(max) 0.0000S 25.2100mV 15.2200mV 43.5700mV 0.2000nS 2.3325mV -8.5090mV 23.4150mV 0.4000nS 0.1484V 15.9375mV 0.3944V 0.6000nS 0.7799V 0.2673V 1.3400V 0.8000nS 1.2960V 0.6042V 1.9490V 1.0000nS 1.6603V 0.9256V 2.4233V 1.2000nS 1.9460V 1.2050V 2.8130V 1.4000nS 2.1285V 1.3725V 3.0095V 1.6000nS 2.3415V 1.5560V 3.1265V 1.8000nS 2.5135V 1.7015V 3.1600V 2.0000nS 2.6460V 1.8085V 3.1695V | ... 10.0000nS 2.7780V 2.3600V 3.1670V | [Falling Waveform] R_fixture = 50 V_fixture = 5.5 V_fixture_min = 4.5 V_fixture_max = 5.5 | Time V(typ) V(min) V(max) 0.0000S 5.0000V 4.5000V 5.5000V 0.2000nS 4.7470V 4.4695V 4.8815V 0.4000nS 3.9030V 4.0955V 3.5355V 0.6000nS 2.7313V 3.4533V 1.7770V 0.8000nS 1.8150V 2.8570V 0.8629V 1.0000nS 1.1697V 2.3270V 0.5364V 1.2000nS 0.7539V 1.8470V 0.4524V 1.4000nS 0.5905V 1.5430V 0.4368V 1.6000nS 0.4923V 1.2290V 0.4266V 1.8000nS 0.4639V 0.9906V 0.4207V 2.0000nS 0.4489V 0.8349V 0.4169V | ... 10.0000nS 0.3950V 0.4935V 0.3841V | |============================================================================= | | PACKAGE MODELING | | The [Package Model] keyword is optional. If more than the default RLC | package model is desired, use the [Define Package Model] keyword. | | Use the [Package Model] keyword within a [Component] to indicate the package | model for that part. The specification permits .ibs files to contain the | following additional list of package model keywords. Note that the actual | package models can be in a separate .pkg file or can | exist in the IBIS files between the [Define Package Model]... | [End Package Model] keywords for each package model that is defined. For | reference, these keywords are listed below. Full descriptions follow. | Simulators that do not support these keywords will ignore all entries | between the [Define Package Model] and [End Package Model] keywords. | | [Define Package Model] Required if the [Package Model] keyword is used | [Manufacturer] (note 1) | [OEM] (note 1) | [Description] (note 1) | [Number Of Sections] (Optional) | [Number Of Pins] (note 1) | [Pin Numbers] (note 1) | [Model Data] (note 1) | [Resistance Matrix] Optional | [Inductance Matrix] (note 1) | [Capacitance Matrix] (note 1) | [Bandwidth] Required (for Banded_matrix matrices only) | [Row] (note 1) | [End Model Data] (note 1) | [End Package Model] (note 1) | | (note 1) Required when the [Define Package Model] keyword is used | | When package model definitions occur within a .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. | | USAGE RULES FOR THE .PKG FILE: | | Package models are stored in a file whose name looks like: | | .pkg. | | The provided must adhere to the General Syntax Rules. Use the | ".pkg" extension to identify files containing package models. The .pkg file | must contain all of the required elements of a normal .ibs file, including | [IBIS Ver], [File Name], [File Rev], and the [End] keywords. Optional | elements include the [Date], [Source], [Notes], [Disclaimer], [Copyright], | and [Comment Char] keywords. | | All of the elements follow the same rules as those for a normal .ibs file. | | Note that the [Component] and [Model] keywords are not allowed in the .pkg | file. The .pkg file is for package models only. | |============================================================================= | Keyword: [Define Package Model] | Required: Yes | Description: Marks the beginning of a package model description. | Usage Rules: If the .pkg file contains data for more than one package, each | section must begin with a new [Define Package Model] keyword. | The length of the package model name must not exceed 40 | characters in length. Blank characters are allowed. For | every package model name defined under the [Package Model] | keyword, there must be a matching [Define Package Model] | keyword. |----------------------------------------------------------------------------- [Define Package Model] QS-SMT-cer-8-pin-pkgs | |============================================================================= | Keyword: [Manufacturer] | Required: Yes | Description: Declares the manufacturer of the part(s) that use this package | model. | 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 and .pkg files. |----------------------------------------------------------------------------- [Manufacturer] Quality Semiconductors Ltd. | |============================================================================= | Keyword: [OEM] | Required: Yes | Description: Declares the manufacturer of the package. | Usage Rules: The length of the manufacturer's name must not exceed 40 | characters (blank characters are allowed). In addition, each | manufacturer must use a consistent name in all .ibs and .pkg | files. | Other Notes: This keyword is useful if the semiconductor vendor sells a | single IC in packages from different manufacturers. |----------------------------------------------------------------------------- [OEM] Acme Packaging Co. | |============================================================================= | Keyword: [Description] | Required: Yes | Description: Provides a concise yet easily human-readable description of | what kind of package the [Package Model] is representing. | Usage Rules: The description must be less than 60 characters in length, | must fit on a single line, and may contain spaces. |----------------------------------------------------------------------------- [Description] 220-Pin Quad Ceramic Flat Pack | |============================================================================= | Keyword: [Number Of Sections] | Required: No | Description: Defines the maximum number of sections that make up a 'package | stub'. A package stub is defined as the connection between | the die pad and the corresponding package pin; it can include | (but is not limited to) the bondwire, the connection between | the bondwire and pin, and the pin itself. This keyword must | be used if a modeler wishes to describe any package stub as | other than a single, lumped L/R/C. The sections of a package | stub are assumed to connect to each other in a series | fashion. | Usage Rules: The argument is a positive integer greater than zero. This | keyword, if used, must appear in the specification before the | [Pin Numbers] keyword. |----------------------------------------------------------------------------- [Number Of Sections] 3 | |============================================================================= | Keyword: [Number Of Pins] | Required: Yes | Description: Tells the parser how many pins to expect. | Usage Rules: The field must be a positive decimal integer. |----------------------------------------------------------------------------- [Number Of Pins] 128 | |============================================================================= | Keyword: [Pin Numbers] | Required: Yes | Description: Tells the parser the set of names that are used for the | package pins and also defines pin ordering. If the [Number Of | Sections] keyword is present it also lists the elements for | each section of a pin's die to pin connection. | Sub-Params: Len, L, R, C, Fork, Endfork | Usage Rules: Following the [Pin Numbers] keyword, the names of the pins are | listed. There must be as many names listed as there are pins | (as given by the preceding [Number Of Pins] keyword). Pin | names can not exceed 5 characters in length. The first pin | name given is the "lowest" pin, and the last pin given is the | "highest." If the [Number Of Sections] keyword is used then | each pin name must be followed by one or more of the legal | subparameter combinations listed below. If the [Number Of | Sections] keyword is not present then subparameter usage is | NOT allowed. | | Subparameters: | | The Len, L, R, and C subparameters specify the length, | inductance, capacitance and resistance of each section of each | stub on a package. | | The Fork and Endfork subparameters are used to denote branches | from the main package stub. | | Len The of a package stub section. Lengths are given in | terms of arbitrary 'units'. | L The inductance of a package stub section, in terms of | 'inductance/unit length'. For example, if the total | inductance of a section is 3.0nH and the length of the | section is 2 'units', the inductance would be listed | as L = 1.5nH (i.e. 3.0 / 2). | C The capacitance of a package stub section, in terms of | capacitance per unit length. | R The DC (ohmic) resistance of a package stub section, | in terms of ohms per unit length. | Fork This subparameter indicates that the sections | following (up to the Endfork subparameter) are part of | a branch off of the main package stub. This | subparameter has no arguments. | Endfork This subparameter indicates the end point of a branch. | For every Fork subparameter there must be a | corresponding Endfork subparameter. As with the Fork | subparameter, the Endfork subparameter has no | arguments. | | Specifying a Len or L/R/C value of zero is allowed. If | Len = 0 is specified, then the L/R/C values are the total for | that section. If a non-zero length is specified, then the | total L/R/C for a section is calculated by multiplying the | value of the Len subparameter by the value of the L, R, or C | subparameter. However, if a non-zero length section is | specified, the L and C for that section should be treated as | distributed elements. | | Using The Subparameters to Describe Package Stub Sections: | | A section description begins with the Len subparameter and end | with the slash (/) character. The value of the Len, L, R, and | C subparameters and the subparameter itself are separated by | an equals sign (=); whitespace around the equals sign is | optional. The Fork and Endfork subparameters are placed | between section descriptions (i.e. between the concluding | slash of one section and the 'Len' parameters that starts | another). All package stub descriptions must contain the | same number of sections however, a particular section | description can contain no data (i.e. the description is given | as 'Len = 0 /'). | | Legal Subparameter Combinations for Section Descriptions: | | A) A single Len = 0 subparameter, followed by a slash. This | is used to describe a section with no data. | | B) Len, and one or more of the L, R and C subparameters. If | the Len subparameter is given as zero, then the L/R/C | subparameters represent lumped elements. If the Len | subparameter is non-zero, then the L/R/C subparameters | represent distributed elements. | | D) Single Fork or Endfork subparameter. Normally, a package | stub is described as several sections, with the Fork and | EndFork subparameters surrounding a group of sections in the | middle of the complete package stub description. However, it | is legal for the Fork/Endfork subparameters to appear at the | end of a section description. The package pin is connected to | the last section of a package stub description not surrounded | by a Fork/Endfork statements. See the examples below. | | Package Stub Boundaries: | | A package stub description starts at the connection to the | die and ends at the point at which the package pin interfaces | with the board or substrate the IC package is mounted on. | Note that in the case of a component with thru-hole pins, the | package stub description should include only the portion of | the pin not physically inserted into the board or socket. | However, it is legal for a package stub description to | include both the component and socket together if this is how | the component is intended to be used. |---------------------------------------------------------------------------- | | A three section package stub description that includes a bond wire (lumped | inductance), a trace (treated as a transmission line with DC resistance), | and a pin modeled as a lumped L/C element. | [Pin Numbers] A1 Len=0 L=1.2n/ Len=1.2 L=2.0n C=0.5p R=0.05/ Len=0 L=2.0n C=1.0p/ | | Pin A2 below has an section with no data | A2 Len=0 L=1.2n/ Len=0/ Len=1.2 L=2.0n C=0.5p R=0.05/ Len=0 L=2.0n C=1.0p/ | | A section description using the Fork and Endfork subparameters. Note that | the indentation of the Fork and Endfork subparameters are for readability | are not required. | A1 Len=0 L=2.3n / | bondwire Len=1.2 L=1.0n C=2.5p / | first section Fork | indicates the starting of a branch Len=1.0 L=2.0n C=1.5p / | section Endfork | ending of the branch Len=0.5 L=1.0 C=2.5p/ | second section Len=0.0 L=1.5n / | pin | | Here is an example where the Fork/Endfork subparameters are at the end of a | package stub description | B13 Len=0 L=2.3n / | bondwire Len=1.2 L=1.0n C=2.5p / | first section Len=0.5 L=1.0 C=2.5/ | second section, pin connects here Fork | indicates the starting of a branch Len=1.0 L=2.0n C=1.5p / | section Endfork | ending of the branch | |============================================================================= | Keyword: [Model Data] | Required: Yes | Description: Indicates the beginning of the formatted package model data, | that can include the [Resistance Matrix], [Inductance Matrix], | [Capacitance Matrix], [Bandwidth], and [Row] keywords. |----------------------------------------------------------------------------- [Model Data] | |============================================================================= | Keyword: [End Model Data] | Required: Yes | Description: Indicates the end of the formatted model data. | Other Notes: In between the [Model Data] and [End Model Data] keywords is | the package model data itself. The data is a set of 3 | matrices: the resistance (R), inductance (L), and capacitance | (C) matrices. Each matrix can be formatted differently (see | below). Use one of the matrix keywords below to mark the | beginning of each new matrix. |----------------------------------------------------------------------------- [End Model Data] | |============================================================================= | Keywords: [Resistance Matrix], [Inductance Matrix], [Capacitance Matrix] | Required: [Resistance Matrix] is optional. If it is not present, its | entries are assumed to be zero. [Inductance Matrix] and | [Capacitance Matrix] are required. | Sub-Params: Banded_matrix, Sparse_matrix, or Full_matrix | Description: The subparameters mark the beginning of a matrix, and specify | how the matrix data is formatted. | Usage Rules: For each matrix keyword, use only one of the subparameters. | After each of these subparameters, insert the matrix data in | the appropriate format. (These formats are described in | detail below.) | Other Notes: The resistance, inductance, and capacitance matrices are also | referred to as "RLC matrices" within this specification. | | When measuring the entries of the RLC matrices, either with | laboratory equipment or field-solver software, currents are | defined as ENTERING the pins of the package from the board | (General Syntax Rule #11). The corresponding voltage drops | are to be measured with the current pointing "in" to the "+" | sign and "out" of the "-" sign. | | I1 +-----+ I2 | -----> | | <------ | board o--------| Pkg |---------o board | + V1 - | | - V2 + | +-----+ | | It is important to observe this convention in order to get the | correct signs for the mutual inductances and resistances. |----------------------------------------------------------------------------- [Resistance Matrix] Banded_matrix [Inductance Matrix] Sparse_matrix [Capacitance Matrix] Full_matrix | |============================================================================= | | RLC MATRIX NOTES: | | For each [Resistance Matrix], [Inductance Matrix], or [Capacitance Matrix] | a different format can be used for the data. The choice of formats is | provided to satisfy different simulation accuracy and speed requirements. | Also, there are many packages in which the resistance matrix can have no | coupling terms at all. In this case, the most concise format | (Banded_matrix) can be used. | | There are two different ways to extract the coefficients that are reported | in the capacitance and inductance matrices. For the purposes of this | specification, the coefficients reported in the capacitance matrices shall | be the 'electrostatic induction coefficients' or 'Maxwell's capacitances'. | The Maxwell capacitance Kij is defined as the charge induced on conductor | "j" when conductor "i" is held at 1 volt and all other conductors are held | at zero volts. Note that Kij ( when i /= j) will be a negative number and | should be entered as such. Likewise, for the inductance matrix the | coefficients for Lij are defined as the voltage induced on conductor "j" | when conductor "i"'s current is changed by 1amp/sec and all other conductors | have no current change. | | One common aspect of all the different formats is that they exploit the | symmetry of the matrices they describe. This means that the entries below | the main diagonal of the matrix are identical to the corresponding entries | above the main diagonal. Therefore, only roughly one-half of the matrix | needs to be described. By convention, the main diagonal and the UPPER half | of the matrix are provided. | | In the following text, we use the notation [I, J] to refer to the entry in | row I and column J of the matrix. Note that I and J are allowed to be | alphanumeric strings as well as integers. An ordering of these strings is | defined in the [Pin Numbers] section. In the following text, "Row 1" means | the row corresponding to the first pin. | | Also note that the numeric entries of the RLC matrices are standard IBIS | floating point numbers. As such, it is permissible to use metric "suffix" | notation. Thus, an entry of the C matrix could be given as 1.23e-12 or as | 1.23p or 1.23pF. | | Full_matrix: | | When the Full_matrix format is used, the couplings between every pair of | elements is specified explicitly. Assume that the matrix has N rows and N | columns. The Full_matrix is specified one row at a time, starting with | Row 1 and continuing down to Row N. | | Each new row is identified with the Row keyword. | |============================================================================= | Keyword: [Row] | Required: Yes | Description: Indicates the beginning of a new row of the matrix. | Usage Rules: The argument must be one of the pin numbers listed under the | [Pin Numbers] keyword. |----------------------------------------------------------------------------- [Row] 3 | |============================================================================= | Following a [Row] keyword is a block of numbers that represent the | entries for that row. Suppose that the current row is number M. Then the | first number listed is the diagonal entry, [M,M]. Following this number are | the entries of the upper half of the matrix that belong to row M: [M, M+1], | [M, M+2], ... up to [M,N]. | | For even a modest-sized package, this data will not all fit on one line. | You can break the data up with new-line characters so that this limit is | observed. | | An example: suppose the package has 40 pins and that we are currently | working on Row 19. There is 1 diagonal entry, plus 40 - 19 = 21 entries in | the upper half of the matrix to be specified, for 22 entries total. The | data might be formatted as follows: | [Row] 19 5.67e-9 1.1e-9 0.8e-9 0.6e-9 0.4e-9 0.2e-9 0.1e-9 0.09e-9 8e-10 7e-10 6e-10 5e-10 4e-10 3e-10 2e-10 1e-10 9e-11 8e-11 7e-11 6e-11 5e-11 4e-11 | | In the above example, the entry 5.67e-9 is on the diagonal of row 19. | | Observe that Row 1 always has the most entries, and that each successive row | has one fewer entry than the last; the last row always has just a single | entry. | | Banded_matrix: | | A Banded_matrix is one whose entries are guaranteed to be zero if they are | farther away from the main diagonal than a certain distance, known as the | "bandwidth." Let the matrix size be N x M, and let the bandwidth be B. | An entry [I,J] of the matrix is zero if: | | | I - J | > B | | where |.| denotes the absolute value. | | The Banded_matrix is used to specify the coupling effects up to B pins on | either side. Two variations are supported. One allows for the coupling to | circle back on itself. This is technically a simple form of a bordered | block diagonal matrix. However, its data can be completely specified in | terms of a Banded_matrix for an N x M matrix consisting of N rows and | M = N + B columns. The second variation is just in terms of an N x N matrix | where no circle back coupling needs to be specified. | | The bandwidth for a Banded_matrix must be specified using the [Bandwidth] | keyword: | |============================================================================= | Keyword: [Bandwidth] | Required: Yes (for Banded_matrix matrices only) | Description: Indicates the bandwidth of the matrix. | Usage Rules: The bandwidth field must be a non-negative integer. This | keyword must occur after the [Resistance Matrix], etc., | keywords, and before the matrix data is given. |----------------------------------------------------------------------------- [Bandwidth] 10 | |============================================================================= | Specify the banded matrix one row at a time, starting with row 1 and working | up to higher rows. Mark each row with the [Row] keyword, as above. As | before, symmetry is exploited: do not provide entries below the main | diagonal. | | For case where coupling can circle back on itself, consider a matrix of N | pins organized into N rows 1 ... N and M columns 1 ... N, 1 ... B. The | first row only needs to specify the entries [1,1] through [1,1+B] since all | other entries are guaranteed to be zero. The second row will need to | specify the entries [2,2] through [2,2+B], and so on. For row K the | entries [K,K] through [K,K+B] are given when K + B is less than or equal to | the size of the matrix N. When K + B exceeds N, the entries in the last | columns 1 ... B specify the coupling to the first rows. For row K, the | entries [K,K] ... [K,N] [K,1] ... [K,R] are given where R = | mod(K + B - 1, N) + 1. All rows will contain B + 1 entries. To avoid | redundant entries, the bandwidth is limited to B <= int((N - 1) / 2). | | For the case where coupling does not circle back on itself, the process is | modified. Only N columns need to be considered. When K + B finally exceeds | the size of the matrix N, the number of entries in each row starts to | decrease; the last row (row N) has only 1 entry. This construction | constrains the bandwidth to B < N. | | As in the Full_matrix, if all the entries for a particular row do not fit | into a single 80-character line, the entries can be broken across several | lines. | | It is possible to use a bandwidth of 0 to specify a diagonal matrix (a | matrix with no coupling terms.) This is sometimes useful for resistance | matrices. | | Sparse_matrix: | | A Sparse_matrix is expected to consist mostly of zero-valued entries, except | for a few nonzeros. Unlike the Banded_matrix, there is no restriction on | where the nonzero entries can occur. This feature is useful in certain | situations, such as for Pin Grid Arrays (PGAs). | | As usual, symmetry can be exploited to reduce the amount of data by | eliminating from the matrix any entries below the main diagonal. | | An N x N Sparse_matrix is specified one row at a time, starting with row 1 | and continuing down to row N. Each new row is marked with [Row] keyword, | as in the other matrix formats. | | Data for the entries of a row is given in a slightly different format, | however. For the entry [I, J] of a row, it is necessary to explicitly list | the name of pin J before the value of the entry is given. This | specification serves to indicate to the parser where the entry is put into | the matrix. | | The proper location is not otherwise obvious because of the lack of | restrictions on where nonzeros can occur. Each (Index, Value) pair is | listed upon a separate line. An example follows. Suppose that row 10 | has nonzero entries [10,10], [10,11], [10,15], and [10,25]. The | following row data would be provided: | [Row] 10 | Index Value 10 5.7e-9 11 1.1e-9 15 1.1e-9 25 1.1e-9 | | Note that each of the column indices listed for any row must be greater than | or equal to the row index, because they always come from the upper half of | the matrix. When alphanumeric pin names are used, special care must be | taken to ensure that the ordering defined in the [Pin Numbers] section is | observed. | | With this convention, please note that the N'th row of an N x N matrix has | just a single entry (the diagonal entry). | |============================================================================= | Keyword: [End Package Model] | Required: Yes | Description: Marks the end of a package model description. | Usage Rules: This keyword must come at the end of each complete package | model description. | | Optionally, add a comment after the [End Package Model] | keyword to clarify which package model has just ended. For | example, | | [Define Package Model] My_Model | | | | ... content of model ... | | | [End Package Model] | end of My_Model |----------------------------------------------------------------------------- [End Package Model] | |============================================================================= | Package Model Example | | The following is an example of a package model file following the | package modeling specifications. For the sake of brevity, an 8-pin package | has been described. For purposes of illustration, each of the matrices is | specified using a different format. | |============================================================================= | [IBIS Ver] 3.0 [File Name] example.pkg [File Rev] 0.1 [Date] June 12, 1997 [Source] Quality Semiconductors. Data derived from Helmholtz Inc.'s field solver using 3-D Autocad model from Acme Packaging. [Notes] Example of couplings in packaging [Disclaimer] The models given below may not represent any physically realizable 8-pin package. They are provided solely for the purpose of illustrating the .pkg file format. | |============================================================================= | [Define Package Model] QS-SMT-cer-8-pin-pkgs [Manufacturer] Quality Semiconductors Ltd. [OEM] Acme Package Co. [Description] 8-Pin ceramic SMT package [Number Of Pins] 8 | [Pin Numbers] 1 2 3 4 5 6 7 8 | [Model Data] | | The resistance matrix for this package has no coupling | [Resistance Matrix] Banded_matrix [Bandwidth] 0 [Row] 1 10.0 [Row] 2 15.0 [Row] 3 15.0 [Row] 4 10.0 [Row] 5 10.0 [Row] 6 15.0 [Row] 7 15.0 [Row] 8 10.0 | | The inductance matrix has loads of coupling | [Inductance Matrix] Full_matrix [Row] 1 3.04859e-07 4.73185e-08 1.3428e-08 6.12191e-09 1.74022e-07 7.35469e-08 2.73201e-08 1.33807e-08 [Row] 2 3.04859e-07 4.73185e-08 1.3428e-08 7.35469e-08 1.74022e-07 7.35469e-08 2.73201e-08 [Row] 3 3.04859e-07 4.73185e-08 2.73201e-08 7.35469e-08 1.74022e-07 7.35469e-08 [Row] 4 3.04859e-07 1.33807e-08 2.73201e-08 7.35469e-08 1.74022e-07 [Row] 5 4.70049e-07 1.43791e-07 5.75805e-08 2.95088e-08 [Row] 6 4.70049e-07 1.43791e-07 5.75805e-08 [Row] 7 4.70049e-07 1.43791e-07 [Row] 8 4.70049e-07 | | The capacitance matrix has sparse coupling | [Capacitance Matrix] Sparse_matrix [Row] 1 1 2.48227e-10 2 -1.56651e-11 5 -9.54158e-11 6 -7.15684e-12 [Row] 2 2 2.51798e-10 3