From: Adam Krolnik (adamk@cyrix.com)
Date: Wed Jan 13 1999 - 07:08:57 PST
You mention that much of the `library and `view functionality
is intended for the lib.map file - so why do you speak about
"adding new keywords", "parse tokens in a different namespace", etc.
This separate file lib.map has a separate language from Verilog and
the preprocessor. There is no conflict with keywords, etc.
I think you are looking at implementation too much. It could be a
separate parser/lexer and therefore have no connection to the
rest of the language.
I propose removal of the ` from the language of the lib.map file.
I also am beginning to dislike the implicit reading of the file
lib.map. Is it too much to require specifying the library mapping
files as part of the command line or in a command file (-f file)?
You also speak of the fact that the `view and `library can't occur after
a module is defined. Don't you mean within a module? E.g.
`view rtl
module ff;
...
endmodule
`view gate
module aoi2;
...
endmodule
I wrote:
>
> B. What does it mean to have a +define with this view?
> Does the compiler have to analyze the source files repeatedly
> for each view encountered?
You responded, "the view was created by invoking the compiler with +define+foo"
But If you speak about 'compiling a library' then you have to analyze the source
differently (read re-parse it due to possible define changes) for each view
defined. So if there are 4 views, you would have to run the source through
the compiler 4 times and concatenate the results into a library. E.g.
view1 is +define+foo1; view2 is +define+foo2; view3 is +define+foo3;
Source code is different depending on which 'foo' is defined (1, 2, 3).
You write,
:This brings up a good point. If I have
:`view set arg +define+foo;
:then any file encountered with foo defined will be put into view set, but
:there is no way to specify "any file encoutered with foo not set".
But this doesn't make sense! I intepret this to say "For view 'set',
define 'foo'. It doesn't say take all modules with 'foo' defined into
view 'set'. Why would you expect the latter?
>4. What happens if a vendor library defines a view that is
So what you are saying is that if I have three libraries two
with a view 'gates' and one with a view 'gates' and 'gtime', I could
specify a particular view for each library in a particular order?! E.g.
viewlist lib1.gates, lib2.gates, lib3.gtime;
Instead of the general
viewlist gates;
Maybe it's a combination of the liblist and viewlist statements.
:The inst clause specifies any instance of the specified cell. The path
:clause specifies a specific hierarchical path to a specific instance. In
:both of these cases, the optional (lib.cell:view)<inst_name> may be used as
:an additional error checking mechanism to make sure that the instance you
:specified is actually bound to the lib.cell:view that you thought it was.
This has always confused me. It seems there are three things to reference
specify something for a specific module/udp/macromodule; specify something
for a specific instance of a module; specify something for the hierarchy
starting with a specific instance.
The names 'path', 'inst' and 'cell' would seem to somehow map to these ideas,
but it doesn't sound like they do.
I.e. How would I have all instances of module my_add use a specific
lib_cell_view?
How would I have a specific instance use a specific lib_cell_view?
How would I have an entire hierarchy from a specific instance use a
specific lib/view? E.g. (timing accurate vs. rtl)
<p>By the time we're done with this commentary, Friday will be just
to vote on it...
Thanks Tom
Adam Krolnik
Verification Engineer
Cyrix - NSC.
Richardson TX. 75085
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:53:25 PDT
and
sponsored by Boyd Technology, Inc.