Combinational sensitivity question

From: Steven Sharp (sharp@cadence.com)
Date: Wed Jul 10 2002 - 12:40:31 PDT


Precedence: bulk

Reading the recent list of errata that didn't make it into the printed
standard brought up an issue for me.

There are two descriptions in section 9.7.5 of what goes into the
implicit event_expression list for @*. The first is an "everything but"
description, which includes all net and reg identifiers except for those
in wait or event expressions, or that are lvalues.

The second description lists nets and variables that are supposed to be
included by the rules.

Unfortunately, there are cases that are included by the first description
but not included by the second one. I had assumed that the second
description was intended as an incomplete set of examples of what might
get included by the first description (which was the official rule).
However, the errata modify the second description to add identifiers used
in index expressions on the left hand side of assignments. The fact that
such a correction was made implies that the second description was intended
to be a complete one.

One case that is unclear is identifiers used in delay controls. These are
identifiers that are not excluded in the first description, but are not
mentioned in the second description. Are they supposed to be included in
the sensitivity list?

Example:

        always @*
                a = #(delay) b;
                
Should "delay" be included in the sensitivity list?

Note that in the similar situation in a continuous assignment

        assign #(delay) a = f(b);
        
changes in the value of delay do not cause the continuous assignment to
be evaluated (at least not in Verilog-XL or NC-Verilog). This can be
seen by putting a $display in the function f, or by testing the delay
behavior. Based on this, I would expect that delay controls should not
contribute to the implicit event_expression list.

Other opinions? Should we add this as an erratum? What if we find other
cases where these descriptions disagree?

Steven Sharp
sharp@cadence.com



This archive was generated by hypermail 2.1.4 : Wed Jul 10 2002 - 16:43:33 PDT and
sponsored by Boyd Technology, Inc.