Subject: TEST MATRIX PACKAGE UPDATE

From: [email-masked] ( Bob Ross)
Date: Wed, 8 Mar 95 17:55 PST

Hello Fellow IBISans, Will and Paul and Ron:

Here is another test matrix update.  I exercized the PACKAGE portion at
a fundamental (vs. in depth) level and it basically checks out OK.  
However, there are a few problems, which may need to be addressed.

(1) When the [Number of Pins] argument is missing, get Program Bug, and
program ABORTS - some internal indexing error message is given and 
row.c:180:assertion failed.

(2) For "Banded_matrix", the [Bandwidth] keyword is required.  No message
is given when [Bandwidth] is not included.  

(3) For "Sparse_matrix" choices, need to be able to accept alphanumeric
indicies.  This is correctly done with [Pin Numbers] entries and [Row] number
entries.

In general, ibischk2 does catch the critical syntax violations, and a
properly formatted <ibis>.ibs and <package>.pkg will correctly pass
(except PGA's using Sparse_matrix per (3) above).

There are a number of data-dependent details that are not fully 
checked.  They fall into these categories:

(a) Matching [Row] entries with [Pin Numbers] entries.

(b) Particular [Row] data format characteristics.

I believe fixing problems (1)-(3) will be sufficient for releasing the 
PACKAGE portion of ibischk2 at this time.  It will be very useful at 
that level.  It will provide excellent syntax checking, but may not
check all data-dependent entry combinations that could be inferred from
the specification.  Since a lot of these combinations may not have
been stated as "requirements", Paul and Ron have done an excellent job
in their implementation without any tracking and feedback from us on
the PACKAGE portions.

For example, there is no statement that Sparse_matrix "Indicies" can
be alphanumeric, but rather the statement:  "When alphanumeric pin names are
used, special care must be taken to ensure that the ordering defined in the
[Pin Numbers] section is observed."  In general, the full testing of the
PACKAGE portion is a big project because of the potential detail and resulting
clarification iterations on the Standard itself.  This could be ongoing,
eventually converging to a Version 3.0 enhancement and clarification 
revision based on testing and problems encountered in actual usage.

Bob Ross,
Interconnectix, Inc.

                A TEST MATRIX FOR IBIS VERSION 2d

DATE:  10/31/94, 12/2/94, 1/26/95, 3/4/95, 3/8/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.                              |     |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
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  |  Should be fixed - "Abnormal|
                                      |     |  program termination" with  |
                                      |     |  no argument                |
[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-fails,2,3    | NO  |  (problems below)           |
[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)        | NO  |                             |
[Row] number entry (repeated)         | NO  |                             |
[Row] number entry (all rows entered) | NO  |                             |
[Row] format (upper triange matrix)   | NO  |                             |
[Row] format (excessive data)         | yes |                             |
[Row] format (missing data)           | NO  |                             |
                                      |     |                             |
5. Banded_matrix Tests                |     |  Bob Ross                   |
[Bandwidth] req'd test                | NO  |  Should be fixed            |
[Bandwidth] argument req'd            | yes |                             |
[Bandwidth] argument value            | yes |                             |
[Row] number entry (match pin)        | NO  |                             |
[Row] number entry (repeated)         | NO  |                             |
[Row] format (excessive data)         | yes |                             |
[Row] format (missing data)           | NO  |                             |
                                      |     |                             |
6. Sparse_matrix Tests                |     |  Bob Ross                   |
[Bandwidth] error test                | yes |                             |
[Row] number entry (match pin)        | NO  |                             |
[Row] number entry (repeated)         | NO  |                             |
[Row] index match                     | yes |                             |
[Row] index (alpha string)            | NO  |  Should be fixed            |
[Row] format (excessive data)         | NO  |                             |
[Row] format (missing data)           | NO  |                             |
                                      |     |                             |
--------------------------------------+-----+-----------------------------+
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   | NO  |   Bob Ross                  |
--------------------------------------+-----+-----------------------------+