The action of a wait statement when the conditions for which the wait statement is waiting are satisfied.
A suspended process (i.e. a process waiting for a condition specified in a wait statement to be met) is resumed when the condition is met. The execution of resumed process is started immediately in the current simulation cycle (time), unless the process is not postponed. In the latter case, the process execution is postponed to the last simulation cycle at the current simulation time.
A resumed process executes its statements sequentially in a loop until a wait statement is encountered. When this happens, the process becomes suspended again.
Example 1
process (CLK, RST)
begin
if RST='1'
then
Q <= '0';
elsif
(CLK'event) and (CLK='1')
then
Q <= D;
end if;
end process;
In this Example 1
of a D flip-flop, the process is sensitive to the two signals: CLK
and RST. It will resume when any of the two signals will change its
value. Resuming of the process will cause the execution of the 'if'
statement (which his the only one statement in this process) and then
the process will suspend again, waiting for a change on either RST or CLK.
A resumed process not necessarily executes all its statements: if there are multiple wait statements the execution suspends on the next 'wait'.