Subject: BIRD64.2 - Package Model Selector

From: Mike LaBonte <[email-masked]>
Date: Mon, 09 Oct 2000 01:39:28 -0400

Here is a draft for BIRD64.2, with scoping and exclusivity requirements
added. It also has a minor change intended to convey Roy Leventhal's

suggestion that [Package Model Selector] should not be used to

mix and match different package types.

Mike

*******************************************************************************
*******************************************************************************

BIRD ID#:               64.2
ISSUE TITLE:            Package Model Selector
REQUESTER:              Arpad Muranyi, Intel; Mike LaBonte, Cadence
DATE SUBMITTED:         10-25-99, 11-19-99, 10-8-2000
DATE ACCEPTED BY IBIS OPEN FORUM:     Pending

******************************************************************************
******************************************************************************

STATEMENT OF THE ISSUE:

The current IBIS specification (3.2) does not provide a selection mechanism
for multiple package models.  This may be necessary when a certain die is
shipped in various package styles, or when the corner cases of the package
are described with different package models.

This BIRD is written to provide an easy solution to this deficiency.  This
feature will allow simulator tools to implement a user friendly package
model selection interface and/or better automation for batch and sweep
simulations.

******************************************************************************

STATEMENT OF THE RESOLVED SPECIFICATIONS:

A new keyword shall be introduced in the IBIS specification to provide a user
friendly package model selection mechanism for components which use multiple
package models.  The proposed keyword [Package Model Selector] shall contain a
list of all package model names that the simulator can pick from.  The first
entry in the list is considered to be the default package model.  The package 
model names listed under the [Package Model Selector] must follow the rules
of the package model names associated with the [Package Model] keyword.

To help the user of the simulator tool to make an intelligent choice, it is
highly recommended that a description be placed to the right of each package
model name in the list as a comment.

|=============================================================================
|     Keyword:  [Package Model Selector] 
|    Required:  No.
| Description:  Used to select a package model from a list of package models.
|  Sub-Params:  None.
| Usage Rules:  The [Package Model Selector] keyword can be used in place of 
|               the [Package Model] keyword. The only difference between the 
|               two keywords is that the [Package Model Selector] allows 
|               multiple models to be listed for a package. A component may
|               not have both a [Package Model Selector] keyword and a
|               [Package Model] keyword.
|
|               Each [Package Model Selector] keyword specifies the set of
|               package models for only one component, which is given by
|               the previous [Component] keyword. The [Package Model Selector]
|               keyword may not appear before the first [Component] keyword
|               in an IBIS file.|
|
|               All package model names must appear below the [Package Model
|               Selector] keyword. The package model names listed under the
|               [Package Model Selector] must follow the rules of the package
|               model names associated with the [Package Model] keyword.
|
|               The first entry under the [Package Model selector] keyword
|               shall be considered the default by the simulator tool.
|=============================================================================
|
[Package Model Selector]
|
208-pin_plastic_PQFP_package-even_mode | What more can be said here?
208-pin_plastic_PQFP_package-odd_mode  | It's all in the name.
208-pin_ceramic_PQFP_package-even_mode | More comments and descriptions here.
208-pin_ceramic_PQFP_package-odd_mode  | And some more here too.
|
******************************************************************************

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

Problem statement

Some components are shipped in multiple package styles.  Also, there are
situations when the corner cases of a package are modeled with multiple
package models.  Currently, in these cases the user of the IBIS model has to
manually edit the IBIS file to change the package model name that is called by
the [Package Model] keyword in order to reference a different package model.
This makes automated simulations difficult, if not impossible.

Possible solutions

Add a new, simple keyword to the IBIS specification which works similar to the
already existing [Model Selector] keyword.

******************************************************************************

ANY OTHER BACKGROUND INFORMATION:

Several IBIS model users expressed their desire in private conversations and
IBIS meetings to have such a package model selection mechanism in the IBIS
specification to make their work easier.

An alternate syntax was suggested by Bob Ross during an EMAIL and telephone
correspondence on 10/25/99.  The suggested syntax is identical to the [Model
Selector] syntax, according to which the [Package Model Selector] would be
assigned a name that is called by the (higher level) [Package Model] keyword.
However, unlike in the [Model Selector] case, there is no need for calling the
[Package Model Selector] from a higher level.  This BIRD favors the simpler
vs. the more consistent approach.

Scott McMorrow made a request in an EMAIL on 11/12/99 to incorporate typ.,
min., and max. columns in the list of package models under the model selector
name to assist in automating the package model selection based on corner
cases.  According to the exisiting rules this is not possible, becuase the
package model names are allowed to be up to 40 characters in length.  Three
package model names on the same line could add up to 122 characters, which
violates the current 80 character per line rules of the IBIS specification.

Further, package model names are allowed to include blank characters, which
requires a delimiter other than the space or tab character between the
typ., min., and max. columns.  The usage of a new delimiter introduces another
inconsistency in the IBIS specification, since spaces and/or tab characters
are widely used as delimiters between columns in current IBIS versions.

A technical dilemma regarding the automated selection of package models based
on typ., min., and max. qualifiers remains to be answered also.  What do typ.,
min., and max. represent?  Impedance, wave velocity, trace length, or perhaps
the amount of cross talk?  Simulation tool users will most likely make their
choices based on individual preferences, possibly depending on project
requirements.  For this reason it seems to make more sense to give only a list
that contains all of the package models without the typ., min., and max.
qualifiers.  The selection and automated usage of the various package models
should then be done through a GUI or configuration mechanisms provided by the
tool.

The differences between the model name and package model name restrictions
required a change even in this BIRD.  The description field of the [Model
Selector] keyword is separated by one or more space or tab character(s) from
the model name.  However, since package model names can contain blank
characters, space or tab characters will not work as delimiters for the
description field of the [Package Model Selector] keyword.

Since the contents of the description field is only used for informational
purposes which does not effect the simulations I decided to use the comment
character (|) as the delimiter for now.  This option was actually discussed
for the [Model Selector] also but voted down for the reason that tools reading
an IBIS model have all the rights to ignore all comments, therefore a GUI
would not know how to distinguish between a legitimate descrription and a
meaningless comment.  Does anyone have a better suggestion?

Revision 64.2 changes 10-8-2000, Mike LaBonte:

Added scoping requirements and mutually exclusive relationship with [Package
Model]. Changed wording "... allows multiple package models to be listed" to
"... allows multiple models to be listed for a package". The new phrasing
implies that [Package Model Selector] should be used to specifiy multiple
models for one package, not models for multiple packages. It might be
inappropriate to place package models with different pin assignments,
thermal characteristics, etc. on a [Package Model Selector] list, since
these variations would normally require changes to other elements of the
component model.

******************************************************************************