Subject: Bird 36

From: Stephen Peters <[email-masked]>
Date: Mon, 24 Jun 1996 10:12:48 -0700

Following is a proposal that defines a new file type called '.ebd'
(Electrical Board Description).  A .ebd file allows a simple, electrical
description of SIMM modules, connectors, and related type components. 
Specifically, it allows one to describe a PCB that mounts one or more
components that connect to the outside word thru a set of pins.  It
follows the same basic description format as the current .pkg file, and
as such retains the section based description and simple coupling
matrices.  A .ebd file is also used to describe connectors and sockets.  
BACKGROUND:
     A fundamental concept of IBIS is that a component description consists
of a set of pin that are in some way connected to a set of buffers.  In a 
standard .ibs file this pin-to-buffer mapping is established by the [Pin] 
keyword.  This connection can be a lumped L/R/C or the section based 
description ([Pin Numbers] keyword) of Bird 28.3.  However, even with 
Bird 28.3 the .pkg file still only allows a pin-to-buffer mapping as 
defined by the [Pin] keyword.  The BIRD allows two more mappings
to be defined - a pin to pin mapping that supports connectors, and
a pin to component(s) connection that supports SIMM models and the like.
=============================================================================

                 Buffer Issue Resolution Document  (BIRD)
BIRD ID#:        36
ISSUE TITLE:     Electric Descriptions of Boards and Connectors
REQUESTER:       Stephen Peters
DATE SUBMITTED:  June 23, 1996
DATE ACCEPTED BY IBIS OPEN FORUM:  Pending

******************************************************************************
******************************************************************************
STATEMENT OF THE ISSUE:  There is a need to describe SIMM modules and related
type components that consist of one or more ICs mounted on a PCB board that
connects to a system thru a set of pins.  The following bird proposes a new
type of file called '.ebd' (Electrical Board Description) that addresses this
need.  A '.ebd' file can also be used to describe connectors and sockets.

******************************************************************************
STATEMENT OF THE RESOLVED SPECIFICATIONS:  The following text is placed
in the specification after the .pkg file description and before the
[End] keyword description.

=======================  ELECTRICAL BOARD DESCRIPTION ========================

    A Board Level Component is defined as a module that contains
one or more IC packages that connect to another module or board thru a
set of user visible pins.  For example, a SIMM module is a board level
component in that it contains several DRAM packages that connect to a
PCB thru an edge connector.  To provide a simple electrical description
of the connection between the pins of the board level component and the
IC packages, an electrical board description file (a .ebd file) is defined.
The .ebd file is also used to describe the electrical characteristics of
connectors and sockets.

Usage Rules:
     A .ebd file is intended to be a stand alone file, not associated
with any '.ibs' file.  Board level component and connector descriptions 
are stored in a file whose name looks like <filename>.ebd, where 
<filename> must conform to the naming rules given in the general 
syntax section of this specification.  The '.ebd' extension is mandatory.

Contents:
    A .ebd file is structured similar to a standard IBIS file.  It must
contains the following keywords, as defined in the IBIS
specification: [IBIS Ver], [File name], [File rev], and [End].  It may
also contain the following optional keywords: [Comment char], [Date],
[Source], [Notes], [Disclaimer] and [Copyright].  The actual board level
component description is contained between the keywords [Begin Electrical
Description] and [End Electrical Description], and includes the keywords
listed below. 

[Begin Electrical Description]
[Connector Info]
[Manufacture]
[Number of Pins]
[Pin List]
[Path Description]
[Model Data]
[Resistance Matrix]
[Inductance Matrix]
[Capacitance Matrix]
[Bandwidth]
[Row]
[End Model Data]
[End Electrical Description]

  More than one [Begin Electrical Description]/[End Electrical Description] 
keyword pair is allows in a .ebd file.  

|=============================================================================
|    Keyword:  [Begin Electrical Description]
|   Required:  Yes
|Description:  Marks the beginning of a Electrical (board or connector)
               description.
