Subject: Removal of "changed"
From: Dave Rich (David.Rich@synopsys.com)
Date: Thu Dec 26 2002 - 14:18:31 PST
SystemVerilog has a "changed" event qualifier that was to correct a
problem in the 1364-1995 spec that did not handle event expressions
correctly. This has been corrected in section 9.7.2 of the Verilog-2001
LRM so that the behavior of @(expr) and @(changed expr) are now now
equivalent. Therefore the "changed" keyword can now be removed from the
SystemVerilog LRM.
I propose the following changes to the SV LRM.
Remove "changed" from Syntax 8-7 table in section 8.9
Remove the following paragraphs from Section 8.9
SystemVerilog also allows the @ event control to explicitly state any
change, using the changed keyword.
@(myvar) // triggers on any change to myvar
@(changed myvar) // triggers on any change to myvar
The @(changed expression) differs from @(expression) in that the changed
keyword explicitly defines that
the event control only triggers on a change of the result of the
expression. In certain types of expressions,
@(expression) can trigger on changes to operands of the expression that
do not affect the result.
Replace the production in A.6.5
edge ::= posedge | negedge | changed
with
edge ::= posedge | negedge
Remove "changed" from the list of keywords in Annex B.
Looking through the 3.1 spec, I don't see any use of the keyword other
than its original meaning. Therefore we should vote on this proposal,
and pass it on to the SV-EC for their final approval.
Dave
-- -- Dave Rich Principal Engineer, CAE, VTG Tel: 650-584-4026 Cell: 510-589-2625 DaveR@Synopsys.com
This archive was generated by hypermail 2b28 : Thu Dec 26 2002 - 14:19:07 PST