always
プロシージャには、次の 4 つがあります。
- 常に成立
- always_comb
- always_latch
- always_ff
always_comb
プロシージャは、組み合わせロジックを記述します。センシティビティ リストは、always_comb
文を駆動するロジックにより推論されます。
always
文では、ユーザーがセンシティビティ リストを指定する必要があります。次の例では、in1
および in2
センシティビティ リストが使用されます。
always@(in1 or in2) out1 = in1 & in2; always_comb out1 = in1 & in2;
always_latch
プロシージャでは、ラッチをすばやく作成できます。always_comb
と同様、センシティビティ リストは推論されますが、次の例に示すようにラッチ イネーブルの制御信号を指定する必要があります。
always_latch if(gate_en) q <= d;
always_ff
プロシージャでは、フリップフロップが作成されます。always と同様、ユーザーがセンシティビティ リストを指定する必要があります。
always_ff@(posedge clk) out1 <= in1;