The while loop is a variation on the Loop statement where the boolean exit condition is given at the start of the loop.
while booleanExpression loopscl statementsexit when booleanExpression // optionalend loop;
The boolean expression is what you would expect it to be. Here are a few examples
//infinite loopwhile true loopRD1 <= '0';wait on RD1;end loop;
//loop until PC > 0x2000while PC <= #16#2000# loopPIR3.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 clearedwhile PIR2.EEIF == 1 loopRD1 <= '1';wait on RD0;exit when PC == 0; // device resetend loop;