RE: [sv-bc] FW: Can a keyword be used as identifier if context is clear?

From: Steven Sharp <sharp_at_.....>
Date: Fri May 12 2006 - 15:58:17 PDT
As the person who requested the "1364-2001-noconfig", let me provide a
few more details of the situation.  We deliberately chose to use what
became the "1364-2001-noconfig" keyword set, for two reasons.

1. All the keyword conflicts in our collection of legacy Verilog-1995
   customer designs were with keywords from configs.  Without those
   keywords, our users had nearly 100% backward compatibility with
   Verilog-1995.  With those keywords, they only had 85% backward
   compatibility.  This is presumably representative of all legacy
   designs of all Verilog users.
   
2. There were reasons it was undesirable to allow configs in Verilog
   source files.  At that point in time, there seemed to be support within
   the 1364 BTF for disallowing them there.  And as it turned out, a
   mistake in the 1364-2001 BNF disallowed configs in Verilog source files.
   If they were not allowed in Verilog source files, there was no reason to
   reserve their keywords there.

Ultimately, the 1364 committee decided to allow configs in Verilog source
files after all.  The mistake in the 1364-2001 BNF was fixed in 1364-2005.
As part of the compromise for this, I requested the addition of the
"1364-2001-noconfig" version specifier.  We could have used this as a
nonstandard specifier, but preferred to have it standardized.  This also
makes it available to any other users who want to be able to compile both
100% of Verilog-2001 code and 99% of legacy Verilog-1995 code with a single
dialect.  It is a very useful dialect in practice.

It may also be reasonable to have a "1364-2005-noconfig" version specifier.
Since configs are definitely allowed in Verilog-2005 source files, it could
not handle source files containing configs.  However, in practice those are
probably rare.  And since "uwire" is the only new keyword in 1364-2005, this
dialect would still handle nearly 100% of Verilog-1995 designs.  This may be
another useful dialect in practice.

The similar argument for  "1800-2005-noconfig" is weaker.  With all the
new 1800 keywords, less than half of legacy Verilog designs will compile
under "1800-2005", with or without "-noconfig".  So it doesn't really help
much.  However, I do like the suggestion that "-noconfig" be allowed as a
qualifier to each of these version specifiers.

Note that in the future the version specifiers may need to deal with
Verilog-AMS keywords.  Having independent qualifiers to allow inclusion
of the AMS keywords with each of the existing 1364 and 1800 versions
is cleaner and more flexible than having to provide a specific version
specifier with a keyword list for each combination.

Steven Sharp
sharp@cadence.com
Received on Fri May 12 15:58:13 2006

This archive was generated by hypermail 2.1.8 : Fri May 12 2006 - 15:58:21 PDT