RE: [sv-ac] example in expect statement

From: Rich, Dave <Dave_Rich_at_.....>
Date: Sun Oct 22 2006 - 09:27:01 PDT
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:27:19 2006

This archive was generated by hypermail 2.1.8 : Sun Oct 22 2006 - 09:27:28 PDT