From: Stephen Williams (steve@icarus.com)
Date: Tue Feb 25 2003 - 09:30:01 PST
Precedence: bulk
The following reply was made to PR enhancement/287; it has been noted by GNATS.
From: Stephen Williams <steve@icarus.com>
To: Stuart Sutherland <stuart@sutherland-hdl.com>
Cc: etf-bugs@boyd.com
Subject: Re: enhancement/287: `compatibility - backward compatibility compiler directives
Date: Tue, 25 Feb 2003 09:28:39 -0800
`compatibility 1364-1995
`compatibility 1364-2001
`compatibility default
`endcompatibility
The problem with the somewhat similar `timescale directive is that
it's file scope is not bound. This compiler directive changes the
language being used, so its scope needs to be carefully controlled.
In particular, it would be highly bad if a `compatibility directive
in a library module leaks out into subsequent files. For example,
I write a main program in 2001 Verilog, but import some modules
from a vendor library that includes `compatibility directives. At
the point after the library module is brought in, 2001 constructs
stop working.
Or just as bad, the inverse case where the vendor library uses
2001 constructs and the user code uses the `compatibility 1995
directive to get his/her legacy (er, stable) design to compile.
At the very least, I suggest that a `compatibility section require
a matching `endcompatibility. I also suggest they nest, and come
in the same source file.
Might I also suggest that the operand be a constant string? It
would be counterproductive to add a new keyword to selectively
disable the use of new keywords:-)
--
Steve Williams "The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
steve at picturel.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
This archive was generated by hypermail 2.1.4
: Tue Feb 25 2003 - 09:30:31 PST
and
sponsored by Boyd Technology, Inc.