Tutorial by Examples

The simplest form of wait statement is simply: wait; Whenever a process executes this it is suspended forever. The simulation scheduler will never resume it again. Example: signal end_of_simulation: boolean := false; ... process begin clock <= '0'; wait for 500 ps; clock <= '1...
A process with a sensitivity list cannot also contain wait statements. It is equivalent to the same process, without a sensitivity list and with one more last statement which is: wait on <sensitivity_list>; Example: process(clock, reset) begin if reset = '1' then q &l...
It is possible to omit the on <sensitivity_list> and the for <timeout> clauses, like in: wait until CONDITION; which is equivalent to: wait on LIST until CONDITION; where LIST is the list of all signals that appear in CONDITION. It is also equivalent to: loop ...
using only the for <timeout> clause, it is possible to get an unconditional wait that lasts for a specific duration. This is not synthesizable (no real hardware can perform this behaviour so simply), but is frequently used for scheduling events and generating clocks within a testbench. This e...

Page 1 of 1