From: Karen Pieper (Karen.Pieper@synopsys.com)
Date: Fri Mar 07 2003 - 16:22:39 PST
Precedence: bulk
Unless we are going to write exactly one proposal to cover this (do we want
a configurations
sub committee? ) I'd prefer to break it apart so that we can fix each
separately. How do you
think it needs to be worked on?
K
At 02:49 PM 3/7/03 -0800, Gordon Vreugdenhil wrote:
>Precedence: bulk
>
>The following is a fairly linear pass through Clause 13;
>I haven't really taken the time yet to fully consider
>all of the implications, but at least this is a start
>on the V2K issues that immediately came to mind. I don't know
>if we want to enter this as a single issue or burst it. Karen,
>what would you prefer?
>
>Gord.
>
>---------------
>
>
>Questions and Issues on Configurations
>
>1) 13.1.2 (and other places) talk about "the top-level module".
> This appears to likely be a VHDL-centric view being exposed,
> but we need to make sure that everything is clear about
> there being many top-level modules. More on this later.
>
>2) 13.1.2 and/or 13.3.1.3
> a) What if the specified instance name matches something
> other than an instance?
> b) What if there is no match?
> c) Can you configure one element of an instance array?
> What about an instance whose hierarchical name
> crosses an array instance hierarchy? What if the
> instance elements are irregular due to parameters
> and generate?
> d) Similar to (c), can you configure one element in
> the elaboration of a generate block?
>
>3) 13.2.1
> a) "..." has interesting issues such as (on Unix)
> whether symbolic links are followed. Also the
> definition says "hierarchical directories"; I
> assume that the intent there is "descendents"
> similar in intent to a Unix "find".
> b) Paths in library declarations should permit
> or require quoting.
> c) Path resolution could be interesting -- consider
> something like "./.../x/../y/*.v". There should
> probably be a restriction that "..." can only
> be followed by a single file name including only
> wildcards ? or *.
> d) I am not sure about basing searches on the location
> of the lib.map file. It may be better to allow
> a lib.map file to contain something like a
> basedir=path to root the searches.
> e) The whole issue of "work" an top modules is very
> fuzzy to me. Consider that "Any file
> encountered by the compiler which does not match
> any library's file_path specification shall by
> default be compiled into a library named work."
> Does that mean "Any file encountered while
> considering library map file expansion"? If not,
> are all modules in "work" considered to be top
> modules? 13.4.2 seems to support the latter
> interpretation, but that can't possibly be the
> intent. The statement in 13.2.1.1 that "all source
> files encountered by the parser/compiler can be
> mapped to a unique libaray" also supports this.
>
>4) 13.2.1.1
> Cell names within a lib must be unique since the LAST
> one wins. "work" is going to be very noisy in terms
> of required warnings for the "single invocation" model.
> Particularly given 3e above, the "single invocation"
> rule is unclear at best. The intent is clear but I
> don't know that I agree with the assumption that
> multiple cells compiled into the same lib are "likely"
> incorrect in a "single invocation" versus multiple.
> If the intent is to have a model for both separate
> and single compilation, let's have consistent rules
> so that the library state is predictable no matter
> what the tool does. This model is very "VHDLish"
> but without the dependency requirements, etc. which
> end up weakening the semantic integrity of the model.
> This also doesn't allow cell renaming in order to
> avoid conflicts without changing an entire config
> due to a library name change.
>
>5) 13.2.3
> "... the name of the source file being parsed is
> compared ...". How do 'line directives influence
> this? What about included source? This mapping
> (and much of the configurations model overall) appears
> to assume a rather tight cell<->file relationship
> with no complex file inclusions, etc. That isn't
> going to correspond to existing language features
> and methodologies very well.
>
>6) 13.3.1.1
> "There shall be one and only one design statement..."
> I assume that should read "...per configuration".
>
>7) 13.3 (in general)
> The text consistently uses the terms "expansion clause"
> and "selection clause". These terms need to be
> defined rather than implied.
>
>8) 13.3.1.3
> "The instance name ... is a Verilog hierarchical
> name starting at the top-level module of the config..."
> So such hierarchical names are strictly downwards and
> rooted in the topology at the point of the instance?
> Assumably such names may not be resolved upwards.
> Also, any such bindings must be deferred until
> post-generate elaboaration since instance name
> existence may be impacted.
>
> What happens if there are multiple matches for
> an instance clause? Error? Last one wins?
>
>9) 13.3.1.4
> If I am reading the term "expansion clause" correctly,
> it appears that a cell clause with a library name can
> only be used in a use clause. Is that correct?
>
>10) 13.3.2
> a) With the given instance clause, assume that the
> original instantiation of top.a1.foo was based on
> module "M". If top.a1.foo is the only instance of
> M, does M become a top module or does it "disappear"
> from the design space? What about the reverse, ie.
> if M would have been a top module, does creating an
> instance via binding make it non-top?
> b) Given that a config cannot "reach into" another
> configured sub-hierarchy, it appears that either
> all configs must be considered simultaneously or
> that sub-hierarchies must be marked as a "by
> configuration" sub-hierarchy in order to have the
> global invariant validated. This interacts with
> (8) above in that an explicit instance binding
> may exist and then have a binding via configuration.
> By 13.3.2, binding via config and then explicit
> binding would be an error. Is the reverse also
> true?
>
>11) 13.4.2 assumes that "top level modules" can be found
> during parsing. In the presence of generate that is
> no longer the case. 13.4.3 requires one to list all
> the top modules which is in conflict with the automatic
> determination that is done over all source currently.
>
>
>
>General Comment
>
>The existing text seems to me to be an attempt to apply
>some VHDL library and configuration ideas onto a more
>file-centric approach. The result doesn't appear to be
>a very clean model to me. It makes more sense to me
>to completely decouple the abstract library from the
>underlying file system and deal with design configuration
>solely at the "cell" level. Having a mix of design
>element configuration and file management configuration
>in one set of in-language functionality leads to issues
>that become very implementation sensitive which defeats
>the whole purpose.
>
>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
: Fri Mar 07 2003 - 16:23:54 PST
and
sponsored by Boyd Technology, Inc.