There are four always
procedures:
- always
- always_comb
- always_latch
- always_ff
The procedure always_comb
describes combinational logic. A sensitivity
list is inferred by the logic driving the always_comb
statement.
For always
you must provide the sensitivity list. The following examples
use a sensitivity list of in1
and in2
:
always@(in1 or in2) out1 = in1 & in2; always_comb out1 = in1 & in2;
The procedure always_latch
provides a quick way to create a latch. Like
always_comb
, a sensitivity list is inferred, but you must specify a
control signal for the latch enable, as in the following example:
always_latch if(gate_en) q <= d;
The procedure always_ff
is a way to create Flip-Flops. Again, you must
specify a sensitivity list:
always_ff@(posedge clk) out1 <= in1;