Subject: S2IBIS VER 2.091 PROBLEMS

From: [email-masked] ( Bob Ross)
Date: Wed, 3 Apr 96 14:30 PST

To IBIS Members:

Per the last meeting request, here is a list of problems that I sent
to NCSU last November for the Beta s2ibis Version 2.091.  This is to
start documenting the problems.  These comments also include some 
comments on the documentation.  Others may have sent some crash
cases directly.

(1)  As previously noted, there seems to be a minor glitch in that the
first line of the newtryme.s2i must either be a blank line or a commented
line.  It cannot start with [IBIS Ver] as documented.

(2)  Compared with s2ibis_1.2, there is some missing functionality which
is needed.  The first problem is that [vinl] and [vinh] have dual meanings:
first to set the Spice input Pulse levels for simulation, and secondly
to enter Vinl = xx and Vinh = xx.  In Version 1.2, the specification
thresholds were independent options set by **Vinh = xxx ,etc.  Furthermore
Version 1.2 had some additional optional min and max input voltage settings
using **Input_ramp_xxx vil vih tr tf where xxx is typ, min or max.

What I propose is still using [Vinl] and [Vinh] ONLY for actual threshold
entries if given (put nothing otherwise).  Use new keywords for Input
voltage levels and input rise times:
[Vil]  xx xx xx
[Vih]  xx xx xx
[Tr]  xx xx xx
[Tf]  xx xx xx

For example for CMOS input with 
[Voltage Range]  5 4.5 5.5

you might set 
[Vih]  5 4.5 5.5                            |reqd
[Vil]  0 0   0                              |reqd
[Tr]   1n 2n .5n                            |optional
[Tf]   1n 2n .5n                            |optional 
[Vinh] 3.5
[Vinl] 1.5

If a control entry is NA, then use the "typ" entry as the default.  The
Typ numerical entry is required if the control keyword is used.

(3)  There is no provision similar to **NoModel, **NoPolarity, 
**NoEnable and Overiding the Polarities and Enable as in Version 1.2
The NoModel is important because the Input Pin may really be an 
internal input (e.g., without clamps) and not really represent a 
real input that is provided by as separate model.  The others
are conveneniences to standardize on models or to configure generic
Spice model for a specific part.  My example in this case is that
often the F244 model is given to represent F241, F242, etc., and the
only difference is the polarity of the enable and inputs.

(4)  I do not have a test case yet for this, but under some conditions
from customers where they did something wrong - there can be out of
range entries 0000000000000000000000000000A ... ...

This might be a clamping table where the prior, normally formatted entries
may be go to GA and TA etc.  Some sort of exponential conversion needs
to be provided for larger than T and smaller than f units prefixes.

(5)  In you newtryme.s2i test case, I used for the maximum entry of
[C_comp] the scientific notation entry of 4e-12 and got a Segmentation
fault error along with error text.  I get Segmentation fault for other
errors as well - e.g. putting xxx or omitting the parameter.  So
two issues exist:  "Segmentation fault" is really a crash; so a
more graceful memory cleanup is needed.  Also, Scientific Notation
of numerical entries (and/or units prefixes) should be allowed.
So I should be able to enter 1e-12 or 1e-9mF for 1pF.

(6)  Another parameter that is missing is something similar to 
*[Clamp_Tolerance] amps 
that exists in Version 1.2.  One Customer has clamp currents in both
tables > about 5e-6 which do not need to be presented.

(7)  Regarding the documentation, it is very good (at least to me).
Here are some minor typo's or questions:

(a)  I have not checked, nor is it clear that for spicetype, are they 
case sensitive.  Do you support other abbreviations such as P, H, 2, 3?

(b)  Temperature Range defaults might be for CMOS - T_min = 100C and
T_max = 0C.  For whatever is chosen, a comment should be made that
the set of defaults apply for CMOS technology (or for Bipolar TTL and
ECL).  

(c)  For [Rload]:  
"Describes the load resistance to use when performing the simulations
for the VT tables".   (Change VI curves to VT tables)

(d)  [Manufacturer] name is required by IBIS.  You indicate that it
is optional.  Therefore the default when the [Manufacture] control
command is not provided is to always insert
[Manufacturer] Manufacturer Name

(e)  One of the most confusing aspects which customers who are not very
familiar with IBIS is the [Package Model] example in the newtryme.s2i.
It should be proceeded with some comment line that this is used only if
a .pkg file exists or if the [Define Package Model] keyword (which
s2ibis2 does not support) is used.  One customer used [Package Model] name
and then added [Package] name to the [Package] keyword.  Similar to
[Pin Mapping], you should document that is there just for illustration
purposes.

(g)  Under [Model Type]  3-State should be changed to 3-state.

Bob Ross
Interconnectix, Inc.