RE: [sv-ac] example in expect statement

From: Eduard Cerny <Eduard.Cerny_at_.....>
Date: Sun Oct 22 2006 - 09:48:21 PDT
Hello Dave,
 
yes, it does not say that explicitly, only that it executes in reactive
region. On the other hand, on pp 263 it says:
 
All subroutine calls attached to a sequence are executed at every
successful match of the sequence. For each

successful match, the attached calls are executed in the order they
appear in the list. The subroutines are

scheduled in the Reactive region, like an action block.

Does that not imply a thread? Perhaps it should be more eplxicit and
also in the section on verification statements.

What I also meant earlier is that the action block of immediate assserts
should execute the same way (i.e., scheduled), it does not make sense
that it would affect the behavior of the code in which it is embedded.

ed


 


________________________________

	From: Rich, Dave [mailto:Dave_Rich@mentor.com] 
	Sent: Sunday, October 22, 2006 12:27 PM
	To: Eduard Cerny; Arturo Salz; Surya Pratik Saha
	Cc: Soumya Jyoti Wadader; sv-ac@eda.org
	Subject: RE: [sv-ac] example in expect statement
	
	

	Hi Ed,

	 

	I think we all agree that expect statements are allowed in an
action blocked. What I'm saying is the "intent" missing from the LRM is
that the concurrent assertion's action block spawns off a thread. So
when the action has a blocking statement, it is not blocked from
executing the next time the assertion fires. 

	 

	Dave

	 

	 

	
________________________________


	From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com] 
	Sent: Sunday, October 22, 2006 3:52 AM
	To: Rich, Dave; Eduard Cerny; Arturo Salz; Surya Pratik Saha
	Cc: Soumya Jyoti Wadader; sv-ac@eda.org
	Subject: RE: [sv-ac] example in expect statement

	 

	You are right, but does it make sense to execute the action
block of immediate asserts immediately rather than scheduled?

	 

	For concurrent asserts it explicitly says in reactive region and
it does not prohibit expect statement in the action block (pp286).

	 

	 

		 

		
________________________________


		From: Rich, Dave [mailto:Dave_Rich@mentor.com] 
		Sent: Saturday, October 21, 2006 8:33 PM
		To: Eduard Cerny; Arturo Salz; Surya Pratik Saha
		Cc: Soumya Jyoti Wadader; sv-ac@eda.org
		Subject: RE: [sv-ac] example in expect statement

		Where does it say that the action block of an immediate
assertion is executed in the reactive region? In fact, it says it is
interpreted like a procedural 'if' statement.

		 

		
________________________________


		From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com] 
		Sent: Saturday, October 21, 2006 4:58 PM
		To: Rich, Dave; Arturo Salz; Eduard Cerny; Surya Pratik
Saha
		Cc: Soumya Jyoti Wadader; sv-ac@eda.org
		Subject: RE: [sv-ac] example in expect statement

		 

		But in immediate assert, the action block should not
block the main code either, no? I think that both create threads
executed in the reactive region.

		 

		ed

			 

			
________________________________


			From: Rich, Dave [mailto:Dave_Rich@mentor.com] 
			Sent: Saturday, October 21, 2006 12:14 AM
			To: Arturo Salz; Eduard Cerny; Surya Pratik Saha
			Cc: Soumya Jyoti Wadader; sv-ac@eda.org
			Subject: RE: [sv-ac] example in expect statement

			I'm not saying it should be disallowed either,
but there is a difference between the two. An immediate assertion does
not create any threads. The action block of a concurrent assertion must
spawn a procedural thread in order to allow for blocking statements.

			 

			Dave

			 

			 

			
________________________________


			From: Arturo Salz
[mailto:Arturo.Salz@synopsys.com] 
			Sent: Friday, October 20, 2006 7:18 PM
			To: Eduard Cerny; Rich, Dave; Surya Pratik Saha
			Cc: Soumya Jyoti Wadader; sv-ac@eda.org
			Subject: RE: [sv-ac] example in expect statement

			 

			I agree. I don't see why it should be
disallowed.

			 

			            Arturo

			 

			
________________________________


			From: owner-sv-ac@eda.org
[mailto:owner-sv-ac@eda.org] On Behalf Of Eduard Cerny
			Sent: Friday, October 20, 2006 6:51 PM
			To: Rich, Dave; Surya Pratik Saha; Eduard Cerny
			Cc: Soumya Jyoti Wadader; sv-ac@eda.org
			Subject: RE: [sv-ac] example in expect statement

			 

			I do not see  a diff between the two. Scheduled
in reactive, as a task. 

			ed

				 

				
________________________________


				From: Rich, Dave
[mailto:Dave_Rich@mentor.com] 
				Sent: Friday, October 20, 2006 6:41 PM
				To: Surya Pratik Saha; Eduard Cerny
				Cc: Soumya Jyoti Wadader; sv-ac@eda.org
				Subject: RE: [sv-ac] example in expect
statement

				This raises a more general question; can
an action block of a concurrent assertion contain any blocking
statement? It is explicitly allowed for immediate assertions, but no
mention on concurrent assertions.

				 

				Dave

				 

				 

				
________________________________


				From: owner-sv-ac@server.eda.org
[mailto:owner-sv-ac@server.eda.org] On Behalf Of Surya Pratik Saha
				Sent: Wednesday, October 18, 2006 11:08
PM
				To: Eduard Cerny
				Cc: Soumya Jyoti Wadader;
sv-ac@server.eda.org
				Subject: Re: [sv-ac] example in expect
statement

				 

				Hi Ed,
				So can an immediate assert or concurrent
assert have expect assert in their action block? I did not see any
restriction in LRM though Synopsys VCS is giving error, considering
expect assert as concurrent assertion statement.
				Consider the e.g.
				assert (i) expect (prop) $display(...);
				Is the above statement wrong? I did not
see any problem there, though VCS is failing.
				Same for:
				assert property (prop) expect (prop)
				
				Though other restriction of concurrent
assert is not applied on expect, as you mentioned the delay can be there
before expect assert.

				Regards
				Surya.

				
				
				Eduard Cerny wrote: 

				Concurrent assertion (assert cover
assume) cannot, but expect is a
				different animal. :-)
				ed
				 
				 
				  

				-----Original Message-----
				From: owner-sv-ac@eda.org
[mailto:owner-sv-ac@eda.org] On 
				Behalf Of Soumya Jyoti Wadader
				Sent: Tuesday, October 17, 2006 8:34 AM
				To: sv-ac@eda.org
				Subject: [sv-ac] example in expect
statement
				 
				Hallo,
				  In 1800 LRM sec: 17.16 one example is
given as :
				 
				program tst;
				initial
				begin
				 # 200ms;
				 expect( @(posedge clk) a ##1 b ##1 c )
else $error( "expect 
				failed" );
				ABC: ...
				end
				endprogram
				 
				Is this example is correct? My doubt is
"concurrent assertion 
				can not be 
				specified after a timing control
statement." so expect 
				statement can not 
				be declare after '#200 ms", am I
correct?
				Thanks & Regards
				Soumya
				 
				    

				 
				 
				  
Received on Sun Oct 22 09:48:36 2006

This archive was generated by hypermail 2.1.8 : Sun Oct 22 2006 - 09:48:46 PDT