Keyword Caution (was: keyword 'cell')


Subject: Keyword Caution (was: keyword 'cell')
From: Clifford E. Cummings (cliffc@sunburst-design.com)
Date: Thu Nov 29 2001 - 09:32:54 PST


Hi, Paul -

Forgive me chuckling a little, but to find the responsible party for this
enhancement, you need look no further than the walls of your own company
(yeah, I know, you aren't to blame!)

The cell keyword is part of the configuration enhancement proposed by
Cadence. We did trim the original proposal that also would have included
the keyword "view."

Paul makes a very good point here, one that we recognized when we were
enhancing the Verilog language for 2001 and one that we should carefully
consider as we move forward with SystemVerilog, that is, adding keywords
should be done only after careful consideration of its impact on existing
designs. What is the likelihood that multiple persons have used a new
keyword in pre-existing designs.

The new proposed keyword that causes me great pause is the new data type
"state." This is an identifier that exists in every single FSM design I
have ever done, in most of the FSM testbenches I have ever written, and in
every FSM example I have taught. This new keyword will cause significant
anguish to engineers who try to run existing designs on SystemVerilog
compilers. My other thoughts about the new FSM capabilities will be
outlined in subsequent e-mail messages.

For now, I can only recommend that existing tools do some type of
intelligent and quick global substitution of ccell for cell and then
compile. I actually like the configuration enhancement even though "cell"
is probably the most commonly used identifier to match a new Verilog-2001
keyword. Regrettable.

Regards - Cliff

At 08:12 AM 11/29/01 -0800, you wrote:
>Precedence: bulk
>
>So 'cell' is now a keyword in Verilog-2001. That's too bad, because I think
>a fair number of Verilog-1995 designs may use 'cell' as an identifier. I
>say this based on running regression tests at Cadence using our prototype
>Verilog-2001 parser. Unlike 'endgenerate' or 'noshowcancelled', 'cell' is
>an identifier that designers are likely to use as a module name or instance
>label.
>
>Paul

//*****************************************************************//
// Cliff Cummings Phone: 503-641-8446 //
// Sunburst Design, Inc. FAX: 503-641-8486 //
// 14314 SW Allen Blvd. E-mail: cliffc@sunburst-design.com //
// PMB 501 Web: www.sunburst-design.com //
// Beaverton, OR 97005 //
// //
// Expert Verilog, Synthesis and Verification Training //
//*****************************************************************//



This archive was generated by hypermail 2b28 : Thu Nov 29 2001 - 09:33:03 PST