FW: [sv-bc] disable example 3 in 9.6.2

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Mon Apr 14 2008 - 10:30:01 PDT
________________________________

From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On
Behalf Of Bresticker, Shalom
Sent: Wednesday, November 28, 2007 3:25 PM
To: stuart@sutherland-hdl.com
Cc: sv-bc
Subject: [sv-bc] disable example 3 in 9.6.2



Hi Stu, 

In 9.6.2 (disable), Example 3 is (using the text from Draft 2, the first
merge version, for clarity of the issue):

Example 3-This example illustrates using the disable construct to
disable terminate execution of a named 
block which does not contain the disable statement. If the block is
currently executing, this causes control to 
jump to the statement immediately after the block. If the block is a
loop body, it acts like a continue. If the 
block is not currently executing, the disable has no effect. 
module ... 
always always1: begin ... t1: task1( ); ... end 
.. 
endmodule 
always begin 
.. 
disable u1.always1.t1; // exit task1, which was called from always1 
(static) 
end 

On this, you added the comment 
example from 
1800-2005 10.8 
(should have referred to 10.9, I think). 

In Draft 4, you added the additional comment 
The task disable 
does not show 
the "terminate 
execution of a 
named block" in 
the description. 

I looked at this a little. 

The code example indeed comes from 1800-2005 10.9, but there the
preceding text is 
SystemVerilog has return from a task, but disable is also supported. If
disable is applied to a named 
task, all current executions of the task are disabled 
The code indeed makes sense in the context of that text. 

The text of Example 3 in the merged LRM seems to come from the paragraph
preceding the text I just quoted in 10.9 of 1800-2005, which was

SystemVerilog has break and continue to break out of or continue the
execution of loops. The Verilog 
disable can also be used to break out of or continue a loop, but is more
awkward than using break or 
continue. The disable is also allowed to disable a named block, which
does not contain the disable 
statement. If the block is currently executing, this causes control to
jump to the statement immediately after 
the block. If the block is a loop body, it acts like a continue. If the
block is not currently executing, the 
disable has no effect. 

But that was a separate paragraph, not directly talking about this code
example, which had its own preceding text, as I quoted. Looks to me like
a merge problem.

Regards, 
Shalom 

Shalom Bresticker 
Intel Jerusalem LAD DA 
+972 2 589-6582 
+972 54 721-1033 

---------------------------------------------------------------------
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 <http://www.mailscanner.info/> , and is

believed to be clean. 
---------------------------------------------------------------------
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 Mon Apr 14 10:32:50 2008

This archive was generated by hypermail 2.1.8 : Mon Apr 14 2008 - 10:33:29 PDT