ハードウェア記述言語と検証

シミュレーションで、リセットのないレジスタの値が最初Xになっていた。実際のチップではどうなると考えられるか。

  1. A電源を入れたときに0か1のどちらかになるが、どちらになるかは決まっていない
  2. B実際のチップでも、0と1の中間の電圧のまま止まる
  3. C実際のチップでは必ず0になる
答えと解説を見る

正解:A. 電源を入れたときに0か1のどちらかになるが、どちらになるかは決まっていない

実際のフリップフロップは、電源を入れると0か1のどちらかの安定した状態に落ち着きますが、どちらになるかはチップや場所、温度などで変わり、決まっていません。シミュレーションのXは「どちらか分からない」ことを表しています。その値が回路の動作に影響するなら、リセットで決まった値にする必要があります。データの通り道のように、使う前に必ず書き込まれるレジスタではリセットを省くこともあります。

  • A. 正しい。だからリセットや初期化が重要になります。
  • B. フリップフロップは0か1のどちらかに落ち着きます。
  • C. 必ず0になるとは限りません。
この分野を解く 分野ページへ

ハードウェア記述言語と検証のほかの問題

  1. 上の記述で、selがX(不定)のとき、Verilogのシミュレーションではyにbが選ばれる。この性質が検証で問題になる理由として正しいものはどれか。
  2. HDLでZ(ハイインピーダンス)を出力するトライステートの記述について、一般的に正しいものはどれか。
  3. HDLの検証で使うテストベンチの説明として正しいものはどれか。
  4. テストベンチの上の記述で作られるクロックの周期はいくらか(時間の単位は1 nsとする)。
  5. テストベンチで、回路への入力をクロックの立ち上がりと同じ時刻にブロッキング代入で変えると、問題が起きることがある。主な理由と対策の組み合わせとして正しいものはどれか。