RE: [sv-bc] scope of break/continue within foreach loop

From: Daniel Mlynek <daniel.mlynek@aldec.com.pl>
Date: Wed Jun 02 2010 - 06:42:04 PDT

The syntax proposed by you (foreach (a[x][y]) ) is not valid according to
LRM. Froeach can take :
hierarchical_array_identifier

as an argument, not array member select.

 

DANiel

  _____

From: Jonathan Bromley [mailto:jonathan.bromley@verilab.com]
Sent: Wednesday, June 02, 2010 12:44 PM
To: Daniel Mlynek
Cc: Paul Graham; sv-bc
Subject: Re: [sv-bc] scope of break/continue within foreach loop

I agree with Daniel. If break takes you right out of foreach, you can
easily get
the "break out of inner loop" behaviour by splitting the loop:

   foreach (a[x,y]) begin
      ...mess with a[x][y];
      break; // should break out completely
   end

   foreach (a[x]) begin
     foreach (a[x][y]) begin // this scans only y, right????
       ...mess with a[x][y];
       break; // breaks out of y-loop only
     end
   end

But if break only breaks the innermost loop, it's troublesome to break
out of the whole "foreach".

-- 
Jonathan Bromley
On Wed, Jun 2, 2010 at 11:31 AM, Daniel Mlynek <daniel.mlynek@aldec.com.pl>
wrote:
Imho break should  break the whole loop any other hahviour would be just
hard to understand ie:
module top;
int arr[10][3];
initial
foreach (arr[i,j]) begin
       $display(i, j);
       if (i==2) break; //this breaks the foreach and finishes whole tests
end
endmodule
DANiel
-----Original Message-----
From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of Paul
Graham
Sent: Tuesday, June 01, 2010 11:55 PM
To: sv-bc
Subject: [sv-bc] scope of break/continue within foreach loop
A foreach statement with multiple variables is defined as equivalent to a
set of nested for loops.  If a break statement is executed in the body of a
forever loop, does it break out of the innermost of these nested for loops,
or does it break out of the outermost?  Likewise for a continue statement.
I guess it should be the outermost loop.  Could this be clarified?
Paul
--
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.
--
This message has been scanned for viruses and
dangerous content by MailScanner, 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 Wed Jun 2 06:42:24 2010

This archive was generated by hypermail 2.1.8 : Wed Jun 02 2010 - 06:45:15 PDT