|Usage Rules:  The keyword is followed by the name of the board level
|              component or connector.  If the .ebd file contains more than 
|              one [Begin Electrical Description] keyword, then each name must 
|              be unique.  The length of the component name must not exceed 40
|              characters in length, and blank characters are allowed.
|              For every [Begin Electrical Description] keyword there must be
|              a matching [End Electrical Description] keyword.
|-----------------------------------------------------------------------------
[Begin Electrical Description]  16Meg X 8 Simm Module
|
|=============================================================================
|    Keyword:  [Manufacture]
|   Required:  Yes
|Description:  Declares the manufacture of the part(s) that use this .ebd
|              file.
|Usage Rules:  Following the keyword is the manufactures name.  It must not
|              exceed 40 characters, and can include blanks characters.  Each
|              manufacture must use a consistent name in all .ebd files.
|-----------------------------------------------------------------------------
[Manufacturer] Quality SIMM Corp.
|
|=============================================================================
|    Keyword:  [Connector Info]
|   Required:  No
|Description:  This keyword is used if the .ebd file is describing a mated
|              connector model.  Using this keyword allows the user to include
|              several pieces of information specific to connector models into
|              an .ebd file.
|Sub-params:   Min_rise_time, Cpad1, Cpad2
|Usage Rules:  This keyword is followed by the three listed sub-parameters.
|              The Min_rise_time parameter is required, the Cpad1 and Cpad2
|              parameters are optional.  Each subparameter is followed by an 
|              equals sign (=), then a single numeric argument.
|
|              Cpad1 and CPad2 define default pad capacitances for both sides
|              of a mated connector model.  If omitted, the default value is
|              zero pF.  In all cases the simulator may override the
|              listed or default value with values extracted from the actual
|              pad dimensions provided in a physical board description.
|
|              The Min_rise_time parameter is used to specify the minimum
|              rise time of a signal for which a connector (or package) model
|              is still considered accurate under test fixture conditions.
|              This value is based on the smallest physical feature that is
|              modeled in the electrical description.  Note that a simulator
|              may choose to produce a warning message if a signal with a
|              faster edge stimulas the model.  Simulators should also
|              use this parameter in determining how to model a section
|              with non-zero length.
| 
|              The Min_rise_time parameter is followed by a single numeric
|              argument specifying the 20% to 80% rise time of the
|              fastest pulse the model will accuratly pass. This value will
|              be the minimum value where the signal line "impedance" is 
|              within 10% of the simulated impedance.  This impedance 
|              parameter is the dynamic ratio at the mated model input 
|              voltage to input current over time under the condition
|              that the signal line has a source and load termination of
|              of 50 ohms and all other lines are grounded.
|-----------------------------------------------------------------------------
[Connector Info]
Cpad1 = 1.0p
Cpad2 = 0.5p
Min_rise_time = 60p
|
|=============================================================================
|    Keyword:  [Number of Pins]
|   Required:  Yes
|Description:  Tells the parser the number of pins to expect
|Usage Rules:  The field must be a positive decimal integer.
|-----------------------------------------------------------------------------
[Number of Pins] 128
|
|=============================================================================
|    Keyword:  [Pin List]
|   Required:  Yes
|Description:  Tells the parser the set of names that are used for the package
|              pins and also defines pin ordering.  The first pin name given
|              is the "lowest" pin, and the last pin given is the "highest".
|              The pin names cannot exceed five characters in length. In the
|              case of a connector description the pins on both sides of
|              a connector are listed.  
|Usage Rules:  Following the [Pin Numbers] keyword, the names for 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 Numbers]
A1
A2
A3
| .
| .
A22
B1
| .
| .
|etc.
|
|=============================================================================
|    Keyword: [Path Description]
|   Required: Yes
|Description: This keyword allows the user to describe the connection between
|             the user accessible pins of a component and the pins of the ICs 
|             mounted on that component.  If describing a connector this 
|             keyword is used to describe the path from one pin of a connector  
|             to another.  This description is directly analogous to the 
|             section descriptions contained in a .pkg file, and uses a 
|             similar list of subparameters.  The major difference is the 
|             additional concept of an explicit pin and node.
| Sub-Params: Len, L, R, C, Matrix, Fork, Endfork, Pin, Node
|Usage Rules: Each individual connection path (user pin to node(s) description
|             or connector pin-to-pin description) begins with the 
|             [Path Description] keyword and a path name,
|             followed by the subparameters used to describe the path 
|             topology and the electrical characteristics of each section of
|             the path.  The path name must not exceed 40 characters,
|             blanks are not allowed, and each occurrence of the [Path
|             Description] keyword must be followed by a unique path
|             name.  The individual subparameters are broken up into those
|             that describe a sections electrical properties, and those
|             that describe the topology of a path.
|
|             Section Description Subparameters:
|             The Len, L, R, and C subparameters specify the length, 
|             inductance, capacitance and resistance of each section in
|             a path description. If a particular section exhibits 
|             coupling to an adjacent (same numbered) section of a
|             different path, then the Matrix subparameter is used.  
|             Len     The physical length of a section.  Lengths are given
|                     in terms of arbitrary 'units'.
|             L       The inductance of a 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 section, in terms of
|                     capacitance per unit length.
|             R       The DC (ohmic) resistance of a section, in
|                     terms of ohms per unit length.
|             Matrix  Use of this subparameter means that this sections
|                     electrical parameters are presented as part of
|                     a coupling matrix.  The data for the matrix is included
|                     between the [Model Data]/[End Model Data] keyword pairs
|                     as described below.
|
|             Topology Description Subparameters:
|             The Fork and Endfork subparameters denote branches from the 
|             main node-to-pin or pin-to-pin connection path.  The Node 
|             subparameter is used to reference an external component 
|             description file.  The Pin subparameter is used to indicate 
|             the point at which a path connects to a user visible pin. 
|             Fork    This subparameter indicates that the sections
|                     following (up to the Endfork subparameter) are part
|                     of a branch off of the main connection path.
|                     This subparmeter 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.
|             Node    pin.reference_designator
|                     This subparameter is used when the connection
|                     path connects to a pin of another, externally
|                     defined component.  The arguments of the Node 
|                     subparameter indicate the pin and reference designator 
|                     of the external component.  The pin and reference
|                     designator portions of the argument are separated by
|                     a period (".").  The method by which a reference
|                     designator is mapped to an external component
|                     description (usually another .ibs file) is
|                     simulator dependent.
|             Pin     This subparameter is used to mark the point at which
|                     a path description connects to a user accessible pin.
|                     Every path description must contain at least one 
|                     occurrence of the Pin subparameter.  The value of the 
|                     Pin subparameter must be one of the pin names listed 
|                     by the [Pin Numbers] keyword.
|             
|
|             Using The Subparameters to Describe Paths:
|             A section description begins with the Len subparameter and
|             end with the backslash (/) 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, Endfork, Node and Pin subparameters
|             are placed between section descriptions (i.e. between the
|             concluding backslash of one section and the 'Len' parameters
|             that starts another) and are delimited from the section
|             descriptions by a backslash.  The arguments of the Pin and 
|             Node subparameter are separated by white space; no equal sign
|             is used.  All path 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 /').
|             The first section that occurs after the [Path Description] 
|             keyword is section one.  Sections are numbered in ascending 
|             order as they are encountered in the path description.
|
|             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, as noted below, if a non-
|             zero length is specified AND the [Connector Info] keyword
|             is used then the L/R/C of that section MUST be treated as a 
|             distributed elements.
|
|             Legal Subparameter Combinations for Section Descriptions:
|             A) A single Len = 0 subparameter, followed by a slash.
|             The is used to describe a section with no data.
|
|             B)  Len and a single Matrix subparameter, followed by a
|             backslash. The Len subparameter specifies the length of that
|             section while the Matrix subparameter indicates that this
|             section of this package stub is electrically coupled to the
|             corresponding (same numbered) section of an adjacent path
|             description and the coupling terms are listed in a matrix
|             format.  The matrix description must include both the 'self'
|             inductance/capacitance/resistance (as required) of a section
|             as well as the mutual coupling terms.  If one section is
|             described using the Matrix subparameter then the
|             corresponding (same numbered) sections on ALL other path
|             descriptions must use the Matrix subparameter.
|
|             C)  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 sub-
|             parameters represent lumped elements.  If the Len sub-
|             parameter is non-zero, then the L/R/C subparameters represent
|             distributed elements.  If the [Connector Info] keyword is used
|             the simulator MUST treat them as such.
|
|             D) The first subparameter following the [Path Description]
|             keyword must be 'Pin', followed by one or more section
|             descriptions.  The path description can terminate in a
|             node, section or another pin. 
|
|---------------------------------------------------------------------------
|              HERE FOLLOWS SOME EXAMPLES 
|---------------------------------------------------------------------------
|
|  A CONNECTOR DESCRIPTION
|
[Path Description]  J1-P1
Pin = J1 /
Len = 2.0 L=8.35n C=3.34p R=0.01 /
Len = 0.5 L=1.0n  C=2.7p  /
Pin = P1 /
|
|  A PATH ON A SIMM MODULE
|
[Path Description] CAS_2
Pin J25 /
Len = 0.5 L=8.35n C=3.34p R=0.01 /
Node 15.u21 /
Len = 0.5 L=8.35n C=3.34p R=0.01 /
Node 15.u22 /
Len = 0.5 L=8.35n C=3.34p R=0.01 /
Node 15.u23 /
|
|  A CONNECTOR WITH COUPLING
|
[Path Description]  xyz
Pin J5
Len = 0 L=1.2n / 
Len = 1.3 Matrix  / 
Len = 0.47 L=8.35n C=3.34p R=0.01 /
Pin P5
|
|
|  A DESCRIPTION USING THE FORK AND ENDFORK SUBPARAMETERS
|
[Path Description] PassThru1
Pin B5
Len = 0   L=2.0n /
Len = 2.1 L=6.0n C=2.0p /
 Fork /
 Len = 1.0 L= 1.0 C= 2p
 Node R15.3
 Endfork /
