| Sequential Statement | ---- used in ----> | Loop For Loop While Loop |
| Syntax |
exit; |
exit loop_label; |
exit loop_label when condition; |
| Rules and Examples |
The exit statement is used to terminate a while, for or
infinite loop:
for I in 0 to 7 loop
if FINISH_LOOP_EARLY = '1' then
exit;
else
A_BUS <= TABLE(I);
wait for 5 ns;
end if;
end loop; |
The exit statement may test a boolean condition directly using the
when keyword
process (A)
variable I : integer range 0 to 4;
begin
Z <= "0000";
I := 0;
loop
exit when I = 4;
if (A = I) then
Z(I) <= '1';
end if;
I := I + 1;
end loop;
end process; |
For an exit statement within a set of nested loops, the optional
loop label may be used to indicate which level of loop is to be exited.
The default (no label) is the innermost loop:
L1: for I in 0 to 7 loop
L2: for J in 0 to 7 loop
exit L1 when QUIT_BOTH_LOOPS = '1';
exit when QUIT_INNER_LOOP = '1';
-- other statements
end loop L2;
end loop L1; |
| Synthesis Issues |
| Whats New in '93 |
In VHDL-93, the exit statement may have an optional label
label: exit loop_label;