This is an Instructor Guide page!
Download
Report
Transcript This is an Instructor Guide page!
Agenda
DAY
2
Synopsys 60-I-032-BSG-005
4
S-Parameters and Linear Analysis
5
Transmission Lines and Field Solver
6
IBIS
© 2007 Synopsys, Inc. All Rights Reserved
6- 1
Unit Objectives
After completing this unit, you should be able to:
Describe what IBIS models are
Use IBIS models
6- 2
What is IBIS?
IBIS = I/O Buffer Information Specification
IBIS is a standard for describing the analog behavior
of the buffers of digital devices using plain ASCII text
formatted data
IBIS files are not really models; they contain the data
that will be used by the simulation tools behavioral
models and algorithms
IBIS started in the early 90’s to promote tool
independent I/O models for system level signal
integrity work
http://www.eigroup.org/ibis/
6- 4
3
IBIS Model Characteristics
Fast simulation:
V / I / t relationships for only external nodes of the entire buffer
No circuit detail involved:
Not useful for circuit designers
Ideal for system level interconnect design
Hides process and IP
Package modeling
Electrical Board Description
Multi-stage buffer:
[Driver Schedule]
6- 6
4
IBIS Buffers
A basic IBIS model consists of:
Four I-V curves
Two ramps
dV/dt_rise
dV/dt_fall
Die capacitance
C_comp
Packaging
Pullup & POWER clamp
Pulldown & GND clamp
RLC values
For each buffer on a chip
6- 8
5
IBIS Buffer Block Diagram
6- 10
6
Buffer Output Model
6- 12
7
IBIS Model I-V Curves (1/2)
[Pulldown] referenced to [Pulldown Reference]:
Contains the difference of drive and receive (3-state)
model I-V curves for driver driving low
Origin of the curve is usually 0V for normal CMOS
buffers
[Pullup] referenced to [Pullup Reference]:
Contains the difference of drive and receive (3-state)
model I-V curves for driver driving high
The origin of the curve is usually the supply voltage (Vcc
or Vdd)
6- 14
8
IBIS Model I-V Curves (2/2)
[GND Clamp] referenced to [GND Clamp Reference]:
Contains the receive (3-state) model I-V curves
The origin of the curve is usually 0v (GND) for normal CMOS
buffers
[Power Clamp] referenced to [Power Clamp Reference]:
Contains the receive (3-state) model I-V curves
The origin of the curve is usually at the supply voltage (Vcc or
Vdd)
6- 16
9
IBIS I-V Curve Rules of Thumb
Generally, I-V curves will be from –Vdd to
2*Vdd:
The theoretical max overshoot due to full
reflection is 2X the signal swing
Current is positive when flows into the device
GND Clamp range is –Vdd to Vdd
Power Clamp range is Vdd to 2*Vdd
6- 18
10
Ramp and V-t Curve Measurements
The [Ramp] and [Rising Waveform], [Falling
Waveform] keywords describe the transient
characteristics of the buffer:
Information on how fast the pullup and pulldown transistors
turn on and off with respect to time
Die capacitance (C_comp) is included
Package effects are not included
6- 20
11
Schematic of an I/O Circuit
Example of a simple link simulation using I/O
buffer
IBIS Buffer model used to replace transistors
W-element used to model transmission line
6- 22
12
IBIS Buffer Basic Syntax
BufferName node1 node2 …nodeN
+ file=‘/fullpath/file.ibs’
+ model=‘modelName’
Number of nodes depends on types of buffer
Node sequence is predefined for each supported
buffer type
6- 24
13
Supported Buffer Types and Syntax (1/2)
Input buffer
B_INPUT nd_pc nd_gc nd_in nd_out_of_in
Output buffer
B_OUTPUT nd_pu nd_pd nd_out nd_in [nd_pc nd_gc]
TrBi-state buffer
_3STATE nd_pu nd_pd nd_out nd_in nd_en [nd_pc nd_gc]
Input/Output buffer
B_IO nd_pu nd_pd nd_out nd_in nd_en V_out_of_in [nd_pc nd_gc]
Input ECL Buffer
B_INPUT_ECL nd_pc nd_gc nd_in nd_out_of_in
Output ECL Buffer
B_OUTPUT_ECL nd_pu nd_out nd_in [nd_pc nd_gc]
Tristate ECL Buffer
B_3STATE_ECL nd_pu nd_out nd_in nd_en [nd_pc nd_gc]
6- 26
14
Supported Buffer Types and Syntax (2/2)
Input-Output ECL Buffer
Terminator Buffer
B_SER_SW nd_in nd_out
Open Drain, Open Sink, Open Source Buffers
B_SERIES nd_in nd_out
Series Switch Buffer
B_TERMINATOR nd_pc nd_gc nd_out
Series Buffer
B_IO_ECL nd_pu nd_out nd_in nd_en nd_out_of_in [nd_pc nd_gc]
Same as output buffer
Open drain and open sink buffers do not include pull-up circuitry but, always
specify nd_pu
Open source buffers do not include pull-down circuitry but, always specify nd_pd
I/O Open Drain, I/O Open Sink, I/O Open Source Buffers
Same as input-output buffer
I/O open drain and I/O open sink buffers do not include pull-up circuitry but,
always specify nd_pu
I/O open source buffers do not include pull-down circuitry but, always specify
nd_pd
6- 28
15
BUFFER Keyword
buffer = {buffer_number | buffer_type}
Buffer numbers
INPUT = 1
OUTPUT = 2
INPUT_OUTPUT = 3
THREE_STATE = 4
OPEN_DRAIN = 5
IO_OPEN_DRAIN = 6
OPEN_SINK = 7
IO_OPEN_SINK = 8
OPEN_SOURCE = 9
IO_OPEN_SOURCE = 10
INPUT_ECL = 11
OUTPUT_ECL = 12
IO_ECL = 13
THREE_STATE_ECL = 14
SERIES = 15
SERIES_SWITCH = 16
TERMINATOR = 17
6- 30
16
BUFFER Keyword Example
Examples:
b2 nd_pu nd_pd nd_out nd_in nd_pc nd_gc
+ file = '.ibis/at16245a.ibs‘
+ model = 'AT16245_OUT‘
+ buffer = 2
b2 nd_pu nd_pd nd_out nd_in nd_pc nd_gc
+ file = '.ibis/at16245a.ibs‘
+ model = 'AT16245_OUT‘
+ buffer = output
6- 32
17
TYP Keyword
typ={typ|min|max|fast|slow}
typ={0|-1|1|2|-2}
If the value of typ is either typ, min, or max, it
signifies a column in the IBIS file from which the
data is extracted:
The default is typ=typ
If min or max data are not available, typ data is used
If the value of typ is fast or slow, combinations of
0
the min and max data will be used Typ
Typ can also be set to a number
Min
-1
Max
1
Fast
2
Slow
-2
6- 34
18
Power On | Off
Power = On (default):
HSPICE connects buffer to power sources specified in
IBIS file
Do not connect the external nodes (nd_pu, nd_pd,
nd_pc, nd_gc) to voltage sources in the netlist
Do not use SAME external node name in different buffer
Power = Off:
Must connect the external nodes to voltage sources or
through parasitic RLC elements to simulate power and
ground bounce
6- 36
19
INTERPOL and NOWARN Keywords
INTERPOL:
Interpol={1|2}
The I-V and V(t) curves need to be interpolated
The recommended default interpolation method is linear
interpolation
interpol = 1
Interpol=2 uses quadratic bi-spline interpolation
NOWARN:
Suppresses warning messages from the IBIS parser
Do not use as the first keyword after the nodes list
6- 38
20
XV_PU and XV_PD Keywords
Enable state variable information of pullup and
pulldown nodes:
xv_pu = state_pu
xv_pd = state_pd
State variable information can be printed:
.print v(state_pu) v(state_pd)
6- 40
21
RAMP_FWF and RAMP_RWF Keywords
Used to select which ramp or waveform data to use from
the available data
Ramp_fwf controls falling waveforms or ramp:
Ramp_rwf controls rising waveforms or ramp:
ramp_fwf= {2|1|0}
ramp_rwf= {2|1|0)
Default is ramp_fwf=2 and ramp_rwf=2:
The first two waveforms found in the model will be used
0 denotes use the ramp data specified in the model
1 denotes use one waveform:
If more than one waveform is available, the first waveform
found in the model is used
6- 42
22
FWF_TUNE and RWF_TUNE Keywords
Control the algorithm for processing ramp and
waveforms:
Default value is 0.1
Value range is from 0 to 1
Used only if ramp_fwf and ramp_rwf are 0 or 1:
fwf_tune = fwf_tune_value
rwf_tune = rwf_tune_value
6- 44
23
C_Comp
C_comp normally is connected between the output
pin (input pin for input buffers)
C_comp can be split between the pullup, pulldown,
power and ground clamps using the keywords:
c_com_pu=<value>
c_com_pd=<value>
c_com_pc=<value>
c_com_gc=<value>
If C_comp is split between the pullup, pulldown,
power and ground clamps and the total exceeds
the C_comp value specified in the IBIS model,
HSPICE will continue the simulation and not give a
warning
6- 46
24
IBIS Buffer Scaling Keywords
All I-V and V-t curves can be scaled:
Default for all scaling factors is 1
Values must be greater than 0
I-V curves scale buffer strength
V-t curves scale buffer delay, rise and/or fall time
Pullup and pulldown scaling factors:
pu_scal=<value>
Power and ground clamp scaling factors:
pc_scal=<value>
gc_scal=<value>
Rising and falling waveform scaling factors:
rwf_scal=<value>
pd_scal=<value>
fwf_scal=<value>
Supply voltage variation scaling factors:
spu_scal=<value>
spd_scal=<value>
6- 48
25
HSP_VER Keyword
The default is the current version of the HSPICE
simulator
Use to set to previous version of the IBIS buffer
Syntax
hsp_ver = hspice_version
6- 50
26
Using the .IBIS Command (1/2)
A buffer is added to the netlist for every pin
Follows the signal_name and model_name defined
in the [Pin] list of the IBIS file
Buffers not created for POWER, GND or NC pins
The .IBIS command creates new buffers in the
netlist
Buffer_name = ‘cname’_‘pin_name’’
Cname is defined in the .ibis card in the netlist
Pin_name is defined by the [Pin] keyword in the .ibs file
6- 52
27
.IBIS Command Syntax (2/2)
Buffer pin names
Die side output node, if package model used:
'cname'_'pin_name'_o
Output node or input node for input buffers:
'cname'_'pin_name'
Enable node for buffers with enable pins:
'cname'_'pin_name'_en
Input node or outofin node for input buffers:
'cname'_'pin_name'_i
Outofin node for buffers other than input buffers:
'cname'_'pin_name'_outofin
6- 54
28
.IBIS Command Syntax (1/2)
.IBIS cname
+ file=‘file_name’
+ component=‘component_name’
+ package=[3|0|1|2|]
+ pkgfile=‘pkg_file_name’
+ <optional keywords>
Keywords
Cname - Instance name of the .IBIS command in the netlist
File_name - IBIS model file name
Component - define using the [Component] keyword in the IBIS
model file
Note: The component name and file name are case-sensitive
6- 56
29
.IBIS Command Syntax (2/2)
Package – (optional, default is 3) defines package parasitics to be
added to each pin
0 - does not use package parasitics
1 - use [Package] definition from the IBIS model file
2 - use [Pin] definition from the IBIS model file
3 – use the [Package Model] if it is defined in the IBIS model file
If [Package Model] is not defined, the [Pin] model will be used
If [Pin] is not defined, the [Package] model will be used
Package Model can be defined in either the IBIS file or the PKG file
Pkgfile – defines file containing package model file
Required if package model is not defined in the IBIS model file
Optional Keywords – any valid B-element optional keyword
6- 58
30
.IBIS Command Examples
Examples:
.ibis memory
+ file = ’dram.ibs’
+ component = ’SIMM’
+ package = 2
.ibis p_test
+ file = ‘comp.ibs’
+ component = ‘cpu_133mhz_ff’
+ package = 3
+ pkgfile = ‘test.pkg‘
+ typ=typ nowarn
6- 60
31
Using the .PKG Command (1/2)
Syntax
.PKG pkgname
+ file = ’pkgfilename’
+ model = ’pkgmodelname’
Where
Pkgname – package card name
Pkgfilename – name of the .pkg or .ibs file that contains
package models
Pkgmodelname – package model defined by [Define
Package Model] in the .pkg file or [Package Model] in the
.ibs file
6- 62
32
Using the .PKG Command (2/2)
Example:
.pkg fp1
+ file=‘ddr2tst.pkg
+ model=‘flatpack1’
The .PKG command automatically creates a series of
either lumped RLCs or distributed RLCs
Package pin names
Nodes on the die side:
’pkgname’_’pinname’_dia
Nodes on the pin side:
’pkgname’_’pinname
6- 64
33
Using the .EBD Command
Describes a PCB or substrate that can contain components or
other boards through a set of user visible pins
The Electrical Board Description (EBD) file describes the
electrical connectivity
The .EBD command is used in conjunction with the .IBIS
command because the EBD file contains the reference
designator of the component
HSPICE automatically creates lumped RLCs or W-elements to
express the paths
Examples of use:
SIMM, DIMM Modules
MCMs
Processor Modules
Packages
6- 66
34
.EBD Command Syntax
.EBD ebdname
+ file = ’ebd_filename’
+ model = ’ebd_modelname’
+ component = ’ibisname:reference_designator’
+ <component = ’ibisname:reference_designator’> …
Keywords
Ebdname – ebd card name
Ebd_filename – name the .ebd file that contains the board description
Ebd_modelname – ebd model defined by [Begin Board Description] in
the .ebd file
Ibisname - Name of the associated .IBIS command to identify IBIS
buffer component
Reference_designator - Reference designator from the node
subparameter of the [Path Description] in the ebd file
Note: The filename and modelname are case sensitive
6- 68
35
.EBD Example
.ebd mb1
+ file = ’memsimm.ebd’
+ model = ’16X8 SIMM’
+ component = ’mem:u21’
.ibis mem
+ file = ’mem16x8.ibs’
+ component = ’SIMM’
+ package=3
+ pkgfile=‘fpsim.pkg’
Pin names
Pins associated with the board will be named
ebdname_pin_name
Where
Pin_name is the pin name given in the [Pin Description] of the ebd
file
6- 70
36
EBD Example
Example from IBIS 4.0 specification
6- 72
37
EBD Limitations
No coupling between paths
No correct modeling of differential signaling
Transmission line parameters have to be derived
with respect to well defined reference planes
Insufficient connector modeling
6- 74
38
Using the .ICM Command
ICM = IBIS Interconnect Modeling Specification
“Interconnect” can be connector, cable, PCB traces or
even an IC package
Defines structure as path between “sections”
Defines the electrical data for each section
Described by
[Begin ICM Model]
…
(path description)
…
[End ICM Model]
Described by
[Begin ICM Section]
…
(RLGC or S-params)
…
[End ICM Section]
Connector
T-line
Connector
Stub
T-line
Connector
Stub
6- 76
39
ICM Structure (1/2)
Header Information
[Begin Header] and [End Header] keywords
Spec. Version
Filename and Revision
Date
Source, Notes, Disclaimer and Copyright
ICM Family
Description of model “family” or group
List of models in the “family”
6- 78
40
ICM Structure (2/2)
ICM Model Description
Type (SLM, S-parameter, MLM_*, etc.)
Signal-to-ground ratio & (optionally) reference Z
Tree Path Description
Nodal Path Description
Links groups of signals through cascaded “sections” of
model data
Describe one-to-one connections between sections and
ports or endpoints of the interconnect
Allows “forks” with same number of conductors
Links sections of model data through input & output nodes
per section
Connections need not be one-to-one
– Allows internal “dangling nodes”
Nodal and Tree Path Descriptions are mutually exclusive
6- 80
41
Additional ICM Constructs
ICM Pin Map
ICM Node Map
Maps connector pins to Tree Path Descriptions
Maps connector pins to Nodal Path Descriptions
ICM Section
Data block for model sections
Data is in RLGC matrix or S-parameter format
Matrices include self-inductance, capacitance,
conductance, loss, etc.
Similar format to IBIS package models
Each section is referenced by at least one Tree or Nodal
Path Description
6- 82
42
ICM Swath
Allows minimal, economical description to be used
for larger connectors or interconnects
Smaller electrical parameter matrices can be repeatedly
mapped over a larger structure
Includes the [ICM Swath Description] and [ICM
Swath Pin Numbers] keywords
6- 84
43
.ICM Syntax
.icm icm_name
+ file=‘filename.icm'
+ model=‘xxx‘
+ <swath = 1/2/3>
Keywords
File – specify particular ICM file to include
Model – specify which model in the file
Swath – indicate which method is used to expand
swath matrix
1.
2.
3.
Centering the swath around the pins of interest
Expand and Centering - Expanding the swath matrix into a
larger swath matrix, centering both swaths about the paths
of interest
Expand to full sized interconnect
6- 86
44
.ICM Example
Example:
.icm icmtreemodel
+ file = 'test_001.icm'
+ model = 'dynamite'
6- 88
45
Multi-Lingual Model Support (1/2)
Supports SPICE or Verilog-A buffer model
Syntax:
B_SPICE node1 node2 node3 …
+ file='ibis_filename' model='model_name'
+ [nd_in=node_input]
+ [nd_en=node_enable]
+ [nd_outofin=node_out_of_in]
+ [typ={typ|min|max}] [power={on|off}]
+ [nowarn]
+ [para_begin para1=value1 para2=value2 …
para_end]
6- 90
46
Multi-Lingual Model Support (2/2)
Buffer element nodes must map port names
declared in [Ports] of [External Model]
The file of subcircuit listed in [Corner] of
[External Model] must be manually included in
netlist if the subcircuit is used by external model
Keywords para_begin and para_end are used to
assign values to parameters which are declared
in [External Model] with Verilog-A language
6- 92
47
Example
bspice Dri Out Vcc 0 Ven Rcv
+ file= 'extmdlva.ibs'
+ model= 'vatest'
+ nd_in=PlsV
+ nd_en=Vcc
+ nd_outofin=Oti
+ typ = typ
+ power=off
.ibs file(extmdlva.ibs) example
;
[External Model]
Language Verilog-A(MS)
;
6- 94
48
Component Calls for [External Circuit]
Support component calls for SPICE or Verilog-A
formatted [External Circuit]
[External Circuit] is used to describe either buffer
(similar to [External Model]) or interconnection
inside component
The naming rule to probe a die node declared in
Port_map of [Circuit Call] in a interconnection
description:
‘cname’_’die_node_name’
6- 96
49
Name Limit Extension
The limit on IBIS filenames has been extended to
44 characters from the existing 24 characters
The model and signal name limit has been
extended to 40 characters from the existing 20
characters
6- 98
50
Lab 6: IBIS Buffers
45 minutes
During this lab, you
will use IBIS buffers
and a transmission
line to do a simple
signal integrity
analysis.
IBIS buffers
Transmission line
Signal Integrity analysis
6- 100
51