[ibis-interconn] Re: [EXT] [ibis-macro] BIRD draft 4 on relaxing the [Designator Pin List] requirement

  • From: "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>
  • To: "ibis-macro@xxxxxxxxxxxxx" <ibis-macro@xxxxxxxxxxxxx>, IBIS-Interconnect <ibis-interconn@xxxxxxxxxxxxx>
  • Date: Wed, 26 Jan 2022 06:23:38 +0000

Mike,

Thanks for researching all this.  Really interesting information.

In short, I think when we wrote the “definition” for those reserved words
(a long time ago), we were thinking of “data” in “when data is not available”
as numerical entries.  As you also mentioned, in I-V tables, and such.  I don’t
think we ever thought of a pin name or signal name as “data”, and I don’t
think we ever thought of using NA in its reserved meaning in the place of
the signal name because if there is a pin name, its signal name was expected
to be known, and if the pin name is not available, then it would simply not be
listed under the [Pin] keyword…  😊

But as the spec is getting bigger and better and more formal, we are starting
to ask these types of questions, mostly because of the complexity that
arises with other similar or related situations.

Whatever it means, the parser should be consistent, and I think we can’t
say that it is in this case.  I don’t think this is the most urgent problem,
but we may want to pay attention to this at some point.

Thanks,

Arpad
================================================================

From: Mike LaBonte <mike.labonte@xxxxxxxx>
Sent: Friday, January 21, 2022 6:42 PM
To: Randy Wolff (rrwolff) <rrwolff@xxxxxxxxxx>
Cc: Muranyi, Arpad <Arpad_Muranyi@xxxxxxxxxx>; ibis-macro@xxxxxxxxxxxxx; 
IBIS-Interconnect <ibis-interconn@xxxxxxxxxxxxx>
Subject: Re: [ibis-interconn] [EXT] [ibis-macro] BIRD draft 4 on relaxing the 
[Designator Pin List] requirement

In emd.c, the [EMD Pin List] pin name, signal_name, and bus_label are all 
checked against the reserved word list (GND", "NC", 
"POWER","CIRCUITCALL","NA"), resulting in W6706. It’s a straightforward check, 
not some strange quirk in the code. The same check is applied to [Begin EMD], 
[EMD Parts], [EMD Designator List], [EMD Group], and [EMD Set], a total of 10 
places in emd.c. The [Begin EMD] name can throw an error E1916 “Illegal use of 
reserved word %s”, the rest are W6706 warnings “%s: Reserved word used for %s".

This looks like an error to me. Section 3.2 says NA is "used where data not 
available”. That situation can be handled in some places, such as in 
typ/min/max data. An example where NA actually is an error is where all three 
dependent values of a typ/min/max line are NA. Obviously, scalar numeric values 
such as Vinl = NA are a problem, but that throws E0149 "Invalid Vinl Value 
("NA”)". So it’s hard to think of many places where the name of something 
should be checked against the reserved word list, whether or not it’s good 
practice to use that name.

Yet, the code checks for reserved words (all of them) in 60 places, throwing 
E1916 in 25 places, possibly for most things that have a name. That is 
something we probably should look into, and/or discuss whether things like 
[Model] names can be NA (E0130).

Mike

Other related posts: