Add Proposal | Add Analysis | Edit Class, Environment, or Release |
Number | 189
|
Category | errata
|
Synopsis | 12.1, macromodule needs clarification
|
State | open
|
Class | enhancement
|
Arrival-Date | Nov 11 2002
|
Originator | "Brad Pierce" <Brad.Pierce@synopsys.com>
|
Release | 2001b: 12.1
|
Environment |
|
Description |
According to section 12.1 -- "The keyword macromodule can be used interchangeably with the keyword module to define a module. An implementation can choose to treat module definitions beginning with macromodule keyword differently." What does this mean? -- Brad p.s. Also, there's a missing 'the' before 'macromodule' in the second sentence. Proposal not chosen: In 12.1 -- REPLACE -- "The keyword 'macromodule' can be used interchangeably with the keyword 'module' to define a module. An implementation can choose to treat module definitions beginning with macromodule keyword differently." WITH "The keyword 'macromodule' can be used in place of the keyword 'module' to declare a module. An implementation may choose to inline the contents of modules that are declared with the 'macromodule' keyword within the modules that instantiate them. In such cases, the naming convention used to reference elements within instantiated macromodules may differ from that used to reference elements within instantiated modules." |
Fix |
No change |
Audit-Trail |
From: Steven Sharp <sharp@cadence.com> To: etf-bugs@boyd.com, Brad.Pierce@synopsys.com Cc: Subject: Re: errata/189: 12.1, macromodule needs clarification Date: Mon, 11 Nov 2002 14:48:58 -0500 (EST) >Category: errata >Confidential: no >Originator: Steven Sharp <sharp@cadence.com> >Release: 2001b >Class: TBD >Description: Verilog-XL defined macromodules. They reduced simulation memory overhead by not creating hierarchy or scopes. They effectively got inlined where instantiated, like a macro. To allow this, they had restrictions on what could be declared inside them. I would guess that all other implementations have treated macromodules just like modules. They are still in the standard for backward compatibility reasons. Steven Sharp sharp@cadence.com From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: etf-bugs@boyd.com Cc: Subject: Re: errata/189: 12.1, macromodule needs clarification Date: Wed, 13 Nov 2002 17:28:07 +0200 >Category: errata >Confidential: no >Originator: Shalom Bresticker <Shalom.Bresticker@motorola.com> >Release: 2001b >Class: TBD >Description: Should we define restriction on what an implementation may do with them? > Verilog-XL defined macromodules. They reduced simulation memory overhead > by not creating hierarchy or scopes. They effectively got inlined where > instantiated, like a macro. To allow this, they had restrictions on what > could be declared inside them. > > I would guess that all other implementations have treated macromodules > just like modules. They are still in the standard for backward compatibility > reasons. From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: etf-bugs@boyd.com Cc: Subject: Re: errata/189: 12.1, macromodule needs clarification Date: Thu, 14 Nov 2002 13:43:48 +0200 >Category: errata >Confidential: no >Originator: Shalom Bresticker <Shalom.Bresticker@motorola.com> >Release: 2001b >Class: TBD >Description: The standard goes to the bother of explicitly mentioning macromodules in addition to modules in a few places, out of the probably hundreds of places where modules are mentioned. Since "the keyword macromodule can be used interchangeably with the keyword module to define a module," I propose we just delete mention of macromodules from all those places (except here in 12.1, in the BNF, and in 3.12, talking about namespaces). Those places are: 12.3 para. 1 13.1.1 para. 1-2 13.3.1.6 para. 4 From: "Brad Pierce" <Brad.Pierce@synopsys.com> To: <etf-bugs@boyd.com> Cc: Subject: Re: errata/189: 12.1, macromodule needs clarification Date: Fri, 15 Nov 2002 18:42:29 -0800 >Category: errata >Confidential: no >Originator: "Brad Pierce" <Brad.Pierce@synopsys.com> >Release: 2001b >Class: TBD >Description: In a recent SystemVerilog extension proposal (regarding aliases) Kevin Cameron used the "macromodule" construct in an example. So apparently it is still considered useful by some experts. So why not define it properly? At least we could add the Verilog-XL restrictions on what may be declared inside of macromodules. -- Brad From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: Brad Pierce <Brad.Pierce@synopsys.com> Cc: etf-bugs@boyd.com Subject: Re: errata/189: 12.1, macromodule needs clarification Date: Sun, 17 Nov 2002 09:13:22 +0200 >Category: errata >Confidential: no >Originator: Shalom Bresticker <Shalom.Bresticker@motorola.com> >Release: 2001b >Class: TBD >Description: > At least we could add the > Verilog-XL restrictions on what may be declared inside of > macromodules. You need to check whether those restrictions are really illegal, or whether they simply cause the macromodule to be treated as a normal module. From: Shalom.Bresticker@motorola.com To: brad.pierce@synopsys.com Cc: etf-bugs@boyd.com Subject: Re: errata/189: PROPOSAL - 12.1, macromodule needs clarification Date: Sat, 15 Feb 2003 19:38:36 +0200 (IST) It is yet more complicated than that. For example, Verilog-XL does not "inline" every macromodule, only macromodules which obey certain restrictions. Frankly, since any implementation-dependent change destroys the portability of the code, I would like better a statement whose spirit is that by default a macromodule is the same as a module, but an implementation may add a special mode which may be switched on or off which treats macromodules differently. Shalom On Tue, 11 Feb 2003 brad.pierce@synopsys.com wrote: > Date: Tue, 11 Feb 2003 19:00:23 -0800 > From: brad.pierce@synopsys.com > To: etf-bugs@boyd.com > Subject: errata/189: PROPOSAL - 12.1, macromodule needs clarification > > Precedence: bulk > > In 12.1 -- > > REPLACE -- > > "The keyword 'macromodule' can be used interchangeably with > the keyword 'module' to define a module. An implementation > can choose to treat module definitions beginning with > macromodule keyword differently." > > WITH > > "The keyword 'macromodule' can be used in place of the > keyword 'module' to declare a module. An implementation > may choose to inline the contents of modules that are > declared with the 'macromodule' keyword within the > modules that instantiate them. In such cases, the > naming convention used to reference elements within > instantiated macromodules may differ from that used > to reference elements within instantiated modules." > > > http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&pr=189 > From: Steven Sharp <sharp@cadence.com> To: etf-bugs@boyd.com, Shalom.Bresticker@motorola.com Cc: Subject: Re: errata/189: PROPOSAL - 12.1, macromodule needs clarification Date: Tue, 18 Feb 2003 14:58:13 -0500 (EST) Does anyone know of a tool other than Verilog-XL that treats macromodules specially? Steven Sharp sharp@cadence.com |
Unformatted |
|
Hosted by Boyd Technology