A standard way of describing sequential logic is to use a process (processes are also used for combinational logic when certain constructs such as if and case statements are used). Architecture bodies may have zero, one or more processes. Processes have the form
process (sensitivity list) begin [sequential statements]; end process;
Whenever one of the signals in the sensitivity list changes, the sequential statements are executed in sequence once.
In contrast, signal assignment statements inside architecture bodies that are not contained in processes (or body) are called concurrent statements. Concurrent statements are executed any time one of the variables on the right hand side of <= changes, irrespective of the order in which they are listed.
ANU Engineering - ENGN3213