Len = 1.0 l = 6.0n c=2.0p /
Pin = A5
|
|
|=============================================================================
|    Keyword: [Model Data]
|   Required: Yes, if any of the path descriptions use the Matrix subparameter
|             to describe a section. 
|Description: Indicates the beginning of the matrix data used to describe
|             the coupling between path sections.  
|Usage Rules: [Model Data] keyword must be followed by the word 'section'
|             and the section number the matrix data applies to.  There
|             must be a [Model Data] keyword for every section in a
|             path description that uses the Matrix subparameter.
|             Note that if the [Path Description] keyword is used but no 
|             package stub sections use the Matrix subparameter then the 
|             [Model Data] and [End Model Data] keyword are not required.
|-----------------------------------------------------------------------------
[Model Data] section 2
|
|=============================================================================
|    Keyword: [End Model Data]
|   Required: Yes, if the [Model Data] keyword is present. 
|Description: Indicates the end of the matrix data used to describe
|             a section.  
|Usage Rules: In between the [Model Data] and [End Model Data] keywords is
|             the matrix data itself.  The data is a set of three matrices:
|             the resistance (R) , inductance (L) , and capacitance (C),
|             matrices.  Each matrix can be formatted differently (see
|             below).  Use one of the matrix keywords to mark the
|             beginning of each matrix.  As with the [Model Data] keyword
|             the [End Model Data] keyword is followed by the word 'section'
|             and the section number.
|-----------------------------------------------------------------------------
[End Model Data] Section 2
|
|=============================================================================
|   Keywords: [Resistance Matrix], [Inductance Matrix], [Capacitance Matrix]
|             [Bandwidth], [Row]
|   Required: Yes, if the [Model Data] keyword is present, following the
|             same rules and restrictions as detailed in the .pkg file
|             description 
|Description: These keywords contain the actual matrix data for each section
|             described by a matrix.  These keywords appear between the [Model
|             Data] and [End Model Data] Keywords.
|Usage Rules: The usage rules for these keywords in a .ebd file will follow
|             exactly the rules defined in the .pkg file description of this
|             specification.
******************************************************************************
ANALYSIS PATH/DATA THAT LED TO SPECIFICATION: