Subject: RE: [sv-ac] Meeting on Tuesday at 9:30 am PST
From: Faisal Haque (fhaque@cisco.com)
Date: Fri Feb 21 2003 - 15:14:45 PST
Adams,
Good topics for Tuesdays discussions.
Thanks
-Faisal
-----Original Message-----
From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org]On Behalf Of Adam
Krolnik
Sent: Friday, February 21, 2003 3:01 PM
To: fhaque@cisco.com; sv-ac@eda.org
Subject: Re: [sv-ac] Meeting on Tuesday at 9:30 am PST
Good afternoon Faisal;
Here are some issues I have with the remaining functionality discussed.
11.10.2
1. Verilog does not allow declarations to be inside unnamed blocks.
You can do this:
...
begin : named
reg a;
But then reg 'a' is only visible within that named block.
11.11
1. There is no concrete definition of how templates are
instantiated/expanded/etc.
There have been mail discussions but no wording.
2. There is no concrete definition of how parameters to templates work.
A. Are they references? Thus needing a type.
B. Are they substitutions? Thus not needing a type and anything is
legal.
3. Can I pass in a property/sequence to a template?
4. What does a variable declaration look like in a template? What is the
initial value
of any declared variable (how to I assign one?)
5. What does a nonblocking assignment look like in a template. Surrendra
provided an
example of:
assign areg <= a | b | c;
The word 'assign' means two things in verilog, procedural continuous
assign and
continuous assign. Neither of these are nonblocking assignments.
How do they work? how are they clocked? There is nothing written down
about this.
6. How do you pass parameters by name to a template and obtain the default
value?
E.g.
template hold(exp, min=0, max=15, clk);
...
hold h1(
.exp(s_exp),
.min(), // use default value?
.max(10),
.clk // new SV connection.
);
7. Are tools required to generate a name for templates instantiated without
an instance name? I.e. ' A tool shall generate a name...' or 'A tool may
generate'
11.12
1. Only allowing one to bind a program block is too restrictive.
Propose instead a more fundamental concept - extend.
extend <module |instance>;
<module stuff>
endmodule
This way you can add whatever you desire to add. Program blocks,
templates,
assertions, attributes, sattelite FSM code, etc.
Adam Krolnik
Verification Mgr.
LSI Logic Corp.
Plano TX. 75074
This archive was generated by hypermail 2b28 : Fri Feb 21 2003 - 15:16:12 PST