Removal of "changed"


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