RE: [sv-ac] Mantis 1900. Checkers

From: Korchemny, Dmitry <dmitry.korchemny_at_.....>
Date: Wed Nov 21 2007 - 03:58:43 PST
Hi Jonathan,

Please, see my comments below. I uploaded a new version into Mantis
(checkers_071120dk.pdf). This version addresses also other people
comments.

Thanks,
Dmitry

-----Original Message-----
From: Jonathan Bromley [mailto:jonathan.bromley@doulos.com] 
Sent: Thursday, November 15, 2007 8:11 PM
To: Korchemny, Dmitry; sv-ac@server.eda.org
Subject: RE: [sv-ac] Mantis 1900. Checkers

> The proposal forbids initializing continuous free variables,
> but it allows initializing sequential free variables.
> In case of an unpacked array of free variables some of
> them may be sequential and others continuous. The issue
> is that the array assignment patterns forbid partial
> initialization of the array elements (see 18.9.1).
> I relaxed this requirement for unpacked arrays of
> free variables in the new version of the proposal.

Dmitry, I apologise for interfering in AC business,
but I've been working on array assignment (in connection
with Mantis 1702) and so your comment caught my attention.

Your relaxation in 10.9.1 makes reference to 16.8.5,
but there is no further mention of assignment patterns 
anywhere in the proposal.  I think it is probably 
insufficient to say that there is an exception, 
without also specifying in detail what that 
exception is and how it is to work.

<<<
[Korchemny, Dmitry] I added the following explanation (16.5.8.1):

"Since unpacked arrays of free variables may contain both continuous and
sequential free variables, the array pattern used in the initialization
shall define only elements corresponding to the sequential free
variables. This is an exception from the general statement defined in
10.9.1 prescribing that every array element should be covered by the
array pattern. The similar rule also applies for initialization of
unpacked structures of free variables (see 10.9.2). The following
example illustrates this rule for free variable array initialization.

Example 3.
		
		freevar bit fv[1:0] = '{2'{1'b1}}; // Illegal
		assign fv[0] = a; // a is a regular variable defined
elsewhere
		always_check @clk		
			fv[1] <= !fv[1];
In this example the bit fv[0] is continuous, and therefore it shall be
illegal to initialize it. The correct initialization of fv is:
		
		freevar bit fv[1:0] = '{1:1'b1};"

Do you think it is sufficient? I also added a statement about unpacked
structures.
>>>
~~~~~~

I also noticed another issue:  In several places you
mention "assignment statement" where I am fairly sure
you are talking about *continuous* assignments of the
form
   assign v = expr;
(by contrast with *procedural* assignments).  I am not
sure exactly how this is defined in the LRM, but I think
it would be clearer if you were to use "continuous 
assignment" wherever it's appropriate, to avoid any 
risk of  confusion.

<<<
[Korchemny, Dmitry] I am using a term "assignment" without further
clarification in two cases: when the statement talks about both forms of
free variable assignments, continuous and nonblocking, or when it is
clear form the context what the type of the assignment is. E.g.,

...
assign fv2 = ~fv1;
...
the assignment of fv2 ...

Could you point to a specific example where "continuous" is missing?
>>>

Thanks
--
Jonathan Bromley, Consultant

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

Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24
1AW, UK
Tel: +44 (0)1425 471223                   Email:
jonathan.bromley@doulos.com
Fax: +44 (0)1425 471573                           Web:
http://www.doulos.com

The contents of this message may contain personal views which
are not the views of Doulos Ltd., unless specifically stated.
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Nov 21 04:01:57 2007

This archive was generated by hypermail 2.1.8 : Wed Nov 21 2007 - 04:02:19 PST