Subject: Proposed Golden IBIS Parser checks

From: Matthew Flora <[email-masked]>
Date: Wed, 04 Nov 1998 10:03:12 -0100

All,

I'd like to raise for discussion some enhancements I would like to have made
to the Golden IBIS Parser.

My goal is to elevate the quality of IBIS models being produced by having
IBISCHK perform additional sanity checks.  Many of the enhancements proposed
below would detect flaws in models which render the model unusable for some
simulations.

I am proposing that we enhance the Golden IBIS Parser instead of creating a
separate utility since the Golden IBIS Parser already performs some sanity
checking and it is already accepted as an authoritative tool.  (I have
actually had some model creators refuse to fix models because "IBISCHK
doesn't complain".)

Proposed enhancements:

1) Generate an error if, in the [Ramp] section, either the numerator or the
   denominator of dV/dt is zero or negative.

2) Generate a warning if the values of Vinl or Vinh are equal to or beyond
   their respective voltage rail.

   Although I believe it possible for a device to have Vinl or Vinh equal to
   the voltage rail, my impression is that those devices are rare.

2) Generate at least a warning if the Pullup or Pulldown V/I table indicates
   that current is always flowing in one direction.  In other words, the V/I
   table does not have an entry with zero current or, by interpolation, the
   current is never zero in the range of the voltages listed.

   I think a warning should be generated even if the current would be zero
   when extrapolated to a voltage beyond those listed in the table because I
   believe that V/I tables should be complete and should not force a simulator
   to guess values and, to me, extrapolation beyond the voltages listed in the
   table is a guess.

3) For non-ECL models, shouldn't the zero current voltage for the Typ, Min,
   and Max columns in the Pullup or Pulldown V/I tables be the same (say
   within a microvolt)?  I suggest that a warning be generated if they are
   not.

4) Related to a topic recently discussed on the reflector, I suggest that an
   error be generated if a differential pin (a pin referenced in the
   [Diff pin] section) is connected to one of the reserved models (POWER, GND,
   or NC).

5) I suggest generating a warning if multiple pins in a [Pin] section have the
   same signal name yet use different models.

   This is to help catch human error when entering [Pin] sections by hand on
   parts with hundreds of pins.  This would catch mistakes like having 25 Vcc
   pins where 24 are correctly using model POWER and one is mistakenly using
   model GND.

I realize that some of these enhancements might need a BIRD to be issued so
that the IBIS specification specifically mentions values that are illegal.

Regards,
Matthew Flora
Senior Engineer
HyperLynx
(425) 869-2320 PH
(425) 881-1008 FAX
[email-masked]

---

From: "D. C. Sessions" <[email-masked]>
Date: Wed, 04 Nov 1998 11:43:11 -0700

> to the Golden IBIS Parser.

[...]

>    to guess values and, to me, extrapolation beyond the voltages listed in the

If I understand you correctly, you would insist that the tables
go at least to the zero-current intercept point.  Thus, for an
1.5v device with a weak pullup to 5.0v you'd have the tables go
at least to 5v so as to catch the intercept?

>    within a microvolt)?  I suggest that a warning be generated if they are

Lots of technologies have zero-current intercepts inside of their
rails.  ECL is only one of them; perhaps you've heard of TTL?

>    [Diff pin] section) is connected to one of the reserved models (POWER, GND,

This would barf on RS-423

-- 
D. C. Sessions
[email-masked]

---

From: Matthew Flora <[email-masked]>
Date: Wed, 04 Nov 1998 12:41:23 -0100

D. C.,

>> Proposed enhancements:
>
>> 2) Generate at least a warning if the Pullup or Pulldown V/I table
>>    indicates that current is always flowing in one direction.  In other
>>    words, the V/I table does not have an entry with zero current or, by
>>    interpolation, the current is never zero in the range of the voltages
>>    listed.
>> 
>>    when extrapolated to a voltage beyond those listed in the table because
>>    I believe that V/I tables should be complete and should not force a
>>    simulator to guess values and, to me, extrapolation beyond the voltages
>     listed in the table is a guess.
>

In a word, yes.  If you have a 1.5v buffer which is active all the way up to
5v, then it's behavior needs to be described.  I thought V/I tables are
supposed to show the behavior of the device in its active region, and perhaps
a bit beyond its active region.  I thought that is why the spec suggests
generally spanning the voltages between -Vcc and 2Vcc.

>> 4) Related to a topic recently discussed on the reflector, I suggest that
>>    an error be generated if a differential pin (a pin referenced in the
>>    [Diff pin] section) is connected to one of the reserved models (POWER,
>>    GND, or NC).
>

I am not familiar with RS-423.  Does it have one or more pins whose voltage is
to be taken differentially to POWER or GND?

Cheers,
Matt

---

From: Stephen Peters <[email-masked]>
Date: Wed, 04 Nov 1998 15:24:43 -0800

Hello Matthew, D.C.:

   Comments below

        Regards,
        Stephen
> generally spanning the voltages between -Vcc and 2Vcc.

Actually, the -Vcc to 2Vcc requirement comes from the fact that this is the 
maximum signal swing on an unterminated transmission line.  If the output
swings 0 - 1.5v then the maximum voltage on the output would be -1.5v to 3.0v. 
However, if the part is intended to live in a 5V signaling environment then
the V/I curves ought to to go from -5v to 10v.

   You know... this is really a defect in the spec.  V/I table endpoints
should be determined not by VCC, but by output swing, as described above.
I feel a bird comming on....

---

From: Kellee Crisafulli <[email-masked]>
Date: Wed, 04 Nov 1998 16:52:51 -0800

Hi Stephen,

>I feel a bird comming on....

Stephen I think I agree with you, I would explain it as follows:
The -VCC to 2VCC requirement was put in to insure that over
the broadest expected range for which the device might need to
be simulated there would be valid V/I entries so the simulators
did not extrapolate to current levels the device would not deliver.
For most devices this would include the max. input range generated
by worst case reflections as Stephen indicated.
However if you have a part that runs on a core switching range of
say 0 to 3 and has a clamp at 5V or a weak pull up to 5V the
range should probably be -5 to +10 not -3 to +6 (my opinion).
Discression is left to the model developer on this one but the
boardest possible range for which the device could conceivable
operate should be covered with a minimum of -Vcc to +2VCC.
Another example would be an old 30V open collector 7406.  
The V/I table for this device should extend to at least +30V and -5V.
When in doubt use a broader range.

---------------------------------------------------------
Have a great day....
Kellee Crisafulli at HyperLynx
SI,EMC,X-talk and IBIS tools for the Windows platform
E-mail: <mailto:[email-masked]>
web:    <http://www.hyperlynx.com>
---------------------------------------------------------

---

From: "D. C. Sessions" <[email-masked]>
Date: Thu, 05 Nov 1998 09:22:27 -0700

> to be taken differentially to POWER or GND?

RS-423 is a half-step between RS-232 and RS-422.  The drivers are sort
of limited-range RS-232 (plus and minus 5v) and the receivers are
RS-422 receivers with one input grounded.

-- 
D. C. Sessions
[email-masked]