LRM-195
Changes (Was not done):
Swap Section 15.12 and 15.13
What happened. 15.4 was Synchronous drives with sub-sections 15.14.1 and 15.14.2. In your new draft it became 15.4, 15.5, and 15.15.1? I think it was correct the other way.
OK
OK
A .name .port_identifier port connection is semantically equivalent to the
named port connection .port_identifier(name) .name(name) port
connection with the following exceptions:
The identifier referenced by .name .port_identifier shall not create an implicit wire declaration.
— It shall be illegal for a .name .port_identifier port connection to create an implicit cast. This
includes truncation or padding.
— A conversion between a 2-state and 4-state type of
the same bit length is a legitimate cast.
— A port connection between a net type and a variable
type of the same bit length is a legitimate cast.
— It shall be an error if a .name .port_identifier port connection between two dissimilar net types would
generate a warning message as required by the Verilog-2001 standard.
OK
OK
Did you intend to leave the 1-5 non-indented?
OK
bind_directive ::=
bind module_instance_identifier program_instance_identifier ;
bind module_identifier bind_instantiation ;
| bind name_of_instance bind_instantiation
;
boolean_abbrev ::=
repeat_operator consecutive_repetition
| nth_event_operator non_consecutive_repetition
| counting_operator goto_repetition
action_block ::=
[
statement ] [ else statement ] ; statement _or_null
| [ statement ] else
statement_or_null
The indent on the first clause of the concurrent_cover_statement is not indented correctly.
You are correct (my fault). Please remove the
editor’s note.
Editor’s Note: Both productions above were identical in the change
order. I am guessing that the first one was supposed to be “property_spec“.
real_identifier ::= identifier
state_identifier ::= identifier
template_identifier ::= identifier
OK
True, but it can never be used where a member is used so I
do not believe there is a conflict.
Editor’s Note:
“assign” is a Verilog keyword.
OK
OK
specparam 241
srandom ???
statement labels 64
unsized literals 4
urandom ???
urandom_range ???
user-defined types 17
SystemVerilog
variables may be packed or unpacked aggregates of other types. The assignments made to each element of a
variable are independently examined using the longest static prefix rules (see section
TDB- SVBC21). [Note: This will define an assignment like a[i] = expr; to be treated as an assignment to all
elements of an array] Multiple
assignments made to independent elements of a variable are examined
individually. An assignment where the left-hand-side contains a slice is
treated as a single assignment to the entire slice. It shall be an error to have a packed
structure or array type written with a mixture of procedural and continuous
assignments. Thus, an unpacked structure or array can have one element assigned
procedurally, and another element assigned continuously. And, each element of a
packed structure or array may each have a single continuous assignment. For
example, assume the following structure declaration: