§6.20.1, ¶9 & ¶11 may have picked up some typos when the
"default-less parameters" feature was added.
Can anyone confirm the exact intention here?
param_assignment ::=
parameter_identifier { unpacked_dimension } = [ constant_param_expression ]41
type_assignment ::=
type_identifier = data_type [ = data_type ]41
- In a param_assignment it shall be illegal to omit the constant_param_expression
except within a parameter_declaration in a parameter_port_list.
In a type_assignment it shall be illegal to omit the data_type
except within a parameter_declaration in a parameter_port_list.
I'm guessing that
data_type cannot appear twice in a
type_assignment,
and that the
= in a
param_assignment
comes and goes with the optional
constant_param_expression.
This BNF also raises another question that may need a semantic note:
Does the
unpacked_dimension after a
parameter_identifier
impart some implicit data type to that parameter?
Specifically in the following, can values of any type and shape
override
Moneypenny and
Bond?
module Ian #( Moneypenny, Bond[0:7] ) ( inout integer frequency );
If
Bond is "shapen, not typed", what forms and types of
expression can legally supply its value?
Greg Jaxon
--
This message has been scanned for viruses and
dangerous content by
MailScanner, and is
believed to be clean.
Received on Tue May 6 08:53:24 2008