|
Process Statements include a set of sequential statements that assign values to signals. These statements allow you to perform step-by-step computations. Process Statements that describe purely combinatorial behavior can also be used to create combinatorial logic. To ensure that a process is combinatorial, its sensitivity list must contain all signals that are read in the process. A sensitivity list contains the signals that cause the Process Statements to execute if their values change.
You can use Process Statements to create sequential logic. See Implementing Sequential Logic for more information. |
The following example shows a Process Statement that counts the number of bits in signal d
.
Signal d
is the only signal contained in the sensitivity list that follows the PROCESS
keyword, that is,
the only signal to which the process is sensitive.
ENTITY proc IS PORT ( d : IN STD_LOGIC_VECTOR (2 DOWNTO 0); q : OUT INTEGER RANGE 0 TO 3 ); END proc; ARCHITECTURE maxpld OF proc IS BEGIN PROCESS (d) -- count the number of set bits with the value 1 in word d VARIABLE num_bits : INTEGER; BEGIN num_bits := 0; FOR i IN d'RANGE LOOP IF d(i) = '1' THEN num_bits := num_bits + 1; END IF; END LOOP; q <= num_bits; END PROCESS; END maxpld;
In this example, d
is declared as an array in the Entity Declaration. Every time through the FOR
loop, i
is set to the next value, and d(i)
accesses information from the d
array. If d(i)
equals
1
, the If Statement increments num_bits
. The num_bits
variable is then assigned to the signal
q
, which is also declared in the Entity Declaration.
For more information, see the following sections of the IEEE Std 1076-1993 IEEE Standard VHDL Language Reference Manual:
- PLDWorld - |
|
Created by chm2web html help conversion utility. |