Subject: IBIS Test Matrix for IBISCHK2 Beta 6 Update

From: [email-masked] ( Bob Ross)
Date: Thu, 25 May 95 11:34 PDT

Hello Fellow IBISans, Paul and Ron:

Much progress has been made and nearly all of the PACKAGE problems are
fixed.  Four issues are listed below:

(1) One crash related to [Number of Pins] missing data has been fixed.
Another crash occurs if the entry is incorrectly given as "1" (several
other numbers may also produce a crash).  You get "mtx.c323: assertion
failed. Abnormal program termination."  I get similar results on DOS.
Also, I got a Segmentation fault on a Unix system in one case.  So there
are problem still some pointer problems which will lead to crashes.

(2) For "Banded_matrix" choices, the Specification states that the last
row entries contain successively fewer columns.  The parser operates
successfully, but I believe the Specification is wrong.

(3) For "Sparse_matrix" choices, some problem are related to not accepting
alpha-numeric indicies in the "Index" column of the Row data line.

(4) There is an omission in the Specification regarding the correlation 
of actual [Pin] entries and number of entries with those required in
[Pin Numbers].  

Attached at the end is an IBIS file illustrating these points.

Otherwise, the IBISCHK2 works well at testing the major features at a very
robust level, and is converging on handling the Version 2.1 package model
extensions very well.  This is required for dealing with any extensions such
as those of BIRD28.

Good Work Ron and Paul!

Bob Ross
Interconnectix, Inc.

                A TEST MATRIX FOR IBIS VERSION 2e (Beta 6)

DATE:  10/31/94, 12/2/94, 1/26/95, 3/4/95, 3/8/95 5/25/95

SPECIFICATION TESTED                   PASS    Comments/who tested
--------------------------------------+-----+-----------------------------+
Test that the parser only             |     |                             |
accepts 1.0, 1.1, 2.0, 2.1 as         |     |                             |
valid arguments to the [IBIS Ver]     | yes | Stephen Peters              |
keyword.                              |     |                             |
                                      |     |                             |
Tab character warning                 | yes | Bob Ross                    |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Scaling Factors:                      |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
"T", "G" and "f" as valid scaling     | yes | No indication either way    |
factors.                              |     | Bob Ross - this is proper   |
                                      |     | operation                   |
Test that the parser does not         |     |                             |
recognize "t", "g" and "F" as         | yes | No indication either way    |
Valid scaling factors.                |     | Bob Ross - proper operation |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Keywords rules:                       |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
the [GND clamp] and [PWR clamp]       | yes |  Stephen Peters             |
keywords without the underscore.      |     |                             |
Test Underscore rule for 3-word       | yes |  Bob Ross                   |
Keyoreds - all 4 cases.               |     |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if a keyword does not begin     | yes |  Stephen Peters             |
in column 1.                          |     |                             |
                                      |     |                             |
Test case insensitivity of all        |     |                             |
keywords, reserved words and          | yes | Pin mapping keyword does not|
sub-parameters                        |     | recognize "power" and "gnd" |
                                      |     | Bob Ross - OK, should be    |
                                      |     | "pulldown_ref", "pullup_ref,|
                                      |     | "gnd_clamp_ref", and        |
                                      |     | "power_clamp_ref"           |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Comments and Notes:                   |     |                             |
                                      |     |                             |
Test that the parser does not         |     |                             |
accept "+" and "-" as valid           | yes |  Stephen Peters             |
comment characters.                   |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Stephen Peters             |
the [Copyright] keyword.              |     |                             |
                                      |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Component keyword related:            |     |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if the [Component] keyword      | yes |   Stephen Peters            |
has no component name after it.       |     |                             |
                                      |     |                             |
Test that the parser issues a warning |     |                             |
if the component name contains blanks | yes |   Stephen Peters            |
                                      |     |                             |
