RE: [sv-bc] Question on compilation units & compiler directives

From: Warmke, Doug <doug_warmke_at_.....>
Date: Wed Jan 25 2006 - 10:46:26 PST
But that is in contradiction to the P1800 LRM.
SystemVerilog designs are required to have one-file is
one-compilation-unit semantics as the default (See 19.3).

This is definitely a safer paradigm moving forward,
as IP developed by different teams is guaranteed to be
safe from surprising interactions due to Verilog's
peculiarities with "stream-of-text" processing.
As SystemVerilog designs are only going to get larger
and more complex, having some rational safety guarantees
like this makes a lot of sense to me.

There will be some compatability issues in the meantime.
I had thought to distinguish between compiler directives
and SV language objects in compilation unit scope.
The reason being is that normal language objects don't
pose any backwards compatability issues with Verilog,
since those objects can't exist at "file scope" in Verilog.
But compiler directives can, and thus the new rules create
a deviation from old Verilog behavior.

After reading this debate, I would be fine with treating
compiler directives the same as plain Verilog objects.
The argument about insulating different parts of large
designs from surprising interactions applies to compiler
directives as well as plain Verilog objects.

It should be easy for users to throw on a tool switch
to get Verilog compatability if they want to stick with
the old ways for their SystemVerilog designs.  In fact,
compliant tools are required to provide such a switch
in 19.3.

Regards,
Doug

 

> -----Original Message-----
> 
> >From: "Bresticker, Shalom" <shalom.bresticker@intel.com>
> 
> >As a user, I disagree.
> >
> >This is breaking more than 15 years of legacy use-models.
> >
> >When you give a sequence of files to a tool, users expect that the
> >compiler directives hold from file to file. If you want to compile or
> >synthesize them separately, then you compile or synthesize them
> >separately.
> 
> Implementors would be wise to make this the default.  If they want
> a mode where a sequence of files is compiled in one invocation, but
> each is treated as a separate compilation unit, a command line
> option could be used to specify this.
> 
> Steven Sharp
> sharp@cadence.com
> 
> 
Received on Wed Jan 25 10:46:30 2006

This archive was generated by hypermail 2.1.8 : Wed Jan 25 2006 - 10:46:55 PST