ハードウェア記述言語と検証
次のVerilogの記述のうち、論理合成で回路にならず無視されるもの(シミュレーション用の記述)はどれか。
- Aassign文
- Balways @(posedge clk)
- C#10 のような遅延の指定
答えと解説を見る
正解:C. #10 のような遅延の指定
「#10」は、シミュレーションの中で時間を10単位進めることを表しますが、論理合成は遅延を作ることができないので無視します。回路の実際の遅延は、使うゲートや配線で決まります。ほかにも、$displayのような表示の命令や、ファイルの読み書きなど、テストベンチ用の記述は回路になりません。合成するRTLの中にこうした記述を混ぜると、シミュレーションと実機の動きが違う原因になります。
- A. assign文は組み合わせ回路になります。
- B. これはフリップフロップになります。
- C. 正しい。遅延は配置配線後の回路で決まります。