Test the component name length        |     |                             |
rules:                                |     |                             |
parser accepts name < 40 characters   | yes |   Stephen Peters            |
parser accepts name = 40 characters   | yes |        "                    |
parser fails if name > 40 characters  | yes |        "                    |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if the [Manufacture] keyword    | yes |   Stephen Peters            |
has no Manufactures name after it.    |     |                             |
                                      |     |                             |
Test the Manufactures name length     |     |                             |
rules:                                |     |                             |
parser accepts name < 40 characters   | yes |    Stephen Peters           |
parser accepts name = 40 characters   | yes |    Stephen Peters           |
parser fails if name > 40 characters  | yes |    Stephen Peters           |
                                      |     |                             |
Test that an .ibs file can contain    | yes |    Bob Ross                 |
more than one [Component] keyword     |     |                             |
and component description.            |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Pin keyword related:                  |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |   Stephen Peters            |
the [Pin] keyword.                    |     |                             |
                                      |     |                             |
Test that the parser issues a         |     |                             |
error when every model_name does      | yes |   Bob Ross                  |
not have a corresponding model        |     |   (I don't see the problem) | defined.                              |     |                             |
                                      |     |                             |
Test the "3 column or 6 column"       |     |                             |
rule.                                 | yes |   Stephen Peters            |
                                      |     |                             |
Test that the parser issues an error  |     |                             |
when non-numeric data is in the pin   | yes |   Stephen Peters            |
data columns                          |     |                             |
--------------------------------------+-----+-----------------------------+
Package Model related:                |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Stephen Peters             |
the [Package Model] keyword.          |     |                             |
                                      |     |                             |
Test the package model name length    | yes |  Bob Ross                   |
rules                                 |     |  Fixed:                     |
parser accepts name < 40 characters   | yes | Name is taken as a DOS file |
parser accepts name = 40 characters   | yes | name and not as argument to |
parser fails if name > 40 characters  | yes | the [Define Package Model]  |
                                      |     | keyword                     |
Verify that the parser issues an      |     |                             |
error if it cannot find:              |     |                             |
                                      |     |                             |
1. A [Define Package Model] keyword   |     |                             |
that has the same argument as the     | yes |  Bob Ross                   |
[Package Model] keyword or            |     |                             |
                                      |     |                             |
2. An external .pkg file that has     | yes |  Bob Ross                   |
a [Define Package Model] keyword      |     |                             |
with  has the same argument as the    |     |                             |
[Package Model] keyword.              |     |                             |
                                      |     |                             |
3. Test that the parser recognizes    |     |                             |
all keywords in the package model     |     |                             |
description and operation below:      |     |                             |
   (1) Error if Missing               |     |                             |
   (2) Error if Duplicate             |     |                             |
   (3) Error if Wrong Argument        |     |                             |
[Define Package Model]       1,2,3    | yes |  Bob Ross                   |
[Manufacturer]               1,2,3    | yes |                             |
[OEM]                        1,2,3    | yes |                             |
[Description]                1,2,3    | yes |                             |
[Number of Pins]       1,2,3-fails    | NO  |  MAY CRASH if wrong number  |
[Pin Numbers]                1,2,3    | yes |                             |
[Model Data]                 1,2      | yes |                             |
[Resistance Matrix]          2,3      | yes |                             |
[Inductance Matrix]          1,2,3    | yes |                             |
[Capacitance Matrix]         1,2,3    | yes |                             |
[Bandwidth]                  1,2,3    | yes |  fixed                      |
[Row]                  1,2,3-fails    | NO  |  (problems below)           |
[End Model Data]             1,2      | yes |  Bob Ross                   |
[End Package Data]           1,2      | yes |      "                      |
                                      |     |                             |
                                      |     |                             |
4. Full_matrix Tests                  |     |  Bob Ross                   |
[Bandwidth] error test                | yes |                             |
[Row] number entry (match pin)        | yes | fixed                       |
[Row] number entry (repeated)         | yes | fixed                       |
[Row] number entry (all rows entered) | yes | fixed                       |
[Row] format (upper triange matrix)   | yes | fixed                       |
[Row] format (excessive data)         | yes |                             |
[Row] format (missing data)           | yes | fixed                       |
                                      |     |                             |
5. Banded_matrix Tests                |     |  Bob Ross                   |
[Bandwidth] req'd test                | yes |  fixed                      |
[Bandwidth] argument req'd            | yes |                             |
[Bandwidth] argument value            | yes |                             |
[Row] number entry (match pin)        | yes |  fixed                      |
[Row] number entry (repeated)         | yes |  fixed                      |
[Row] format (excessive data)         | yes |                             |
[Row] format (missing data)           | yes |  fixed                      |
[Row] format last rows SPEC ISSUE     | NO  |  NEEDS TO BE RESOLVED       |
                                      |     |                             |
6. Sparse_matrix Tests                |     |  Bob Ross                   |
[Bandwidth] error test                | yes |                             |
[Row] number entry (match pin)        | yes |  fixed                      |
[Row] number entry (repeated)         | NO  |                             |
[Row] index match                     | yes |                             |
[Row] index (alpha string)            | NO  |                             |
[Row] format (excessive data)         | yes |  fixed                      |
[Row] format (missing data)           | yes |  fixed                      |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Pin Mapping keyword related:          |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Stephen Peters             |
the [Pin Mapping] keyword.            |     |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if every pin listed in the      | yes |  Bob Ross - fixed           |
[Pin] keyword does not have an        |     |                             |
entry in the [Pin Mapping] table      |     |                             |
                                      |     |                             |
Test the "3 column or 5 column"       | yes |  Stephen Peters             |
rule.                                 |     |                             |
                                      |     |                             |
Test that NC is a valid entry         |     |                             |
in a column.                          | yes |  Stephen Peters             |
                                      |     |                             |
Test that each unique entry label     |     |                             |
must connect to at least one pin      |     |                             |
whose model name is POWER or GND      | yes |  Stephen Peters             |
                                      |     |                             |
Test that NA is NOT a valid           |     |                             |
column entry                          | yes |  Bob Ross                   |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Diff Pin keyword related:             |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Bob Ross                   |
the [Diff Pin] keyword.               |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Bob Ross                   |
the 5 associated sub-parameters       |     |                             |
                                      |     |                             |
Test the "4 column or 6 column"       | yes |  Bob Ross                   |
rule.                                 |     |                             |
                                      |     |                             |
Test that NC is NOT a valid           | yes |  Bob Ross                   |
column entry.                         |     |                             |
                                      |     |                             |
Test that NA is a valid column        | yes |  Bob Ross                   |
entry.                                |     |                             |
                                      |     |                             |
Reports error for duplicate pin       | yes |  Bob Ross                   |
numbers.                              |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
[Model] keyword:                      |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Bob Ross                   |
the [Model] keyword.                  |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
each Model_type:                      |     |                             |
Input                                 | yes |   Bob Ross                  |
Output                                | yes |                             |
I/O                                   | yes |                             |
3-state                               | yes |                             |
Open_drain                            | yes |                             |
I/O_open_drain                        | yes |                             |
Open_sink                             | yes |                             |
I/O_open_sink                         | yes |                             |
Open_source                           | yes |                             |
I/O_open_source                       | yes |                             |
Input_ECL                             | yes |                             |
Output_ECL                            | yes |                             |
I/O_ECL                               | yes |                             |
Terminator                            | yes |                             |
                                      |     |                             |
Test that the parser issues           |     |                             |
a warning if an input type model      | yes |  Stephen Peters             |
does not have Vinh or Vinl defined.   |     |                             |
For All I/O_* cases.                  | yes |  Bob Ross                   |
                                      |     |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if the Model_type or C_comp     | yes |  Stephen Peters             |
sub-parameters are missing.           |     |                             |
                                      |     |                             |
Test that the parser accepts a        |     |                             |
[Model] description with only the     |     |                             |
Model_type and C_comp sub-params      | yes |  Stephen Peters             |
defined.                              |     |                             |
                                      |     |                             |
Test that the parser allows NA in     |     |                             |
the min and max columns only of the   | yes |  Stephen Peters             |
C_Comp sub-parameter.                 |     |                             |
                                      |     |                             |
Test that the parser allows only      |     |                             |
Non-inverting and Inverting as        | yes |  Stephen Peters             |
choices for the Polarity sub-param    |     |                             |
                                      |     |                             |
Test that the parser allows only      |     |                             |
Active-High and Active-Low as         | yes |  Stephen Peters             |
choices for the Enable sub-param      |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
the Vmeas, Cref, Rref and Vref        | yes |  Stephen Peters             |
sub-parameters.                       |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Temperature keyword related:          |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Stephen Peters             |
the [Temperature Range] keyword       |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Power supply rail related:            |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
the supply rail keywords              |     |                             |
[Voltage Range]                       | yes |   Stephen Peters            |
[Pullup Reference]                    |  "  |                             |
[Pulldown Reference]                  |  "  |                             |
[POWER Clamp Reference]               |  "  |                             |
[GND Clamp Reference]                 |  "  |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if the [Voltage Range]          |     |                             |
keyword is absent and all four of     |     |                             |
the other supply rail keywords are    | yes |  Stephen Peters             |
NOT present.                          |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
I/V table related:                    |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
the [Pullup], [Pulldown], [GND        | yes |  Stephen Peters             |
Clamp] and [Power Clamp] keywords.    |     |                             |
                                      |     |                             |
Test that the parser issues an        | yes |  Bob Ross                   |
error if all three columns are        |     |                             |
not included                          |     |                             |
                                      |     |                             |
Test that NA is accepted in the       | yes |  Bob Ross                   |
min and max columns.                  |     |                             |
                                      |     |                             |
Test that the parser issues an        | yes |  Bob Ross                   |
error if a column contains over       |     |                             |
100 points.                           |     |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if a table contains less        | yes |  Stephen Peters             |
than two points.                      |     |                             |
                                      |     |                             |
Test that the parser issues a         | yes |  Bob Ross                   |
warning if non-monotonic data         |     |                             |
is found.                             |     |                             |
Test for One Warning per Column       | yes |  Bob Ross                   |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Terminator related:                   |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Bob Ross                   |
the [Rgnd], [Rpower], [Rac] and       |     |                             |
[Cac] keywords.                       |     |                             |
                                      |     |                             |
Test if [Rac], then [Cac] req'd.      | yes |  Bob Ross                   |
                                      |     |                             |
Test if [Cac], then [Rac] req'd.      | yes |  Bob Ross                   |
                                      |     |                             |
Test if parser issues an error with   |     |                             |
above keywords AND Model_type is NOT  | yes |  Bob Ross                   |
Terminator.                           |     |                             |
                                      |     |                             |
Test that parser DOES NOT issue an    | yes |  Bob Ross                   |
error if above models are NOT         |     |                             |
defined.  (Clamps or no components    |     |                             |
can also be "Terminators")            |     |                             |
                                      |     |                             |
Test that the parser issues an        | yes |  Bob Ross                   |
error if all three columns are        |     |                             |
not included                          |     |                             |
                                      |     |                             |
Test that NA is accepted in the       | yes |  Bob Ross                   |
min and max columns.                  |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Ramp keyword related:                 |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
the [Ramp] keyword and the            | yes |  Stephen Peters             |
dv/dt_r and dv/dt_f sub-parameters.   |     |                             |
                                      |     |                             |
Test that the parser recognizes       | yes |  Stephen Peters             |
the R_load sub-parameter.             |     |                             |
                                      |     |                             |
Test that the R_load sub-parameter    | yes |  Stephen Peters             |
is optional.                          |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
Waveform Related:                     |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
the [Rising Waveform] and [Falling    | yes |   Bob Ross                  |
Waveform] keywords.                   |     |                             |
                                      |     |                             |
Test that the parser recognizes       |     |                             |
the sub-parameters:                   |     |                             |
R_fixture                             | yes |   Bob Ross                  |
V_fixture                             | yes |                             |
V_fixture_max                         | yes |                             |
V_fixture_min                         | yes |                             |
C_fixture                             | yes |                             |
L_fixture                             | yes |                             |
R_dut                                 | yes |                             |
L_dut                                 | yes |                             |
C_dut                                 | yes |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if the R_fixture and            | yes |   Bob Ross                  |
V_fixture sub-parameters are not      |     |                             |
present.                              |     |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if a column contains over       | yes |   Bob Ross                  |
100 points.                           |     |                             |
                                      |     |                             |
Test that the parser issues an        |     |                             |
error if a table contains less        | yes |   Bob Ross                  |
than two points.                      |     |                             |
                                      |     |                             |
Test NA permitted in typical column   | yes |   Bob Ross                  |
--------------------------------------+-----+-----------------------------+

|***************************************************************
|
[IBIS Ver]        2.1
[File Name]       pkg.ibs
[File Rev]        0.1
[Date]            May 25, 1995
[Source]          Interconnectix Inc.
[Disclaimer]      Provided for modeling purposes only.
                  Results are not guaranteed.
|
|***************************************************************
|
[Component]      PACKAGE-TEST 
[Manufacturer]   Test File
[Package]
| variable      typ             min             max
R_pkg           0.0m            NA              NA
L_pkg           0.0nH           NA              NA
C_pkg           0.0pF           NA              NA
|
|***************************************************************
|
[Pin]           signal_name     model_name      R_pin   L_pin   C_pin
A1              P_1             NC
2               P_2             NC
5               P_3             NC
A4               P_4             NC       | There is nothing stated in the
| 3              P_5             NC       | Spec regarding correlating
                                          | [Pin] entries and [Pin Numbers]
                                          | entries by number of pins or by
                                          | actual pin number correlation.
                                          | NO error is reported.
                                          | I assume the order can differ. 
[Package Model] test

[Define Package Model]  test
[Manufacturer]          anyone
[OEM]                   this file shows
[Description]           some failed test cases

[Number of Pins]        5                  | get CRASH if changed to 1

[Pin Numbers]
A1
2
3
4
5

[Model Data] 
[Inductance Matrix]      Banded_matrix     | Success!
[Bandwidth]              2
[Row]   A1
.01 .01 .01
[Row]   2
.01 .01 .01
[Row]   3
.01 .01 .01
[Row]   4
.01 .01                | I did not expect this triangle matrix for the last
[Row]   5              | terms, but this is correct according to the Spec.
.01                    | Otherwise, parser will give an error.
                       |
                       | However, I believe the Spec is wrong.  There is no
                       | way, for example, to describe the coupling of a 
                       | 100 pin Quad Flat Pack with from pins 99 and 100 to
                       | pin 1 (and visa-versa) when using a bandwidth of 2
                       | and pin 1 is centered on one edge.

[Capacitance Matrix]    Full_matrix        | Success!
[Row]   A1
.01 .01 .01 .01 .01    
[Row]   2
.01 .01 .01 .01  
[Row]   3
.01 .01 .01
[Row]   4
.01 .01
[Row]   5
.01    

[Resistance Matrix]     Sparse_matrix
[Row]   A1
A1  .01                | Get Failure here, but if A1 changed to 1, get 
2   .01                | an Incorrect Success.
[Row]   2 
3   .01    
[Row]   3
5   .01
3   .01
6   .01                | Error Message text is not correct here.

[End Model Data]
[End Package Model]
|
[End]