vhdl_reference_93:exit

EXIT

[ label : ] exit [ loop _label ] [ when condition ] ;
  • function_statement_part
  • procedure_statement_part
  • process_statement_part

boolean _expression

In both cases the loops are left with the EXIT -statement if value = 0 .

In the first example this is achieved by a conditional EXIT -statement, whereas in the second example an unconditional EXIT -statement has been integrated into an IF -loop.

LOOP
   EXIT WHEN value = 0 ;
   tab( value ) := value REM 2 ;
   value := value / 2 ;
END LOOP ;
LOOP
   IF value = 0 THEN
      EXIT ;
   END IF ;
   tab( value ) := value REM 2 ;
   value := value / 2 ;
END LOOP ;

These are two examples of chained FOR -loops which are need to calculate the values of the elements of a two-dimensional array.

In the first example the inner loop is left if i = j . In the second example the outer loop is left if i = j .

lbl_1 : FOR i IN 10 DOWNTO 2 LOOP
   lbl_2 : FOR j IN 0 TO i LOOP
      EXIT lbl_2 WHEN i = j ;
      table ( i, j ) := i + j - 7 ;
   END LOOP lbl_2 ;
END LOOP lbl_1 ;
lbl_1 : FOR i IN 10 DOWNTO 2 LOOP
   lbl_2 : FOR j IN 0 TO i LOOP
      EXIT lbl_1 WHEN i = j ;
      table ( i, j ) := i + j - 7 ;
   END LOOP lbl_2 ;
END LOOP lbl_1 ;