Product Documentation
Spectre Circuit Simulator Reference
Product Version 23.1, September 2023

IBIS Component Use Model (ibis)

Description

IBIS (I/O Buffer Information Specification) is a standard for electronic behavioral specification of integrated circuit (IC) input/output analog characteristics. It allows you to define a model for the IC component package, and a buffer model for each pin. IBIS standard also allows you to describe a board-level component containing several components on a common substrate or printed circuit board (PCB). For example, a SIMM module is a board-level component that is used to attach several DRAM components on the PCB to a motherboard through edge connector pins. Board pins, components on the board, and connections between them are defined in an Electrical Board Description file with extension.ebd. Component pins, buffers, and package descriptions are in a separate IBIS file with extension.ibs. An Additional Package file with extension.pkg can be used to describe advanced package models.

Spectre supports IBIS 6.0 and previous versions. Some keywords are not supported.

IBIS files can be referenced in Spectre netlist by using the ibis_include statement:

ibis_include "DRAM.ibs" [options] 

IBIS file "DRAM.ibs" is translated into Spectre netlist format by using ibis2subckt utility. The output file, "DRAM.scs", containing subcircuit definitions for each IBIS component, board, and package found in the input IBIS file, is included in the netlist. The list of options may consist of: corner={typ|min|max|slow|fast}, swsel=<int> and mdsel=<int>. These options are transferred to ibis2subckt. They are used to select IBIS buffer model corner, change position of series-switch models, and choose the required models from model selector list.

IBIS component and board subcircuits can be instantiated in a Spectre netlist along with regular Spectre primitives. Subcircuit name is the same as the component name, but is appended with the suffix_ibis. Subcircuit terminals are component pins, arranged in the order they are listed in the IBIS file. Each pin terminal is followed by a number of signal terminals, depending on the type of the pin buffer model. For example, if m1 is defined in IBIS file as an input buffer model, and m2 - as I/O type, the following IBIS component:

[Component] IC 
[Pin]  signal_name   model_name   R_pin     L_pin     C_pin 
p1      s1            GND 
p3      s3            m1 
p4      s4            NC 
p5      s5            m2 
p2      s2            POWER 

can be instantiated in the netlist as:

x_ic ( p1 p3 s3_in p4 p5 s5_in s5_out s5_en p2 ) IC_ibis 

ibis2subckt can also be used as a stand-alone utility with the following command-line arguments:

ibis2subckt  -in <IBIS files> -out <subckt file> -corner {typ|min|max|slow|fast} -swsel <int> -mdsel <int> 

Default values are:

corner  typ 
mdsel   -1 
swsel   -1 

SPICE NETLIST SUPPORT

For the IBIS component, Spectre also supports the SPICE .IBIS and .EBD statements.

The supported parameters of.IBIS syntax are file, component, mod_sel, package, and typ.

.IBIS Parameters

file = <string>

Specifies the IBIS file name with suffix .ibs.

component = <string>

Specifies the used component name in the .ibs file.

mod_sel = <string1=string2>

Maps the model selector name (string1) to the actual model name (string2), given as [Model selector] in the .ibis file. Multiple selectors are supported.

package = <3|0|1|2>

Specifies the type of package. Default value is 3 (use the best available package model). package=0 means no package is used. package=1 means that an RLC package is used with the same values for all pins provided in the [Package] section. package=2 means that an RLC package is used with individual RLC values for each pin provided in the [Pin] section. package=3 means that an advanced package model is used in the [Package Model] section.

typ = <typ|min|max|fast|slow>

Specifies the corner of the IBIS buffer. Default value is typ (typical).

The supported parameters of the .EBD syntax are file, model, and component.

.EBD Parameters

file = <string>

Specifies the EBD file name with the suffix .ebd

model = <string>

Specifies name of the board-level model provided in .ebd file

component = <string>

Specifies the component name of the ibis buffer. Multiple components are supported.

Examples

.ibis I1 
+ file = file.ibs 
+ component = Component 
+ mod_sel = DQ=DQ1,CQ=CQ1 
+ package=0 
+ typ=slow 
.ebd pkg 
+ file = file.ebd
+ model = XXXX 
+ component = Component1 
+ component = Component2

Supported IBIS Keywords in Spectre

The supported keywords list below is based on IBIS version 6.0.

The following shows the sections and keywords in the IBIS file that are supported in Spectre:

