RE: [sv-ec] cycle delays in assignments

From: Arturo Salz <Arturo.Salz_at_.....>
Date: Sat Feb 03 2007 - 12:03:01 PST
Doug,

 

If we want to go this way, we need a mechanism to associate the delay
wit the specific clocking block.

 

By changing the semantics as you propose, we would take away the ability
to use a specific clocking block. Note that before this change, users
could re-write the code to achieve either semantics, but now it's
impossible to use cycle delays with any clocking other than the default
clocking. I honestly believe that using the default clocking block for
an intra-assignment delay to a particular clocking block will be more
confusing. As I said before, we can make arguments either way, but we
need to be careful since users are already using these features.

 

            Arturo

 

________________________________

From: Warmke, Doug [mailto:doug_warmke@mentor.com] 
Sent: Friday, February 02, 2007 7:41 PM
To: Arturo Salz; Rich, Dave; sv-ec@eda-stds.org
Subject: RE: [sv-ec] cycle delays in assignments

 

My opinion is different.

 

In Mantis #609, it is commented that

 

##n cb.v <= e;

##n; cb.v < = e;

 

have surprisingly different semantics.

At the face to face we decided that ##n would indicate

cycles of the default clocking in both these cases.

 

Similarly, I feel that

 

cb.v <= ##n e;

v <= ##n e;

 

would have surprisingly different semantics if we keep with

the existing P1800-2005 definition of intra-assignment cycle delays.

 

I think the language will be most intuitive if ##n is always associated

with the default clocking.  That way users won't have to remember,

"Well, if the ##n is on the left, it is associated with default
clocking. 

And if it is on the right, it is associate with the clocking block's
clocking."

 

Regards,

Doug

 

 

	 

	
________________________________


	From: owner-sv-ec@server.eda.org
[mailto:owner-sv-ec@server.eda.org] On Behalf Of Arturo Salz
	Sent: Friday, February 02, 2007 4:15 PM
	To: Rich, Dave; Arturo Salz; sv-ec@server.eda-stds.org
	Subject: RE: [sv-ec] cycle delays in assignments

	With respect to using intra-assignment cycle delays, I recognize
that the BNF allows it, but that may not have been the intent. If we
want to ratify then I'm OK with it.

	 

	As to the question, I assume you mean (you have an extra
semicolon):

	cb.v <= ##n e;

	 

	I believe that an argument can be made for either semantics: Use
the default to keep it consistent with the other  cycle delays, or, Use
the cb because it is closely associated with it.

	I prefer to keep the existing semantics because (a) it's more
likely to match the user's intent, and (b) it's already specified as
much in the LRM - and in this case, it's not confusing.

	 

	            Arturo

	 

	
________________________________


	From: Rich, Dave [mailto:Dave_Rich@mentor.com] 
	Sent: Friday, February 02, 2007 3:05 PM
	To: Arturo Salz; sv-ec@eda-stds.org
	Subject: RE: [sv-ec] cycle delays in assignments

	 

	Right now, the BNF has

	 

	procedural_timing_control ::=

	delay_control

	| event_control

	| cycle_delay

	 

	 

	So if this is legal

	 

	task1;

	##2

	task2;

	 

	this  is legal as well

	 

	v = ##m e;

	 

	are legal and nothing to do with clocking drives

	 

	But also answer whether you think

	 

	cb.v <= ##n; e;

	 

	##n is the default clocking or cb clocking

	 

	 

	Dave

	 

	 

	 

	
________________________________


	From: Arturo Salz [mailto:Arturo.Salz@synopsys.com] 
	Sent: Friday, February 02, 2007 2:51 PM
	To: Rich, Dave; sv-ec@eda-stds.org
	Subject: RE: [sv-ec] cycle delays in assignments

	 

	Dave,

	 

	My recollection was that ## could not be used as an
intra-assignment delay, only for clocking block drives.

	 

	I'm not sure if we voted on a resolution, but we certainly
discussed the problem of how adding semicolon after the cycle delay
would change the semantics, that is:

	      ##k cb.v <= e;

	                vs

	      ##k ; cb.v <= e;

	That's the issue in favor of not making scheduling decisions
based on the target.

	 

	We also discussed, but didn't finalize, adding an extension that
allows users to associate a particular clocking block to the cycle delay
operator.

	 

	I hop this helps.

	 

	            Arturo

	 

	
________________________________


	From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf
Of Rich, Dave
	Sent: Friday, February 02, 2007 1:51 PM
	To: sv-ec@eda-stds.org
	Subject: [sv-ec] cycle delays in assignments

	 

	 

	I know we agreed in the face-to-face that

	 

	##k cb.v <= e;

	should use the default clocking. 

	 

	I don't remember if we touched upon the following: 

	 

	 

	v = ##l e; //blocking assignment with intra-assignment delay -
uses default clocking block

	v <= ##m e;//non-blocking assignment - uses default clocking
block

	cb.v <= ##n; e; //clocking drive - uses CB clock

	 

	From the 11/6 face to face, we had:

	Agreements reached: 
	      Don't make scheduling decisions based on the target.
	 
	Is this an exception? Or should all ## delays be based on the
default clocking.
	 
	We're trying to finish up 890.
	 
	Thanks,
	 
	Dave

	 

	David Rich
	Verification Technologist
	Design Verification & Test Division
	Mentor Graphics Corporation
	dave_rich@mentor.com
	Office:   408 487-7206
	Cell:     510 589-2625

	 

	
	-- 
	This message has been scanned for viruses and 
	dangerous content by MailScanner <http://www.mailscanner.info/>
, and is 
	believed to be clean. 
	-- 
	This message has been scanned for viruses and 
	dangerous content by MailScanner <http://www.mailscanner.info/>
, and is 
	believed to be clean. 


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Sat Feb 3 12:04:02 2007

This archive was generated by hypermail 2.1.8 : Sat Feb 03 2007 - 12:04:42 PST