[sv-ec] Clocking blocks in draft 3

From: Neil Korpusik <Neil.Korpusik_at_.....>
Date: Wed May 09 2007 - 11:09:19 PDT
<forwarding bounced email from Michael Smith>

-------- Original Message --------
Subject: Clocking blocks in draft 3
Date: Wed, 9 May 2007 17:09:15 +0100
From: "Michael Smith" <michael.smith@doulos.com>
To: <sv-ec@server.eda.org>


Here are some comments on P1800-2008/Draft 3.

Apologies if these duplicate anyone else's comments,
or if the issues have been discussed and agreed; I'm afraid
I haven't had time to study all the discussions on the reflector.

Mike Smith, Doulos Ltd.


The most important one is probably 14.15.

14. Clocking Blocks
===================
P285 in draft 3 - "The signal_identifier specifies a signal (a net or variable)
in the scope enclosing the clocking block declaration, and defines a
clockvar in the clocking block. The specified signal is called a clocking signal.
Unless a hierarchical_expression is used, both the clocking signal and the
clockvar names shall be the same."

"specifies" = it already exists?
"defines" = creates?

P286, "instead of a local port," why "port" and not "signal"?

Final para talks about "signals in the clocking block". Earlier, signals
are in the enclosing scope; clockvars are in the clocking block. is there
such thing as a "signal in a clocking block"?

P288, first sentence - again "signal in a clocking block"

14.7 - Now clocking signals are "declared" in the clocking block.

So, there are lots of example where "clocking signal" is used, where
"clockvar" might be better.

14.9 Example uses illegal hierarchical syntax for signal_identifier.
EITHER allow this (and change the wording elsewhere, e.g. P285) OR
use "input data = a.data;" etc.

14.10 Last sentence is not strictly correct - see 14.13.

14.11 "positive integer" is strictly 1 or above. Make it clear that 0 is included.

"clocking_identifier" still doesn't allow hierarchy. Is this intentional?
I propose that hierarchical clocking identifiers be allowed.

14.14 Second sentence. "Synchronization operator" s/b "event control operator"

14.15 - P295, the paragraph adjacent to the third "Mantis 890" box.

"event_count" definition removed - but "event_count" is still used.
This whole paragraph and the next are anachronistic - needs a rewrite.

Is there a distinction between ##1 cb.data <= expr; and ##1; cb.data <= expr; ?
For example, the first uses the cb's clocking, the second the default clocking?
Make this clear.

Top of P 296, #3 cb.v <= expr1; is only equivalent to ##1 cb.v <= expr1;
if expr1 is that same at time 3 and time 10 (or 5).

2nd para from end - synch drive is in Re-NBA and procedural drive is in NBA
- so isn't the order (1) proc; (2) sync?

-- 
Michael Smith
Senior Consultant

DOULOS - Developing Design Know-how
VHDL * SystemC * Verilog * SystemVerilog * e * PSL * Perl * Tcl/Tk * Project Services

Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24 1AW, UK
Tel: +44 (0)1425 471223                        Email: michael.smith@doulos.com

Fax: +44 (0)1425 471573                           Web: http://www.doulos.com

This e-mail and any  attachments  are  confidential and Doulos Ltd. reserves
all rights of privilege in  respect  thereof. It is intended  for the use of
the addressee only. If you are  not the intended recipient please  delete it
from  your  system, any  use, disclosure,  or  copying  of this  document is
unauthorised. The contents of this message  may contain personal views which
are not the views of Doulos Ltd., unless specifically stated.



-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed May 9 11:12:35 2007

This archive was generated by hypermail 2.1.8 : Wed May 09 2007 - 11:13:04 PDT