Re: [sv-bc] Is #4.2step legal?

From: Steven Sharp <sharp_at_.....>
Date: Thu May 11 2006 - 11:24:34 PDT
>From: "Stuart Sutherland" <stuart@sutherland-hdl.com>

>The text in 1800 Section 3.5 says that a delay time unit of "step" must be
>preceded by either an integer or fixed point value.  This means the
>following delay is legal:
>
>  initial #4.2step $display("Time is %f", $realtime);
>
>However, Section 19.10 defines "step" as "The step time unit is equal to the
>global time precision".  Does this mean that a step of "4.2" is rounded off,
>truncated, or illegal?

In the absence of any text specific to this situation, I would expect it
to work the same way as any delay specified to greater precision than the
time precision.  The delay gets rounded to the time precision.

This brings up a problem with defining step to mean the global time
precision.  Delays are always rounded to the local timeprecision.  If
step uses the global time precision, and that is more precise than the
local time precision, then #4.2step would get rounded to zero.

For example, suppose the global timescale is 1ps/1ps and the local
timescale is 1ns/1ns.  Then the expression 4.2step would be equivalent
to 0.0042, and #0.0042 will round to a zero delay.

To make this work reasonably, step needs to mean the local timeprecision,
not the global one.

Steven Sharp
sharp@cadence.com
Received on Thu May 11 11:24:33 2006

This archive was generated by hypermail 2.1.8 : Thu May 11 2006 - 11:24:46 PDT