.ibis FILE
 FILE Header Section
  [IBIS Ver]
  [Comment Char] 
  [File Name] 
  [File Rev] 
  [Date]
  [Source]
  [Notes]
  [Disclaimer]
  [Copyright]
 [Component]                 Si Location, Timing_location
  [Manufacturer] 
  [Package]               R_pkg, L_pkg, C_pkg
  [Pin]                   signal_name, model_name, R_pin, L_pin, C_pin
  [Package Model]
  [Pin Mapping]           pulldown_ref, pullup_ref, gnd_clamp_ref,                                 power_clamp_ref, ext_ref
  [Diff Pin]              inv_pin, vdiff, tdelay_typ, tdelay_min, tdelay_max
  [Series Pin Mapping]    pin_2, model_name, function_table_group
  [Series Switch Groups]  On (m), Off (m)
 [Model Selector]
  [Model]                 Model_type, Polarity, Enable, Vinl, Vinh, C_comp,                                 C_comp_pullup, C_comp_pulldown,                                  C_comp_power_clamp, C_comp_gnd_clamp, Vmeas,                                 Cref, Rref, Vref
   [Model Spec]        Vinh, Vin1
   [Add Submodel]
   [Driver Schedule]
   [Temperature Range]
   [Voltage Range]
   [Pullup Reference]
   [Pulldown Reference]
   [Power Clamp Reference]
   [GND Clamp Reference]
   [C Comp Corner]             C_comp, C_comp_pullup, C_comp_pulldown,
C_comp_power_clamp, C_comp_gnd_clamp
   [Pulldown]
   [Pullup]
   [GND Clamp]
   [POWER Clamp]
   [ISSO PU]
   [ISSO PD]
   [Rgnd]
   [Rpower]
   [Rac]
   [Cac]
   [On]
   [Off]
   [R Series]
   [L Series]
   [R1 Series]
   [C Series]
   [LC Series]
   [RC Series]
   [Series Current]
   [Series MOSFET]          Vds
   [Ramp]                   dV/dt_r, dV/dt_f, R_load
   [Rising Waveform]        R_fixture, V_fixture, V_fixture_min,                                      V_fixture_max, C_fixture, L_fixture,
    [Composite Current]
   [Falling Waveform]       _fixture, V_fixture, V_fixture_min,                                      V_fixture_max, C_fixture, L_fixture,
    [Composite Current]
   [External Model]         Language, Corner, Parameters, Ports, D_to_A,                                      A_to_D
    [End External Model]
  [Sub Model]                  Sub model type
   [Sub Model Spec]         V_trigger_r, V_trigger_f
   [POWER Pulse Table] 
   [GND Pulse Table] 
   [Pulldown] 
   [Pullup] 
   [GND Clamp] 
   [POWER Clamp] 
   [Ramp]                    dV/dt_r, dV/dt_f, R_load
   [Rising Waveform]        R_fixture, V_fixture, V_fixture_min,                                      V_fixture_max, C_fixture, L_fixture,
   [Falling Waveform]        R_fixture, V_fixture, V_fixture_min,                                      V_fixture_max, C_fixture, L_fixture,
  [Define Package Model]
   [Manufacturer]
   [OEM]
   [Description]
   [Number of Sections]
   [Number of Pins]
   [Pin Numbers]             Len, L, R, C, Fork, Endfork
   [Model Data]               
    [Resistance Matrix]   Banded_matrix, Sparse_matrix, Full_matrix
     [Bandwidth]
     [Row]
    [Inductance Matrix]   Banded_matrix, Sparse_matrix, Full_matrix
     [Bandwidth]
     [Row]
    [Capacitance Matrix]   Banded_matrix, Sparse_matrix, Full_matrix
     [Bandwidth]
     [Row]
    [End Model Data]
   [End Package Model’
  [END]

The following shows the sections and keywords in the package file that are supported in Spectre:

.pkg FILE
 FILE Header Section
  [IBIS Ver]
  [Comment Char] 
  [File Name] 
  [File Rev] 
  [Date]
  [Source]
  [Notes]
  [Disclaimer]
  [Copyright]
 [Define Package Model]
  [Manufacturer]
  [OEM]
  [Description]
  [Number of Sections]
   Number of Pins]
  [Pin Numbers]             Len, L, R, C, Fork, Endfork
  [Model Data]               
   [Resistance Matrix]   Banded_matrix, Sparse_matrix, Full_matrix
    [Bandwidth]
    [Row]
   [Inductance Matrix]   Banded_matrix, Sparse_matrix, Full_matrix
    [Bandwidth]
    [Row]
   [Capacitance Matrix]   Banded_matrix, Sparse_matrix, Full_matrix
    [Bandwidth]
    [Row]
   [End Model Data]
  [End Package Model’
  [END]
The following shows the sections and keywords in the EBD file that are supported in Spectre:
.pkg FILE
 FILE Header Section
  [IBIS Ver]
  [Comment Char] 
  [File Name] 
  [File Rev] 
  [Date]
  [Source]
  [Notes]
  [Disclaimer]
  [Copyright]
 [Begin Board Description]
  [Manufacturer]
  [Number of Pins]
  [Pin List]                 signal_name
  [Path Description]         Len, L, R, C, Fork, Endfork, Pin, Node
  [Reference Designator Map]
  [End Board Description]
 [END]

Return to top
 ⠀
X