________________________________ 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