[sv-bc] function output arguments


Subject: [sv-bc] function output arguments
From: Dave Rich (David.Rich@synopsys.com)
Date: Fri Aug 08 2003 - 00:04:55 PDT


In SV3.1, we added this statement in section 7.3

"It shall be illegal to include an assignment operator in an event expression, in an expression within a procedural
continuous assignment, or in an expression that is not within a procedural statement."

This was done to limit side effects in continuous assignments (explicit or implied), and so that there would be only one assignment per statement in a non-procedural context.

SV3.0 added output and  inout  arguments to functions and I believe that the above rule was meant cover these constructs as well. Other sections (assertions, random generation) were expecting this as well. I propose explicitly adding the following paragraph to clarify.

Add this paragraph before the last paragraph in section 10.3 Functions

It shall be illegal to call a function with output, inout orrefarguments in an event expression, in an expression within a procedural continuous assignment, or in an expression that is not within a procedural statement. However, a const ref function argument shall be legal in this context. (See section 10.5.2)
-- 
--
David.Rich@Synopsys.com
Technical Marketing Consultant
http://www.SystemVerilog.org
tele:  650-584-4026
cell:  510-589-2625



This archive was generated by hypermail 2b28 : Fri Aug 08 2003 - 00:06:24 PDT