[sv-ec] testbench review comments from chapter 12


Subject: [sv-ec] testbench review comments from chapter 12
From: Francoise Martinolle (fm@cadence.com)
Date: Mon Dec 16 2002 - 14:43:55 PST


Chapter 12:Inter-process synchronization and communication
section 12.2.1: please ensure that the new() is consistently used to allocate
dynamic arrays, strings, classes or synchronization primitives like semaphores
and mailboxes.

section 12.6.1:
$sync
Isn't this equivalent to define initial and always block which take event variables
in their sensitivity?
I don't like all the system tasks. We can do all this in Verilog today.
and even with the new definitions you cannot model a more general wait semantics.
For example I want to wait on event a and b == 1

section 12.8: wait_var
which kind of variables can we wait upon?
Is $wait_var(a) equivalent to
initial (a)?

Chapter 13:
section 13.2
why defining default skews since we already have default skews of 1 and 0 for
input and outputs. Could merge the skews definitions in the input and output
declarations. Or add some declaration like:
skews input 10ns output 2ns; or skews 10ns 2ns to respectively declare the skews
for inputs and outputs.

Chapter 14: Signal operations

section 14.2:
note that using a dynamic index on a slice as part of the sensitivity makes the
@ sensitive to any index of the slice since the index is evaluated at runtime.
section 14.3 14.4:
why adding the notion of signals? This is the only chapter where the signal notion
is brought up.

section 14.4.2: signal drive resolution
why issue a runtime error if multiple drive to the same signal?

section 14.4.3 drive/signal assignment ambiguity.
@j a = b
This seems bad as the parser has to look ahead in order to determine what @j
means. I would suggest use a different symbol to specify wait for j cycles such as #j
to wait for j cycles

section 15.2: typo in the example "declarartions"
                    typo : "continuos assignment"

section 15.8: I dont understand this section.

General comment on this chapter: we need the modified simulation cycle
to illustrate when clocking domain and program execute.

Annex C contains string methods descriptions, why not adding all the other
methods defined for the other data types.

Annex D: lists
Are lists, and iterators primitive elements of the language like semaphores and mail boxes?
If not, why?

Annex E: remove the definition of process since it is deprecated.
The glossary is very lean.



This archive was generated by hypermail 2b28 : Mon Dec 16 2002 - 14:45:23 PST