ハードウェア記述言語と検証
上のVerilogのassign文が表す回路として正しいものはどれか。
assign y = (a & b) | c;
- AaとbのANDとcのORをとる組み合わせ回路で、入力が変わるとすぐにyも変わる
- Bクロックのたびにyを更新するフリップフロップ
- C一度だけ計算して、その後は値が変わらない回路
答えと解説を見る
正解:A. aとbのANDとcのORをとる組み合わせ回路で、入力が変わるとすぐにyも変わる
assign文は連続代入と呼ばれ、右辺の式の値が常に左辺の信号に反映される配線を表します。右辺の入力のどれかが変われば、出力yもすぐに(ゲートの遅延の後に)変わります。この例はANDゲートとORゲートの組み合わせ回路になります。記憶の働きはないので、値を保持したいときは、クロックで更新するalwaysブロックを使います。
- A. 正しい。連続代入と呼ばれます。
- B. クロックは使っていません。
- C. 入力が変わるたびに出力も変わります。