SCL Reference: while Statement
The SCL while loop is a variation on the Loop statement where the boolean exit condition is given at the start of the loop.
while booleanExpression loop
scl statements
exit when booleanExpression // optional
end loop;
The boolean expression is what you would expect it to be. Here are a few examples
//infinite loop
while true loop
RD1 <= '0';
wait on RD1;
end loop;
//loop until PC > 0x2000
while PC <= #16#2000# loop
PIR3.ADIF <= 1;
wait 200 us;
end loop;
Note that even though the while statement has it's own boolean expression, the loop can still contain exit when statements.
//loop until PIR2.EEIF is cleared
while PIR2.EEIF == 1 loop
RD1 <= '1';
wait on RD0;
exit when PC == 0; // device reset
end loop;