Subject: Re: [sv-ec] final block proposal to SV-EC.
From: Steven Sharp (sharp@cadence.com)
Date: Tue Jan 28 2003 - 16:33:32 PST
>Date: Tue, 28 Jan 2003 07:50:31 -0800
>From: Dave Rich <David.Rich@synopsys.com>
>Having them execute as a single thread (as if they were in a single
>begin/end block shown above) means that you don't need to special case
>anything. You can optimize all you want, but you have to preserve the
>sequential execution of each statement within the thread. I do agree
>with you that this should not preclude executing on the fanout a variable.
OK, this clarifies what you meant by the "single thread" statement.
I think the description needs some work.
>Since final blocks can only have function_statements in them, they
>cannot create threads with fork/join. And since they cannot have
>event_controls in them, they must finish within a single delta cycle
>(infinite looping statements excepted).
You shouldn't believe everything you read in the BNF. Fork/join is
perfectly legal in functions in Verilog. Now that you have pointed out
that there is no production for them from function_statement, I have
filed an erratum with the IEEE.
However, it would still be possible to treat the final blocks as if
they were in a single sequential block. The possibility of fork/joins
inside them is just another reason why the "single thread" wording is
a poor way of specifying what you meant.
>I probably should have explained a little more the reasoning behind
>"deterministic, but arbitrary" execution of final blocks. I lifted this
>wording from the section on indexing through an associative array.
>Guaranteeing the ordering of final blocks helps golden logfile compares,
>since final blocks are most often used for reporting statistics. The LRM
>does not need to define the ordering, but the implementation should
>define rules that will preserve the ordering between runs. Order of
>compilation is one example, order in the hierarchy tree is another.
I don't see that this issue is any different from what can happen with
initial blocks, for example. It doesn't warrant special treatment.
Independent of that, the proposal does not say what you are trying to say.
Steven Sharp
sharp@cadence.com
This archive was generated by hypermail 2b28 : Tue Jan 28 2003 - 16:34:26 PST