Processes Revisited
Complete PROCESS declaration syntax :
A process with no signal assignment statements within it or its procedures is a passive process
- Passive processes may appear in entity declarations
Execution of postponed processes (new to VHDL93) :
- Triggered in the simulation cycle in which its sensitivity_list or wait statement conditions are satisfied
- Execute on the last delta cycle of the corresponding simulation time
- May not generate additional delta cycles in its execution
[POSTPONED] PROCESS [sensitivity_list)] [IS]
END [POSTPONED] PROCESS [process_label];
Notes:
The full syntax of the VHDL process statement is shown here. Two important points are made in this slide.
First, the notion of a passive process is introduced. Because passive processes do not create events in the VHDL timing cycle (i.e. they do not make signal assignments), they may be included in VHDL entity declarations where they may be used with TEXTIO or assert statements to report on the state of a simulation, for example.
Second, the postponed process was introduced in VHDL93 to allow a modeler to implement processes that will not be executed until the last possible moment in the simulation cycle. Postponed processes may be used to allow transient conditions to settle out before a simulation state is examined or an assignment is made. Note that any signal assignment in a postponed process must include an assigned delay (i.e. cannot default to a delta cycle delay) to prevent the addition of further delta cycles within the simulation cycle such that the delta cycle in which the postponed process executed would no longer be the last of the simulation cycle.