In Section 13.2 make changes to BNF indicated in blue.
clocking_decl ::= [default] clocking [identifier] clocking_event ;
{ clocking_item }
endclocking
clocking_event ::= @ identifier
|
@ ( event_expression )
event_expression ::= // This item is already defined in the BNF
cloking_item ::= default default_skew ;
| clocking_direction signal_or_assign_list ;
default_skew ::=
input skew
|
output skew
|
input skew output skew
clocking_direction ::= input [ skew ]
| output [ skew ]
| input [ skew ] output [ skew ]
|
inout
signal_or_assign_list ::= signal_or_assign { , signal_or_assign }
signal_or_assign ::= signal_identifier [ = hierarchical_expression ]
skew ::= edge [ # delay_expression ] // edge
valid only if
| # delay_expression // clocking_event is simple edge
edge ::= posedge | negedge
delay_expression ::= constant_expression | time_literal
In Section 13.2 add the following sentence as the first sentence after the BNF.
The delay_expression must be either a time literal or a constant expression that evaluates to a positive integer value.