PROCESS Statement
|
A PROCESS statement contains sequential statements but is itself a concurrent statement within an architecture. An independent sequential process represents the behavior of some portion of a design. The body of a process is a list of sequential statements. See Processes. The sequential statements in the process are executed in order, commencing with the beginning of simulation. After the last statement of a process has been executed, the process is repeated from the first statement, and continues to repeat until suspended. Processes can be suspended with a WAIT statement. The WAIT statement is a versatile statement that lets you suspend a process for a specific period of time, Boolean condition to occur, or/and an event to occur on a signal. The optional sensitivity list is equivalent to providing a WAIT ON statement and causes the process to be suspended. A process cannot have both a sensitivity list as well as a WAIT ON statement. See WAIT Statement. |
||
|
[label_name:] PROCESS [(sensitivity_list)] …local declarations BEGIN …sequential statements END PROCESS [label_name]; |
||
|
sensitivity_list |
List of signal names separated by a comma. The list represents a set of signals to which the WAIT statement within the process is sensitive. If no sensitivity list is defined, a WAIT statement within the process must be specified. |
|
|
local declarations |
Declarations declare data types, constants, signals, files, components, attributes, subprograms, and other information used in the model description. |
|
|
sequential statements |
Statements that are executed in the order in which they appear, that define algorithms for the execution of a subprogram or process. |
|
|
clock <= NOT clock AFTER 10 us; PROCESS (clock) -- sensitivity list consists of clock VARIABLE num_events : INTEGER := 0; BEGIN num_events := num_events + 1; END PROCESS; |
||