0

System Verilog の学習を始めたばかりです。always_ffステートメントとの使用法について混乱していますalways_latch。前者は次のように使用されます。

always_ff @ (posedge clk)
begin
    a <= b;
end

一方、後者:

always_latch
begin
    a <= b;
end

1 つ目は、クロックのポジティブ エッジによってのみアクティブ化され、ノンブロッキング割り当てと組み合わせて FF を生成します。

always_latch明らかにラッチを表すと考えられていますが、なぜノンブロッキング割り当てを使用するのでしょうか? always_combブロック代入でを使用したほうがよいのではないでしょうか?

4

2 に答える 2

2

IEEE Std 1800-2012のセクション「9.2.2.3 ラッチされたロジックの always_latch プロシージャ」から:

always_latch コンストラクトは、ソフトウェア ツールが追加のチェックを実行し、always_latch コンストラクトの動作がラッチされたロジックを表していない場合に警告する必要があることを除いて、always_comb コンストラクトと同じです。論理。

Std のコード例は、非ブロッキング代入を使用した always_latch を示しています。

于 2015-07-01T15:58:21.497 に答える