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

SystemVerilogのalways_ffやalways_combを、Verilogのalwaysの代わりに使う利点として正しいものはどれか。

  1. Aalways_ffを使うと、回路の速さが必ず2倍になる
  2. Balways_combを使うと、シミュレーションが不要になる
  3. C設計者の意図(フリップフロップか組み合わせ回路か)をツールが知り、意図と違う回路(ラッチなど)になると警告できる
答えと解説を見る

正解:C. 設計者の意図(フリップフロップか組み合わせ回路か)をツールが知り、意図と違う回路(ラッチなど)になると警告できる

Verilogのalwaysは、フリップフロップにも組み合わせ回路にもラッチにも使えるので、ツールは設計者の意図を知りません。always_ffと書けばフリップフロップのつもり、always_combと書けば組み合わせ回路のつもりだと明示でき、条件の書き漏れでラッチができたときなどにツールが警告やエラーを出せます。always_combは中で読んでいる信号から自動でセンシティビティを決めます。

  • A. 速さとは関係ありません。
  • B. シミュレーションは引き続き必要です。
  • C. 正しい。always_combはセンシティビティリストも自動で決まります。
この分野を解く 分野ページへ

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

  1. 上のようにparameterを使ってmoduleを書く利点として正しいものはどれか。
  2. 上のgenerate文の働きとして正しいものはどれか。
  3. HDLの検証で使われるLintツールの役割として正しいものはどれか。
  4. 論理合成や配置配線の後の回路(ゲートレベルのネットリスト)で、遅延の情報を入れてシミュレーションを行う主な目的はどれか。
  5. 上の記述のように、フリップフロップを通らずに組み合わせ回路の出力が自分の入力に戻ってくる形を何と呼び、なぜ避けるべきか。