ブロッキング代入とは
ぶろっきんぐだいにゅう
Verilogの「=」の代入。その場で左辺が更新され、次の行ではその新しい値が使われる。組み合わせ回路のalwaysやテストベンチで使う。
この用語の分野: ハードウェア記述言語と検証
ぶろっきんぐだいにゅう
Verilogの「=」の代入。その場で左辺が更新され、次の行ではその新しい値が使われる。組み合わせ回路のalwaysやテストベンチで使う。
この用語の分野: ハードウェア記述言語と検証
ブロッキング代入では、1行目でq1がすぐにdの値に更新され、2行目のq2には更新後のq1、つまりdが入ります。
2段のシフトレジスタのつもりで、上のようにブロッキング代入(=)で書いた。起こる問題として正しいものはどれか。ブロッキング代入(=)で書くと、1行目でaが1になり、2行目のbには新しいaの1が入って、両方とも1になってしまいます。
上の記述で、クロックの立ち上がりの直前にa=0、b=1だった。立ち上がりの後のaとbの値はどうなるか。組み合わせ回路では、上から順に途中の値を計算していく書き方が自然なので、ブロッキング代入を使います。
Verilogで代入の種類を使い分けるときの一般的なガイドラインとして正しいものはどれか。フリップフロップ ノンブロッキング代入 シフトレジスタ テストベンチ SystemVerilog Verilog 順序回路 組み合わせ回路 意図しないラッチ X楽観主義