From: Gordon Vreugdenhil (gvreugde@synopsys.com)
Date: Fri Jun 21 2002 - 09:23:59 PDT
Precedence: bulk
Steven, thanks for your responses on the genvar and
naming issues.
I think there may be a root issue here that may be causing
some of the naming confusion issues. Is it the intent of the
LRM that the generate scopes be *true* scopes in the
resulting elaborated module? That seems to be implied by
some of your responses, but wouldn't that pose some issues
in terms of vpi access and also the uniqueness of hierarchical
names given the existence of unnamed blocks? One solution
would be to require *unnamed scopes* to collapse their
declarations into the nearest enclosing named scope and allow
named scopes to be true scopes that one must iterate into via vpi.
Is that consistent with your understanding of the intent of
the LRM? There may be some issues in terms of possibly
conflicting genvar decls in unnamed, nested scopes but at least
there would be an answer. I would be very happy to adopt a
solution of having named scopes be true scopes and unnamed
scopes being "collections of gen items" but that isn't implied
in the LRM.
Here are a few examples of the implications:
module x;
reg y;
generate
wire y;
endgenerate
endmodule
- conflicts at elaboration with above interp. With current LRM
I think it *should* conflict base on a "uniqueness of hierarchical
name test" but if the generate is truly a new scope, it shouldn't.
module x;
reg y;
generate
genvar y;
endgenerate
endmodule
- no conflict with current LRM ("generate" is a new scope) but would
conflict with above interp since "generate" is an unnamed block of
items. This is a bit awkward.
Sigh. Perhaps a complete and sufficient test should be
"uniqueness of hierarchical name" in the elaborated design.
That would make the "genvar y" conflict above go away
since it doesn't get elaborated and would leave the first
example as a conflict. I expect that this is the intent of the
LRM.
One thing we really can't ignore is the vpi implications.
I have been assuming that since there isn't really support
for unnamed scopes in vpi that there needs to be some
collapsing of scope of declaration. This is also true in
order to do lookup by name. It (still) isn't clear to me whether
named generate blocks really exist in the elaborated model
and are thus visible in vpi.
Gord.
-- ---------------------------------------------------------------------- Gord Vreugdenhil gvreugde@synopsys.com Staff Engineer, VCS (Verification Tech. Group) (503) 547-6054 Synopsys Inc., Beaverton OR
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:55:37 PDT
and
sponsored by Boyd Technology, Inc.