Last Update 2023/04/21

論理回路の検証で用いるHDL文法とノウハウ
Verilog HDL&VHDLテストベンチ記述の初歩

安岡 貴志 著
B5変型判 240ページ
定価2,860円(税込)
JAN9784789831086
2010年10月1日発行
好評発売中!
Verilog HDL&VHDLテストベンチ記述の初歩

 本書は,ハードウェア記述言語(HDL)によるテストベンチの記述にフォーカスした入門書です.FPGAやASICの開発における検証では,シミュレーション手法が広く普及しています.シミュレーションの際には,設計した回路に加えて,テストベンチと呼ばれるコードが必要になります.
 本書ではテストベンチの記述の仕方を基本から説明しています.Verilog HDLとVHDLの二つのハードウェア記述言語について,テストベンチを記述するために必要な文法を解説し,多くの記述例を示しています.また,複雑な検証を効率的に進める手法についても解説しています.

目次

まえがき

第1章 検証の重要性とテストベンチ
 1.1 検証で用いるテストベンチとは
 1.2 検証方法の考え方

第2章 組み合わせ回路のためのテストベンチ
 2.1 検証環境を置く箱を作る
 2.2 箱に検証対象の回路を置く
 2.3 箱の中で入力波形を作る
 2.4 信号を検証対象の回路のポートにつなげる
 2.5 シミュレータによる検証の実施

第3章 順序回路のためのテストベンチ
 3.1 クロックを含むテストベンチの注意点
  コラム 幅のある信号の表記
 3.2 検証仕様とテスト入力の記述
  コラム リセット前のフリップフロップの値
  コラム クロックの記述
 3.3 検証結果の確認
  コラム 検証仕様の洗い出し
  コラム 丸め精度について

第4章 遅延の記述方法
 4.1 相対遅延と絶対遅延
 4.2 ソフトウェア風にテスト入力を記述する
  コラム 遅延の書き忘れによるミス
  コラム ループ変数の重複によるミス
 4.3 オーバフロー対策付き加算回路の検証

第5章 標準出力の記述方法
 5.1 標準出力の書き方
 5.2 テストベンチへの適用
 5.3 標準出力を使ったテストベンチの実際
  コラム `timescale
  コラム 観察方法におけるバグの例
  コラム テストベンチのデバッグの小技

第6章 ファイル入出力の記述方法
 6.1 ファイルによる検証結果の確認の方法
  コラム $fdisplay以外のファイル出力の文法
  コラム $fopenと$fclose使用上の注意
 6.2 パターン・ファイルによるテスト入力の生成
  コラム 不具合は人間の想定の外にある

第7章 タスク/プロシージャの記述方法
 7.1 テストベンチの構造化
 7.2 構造化の実例
 7.3 構造化の利点
 7.4 クロック・エッジ・ベースのタイミング制御
 7.5 タスク/プロシージャの文法上の注意
 7.6 タスク/プロシージャによるバス動作の記述
  コラム タスクの限界
  コラム タスク/プロシージャとファンクションの違い

第8章 階層化の記述方法
 8.1 RAMのシミュレーション・モデル
  コラム RAMのシミュレーション・モデルは合成しない
 8.2 テストベンチの階層化
  コラム ModelSimによるライブラリの指定法
 8.3 上位階層からの定数の引き渡し

第9章 期待値比較の記述方法
 9.1 期待値の比較を自動化する
  コラム 等号演算子
  コラム プロシージャreadとhreadの差
  コラム assert文の本来の使い方
 9.2 比較の待機と期待値自動生成
  コラム function文の戻り値
 9.3 期待値比較の欠点
  コラム テスト入力の選択
  コラム アサーション
  コラム force文とrelease文
  コラム 部分ビットの接続

第10章 テスト・パターンの検討
 10.1 画像処理回路の検証を考える
 10.2 テスト内容を洗い出す
 10.3 テスト・パターン表の作成
 10.4 テストの順序と検証方法
  コラム パターンが多ければテストが早く終わる
 10.5 テストベンチのコーディング
 10.6 デバッグの進め方の基本

第11章 ランダム検証
 11.1 ランダム検証のための基礎知識
 11.2 ランダム値生成関数の記述
  コラム 階層アクセス
 11.3 レポートとその分析

第12章 作業効率の向上
 12.1 グループ検証とRTLコードのバージョン管理
 12.2 作業効率の上げ方
 12.3 パラメータ・ファイルの自動生成
 12.4 テスト・パターンの自動実行
  コラム VHDLにおけるコンパイル記述の切り替え

第13章 コード・カバレッジ
 13.1 検証漏れのないフロー
 13.2 コード・カバレッジの活用
 13.3 コード・カバレッジの注意

第14章 非同期検証
 14.1 ゲート・レベルのシミュレーション
 14.2 非同期対策
 14.3 ジッタ対策

第15章 応用的検証
 15.1 タスク/プロシージャの応用
 15.2 シミュレーション以外の検証方法

Appendix A テストベンチ記述のためのVerilog HDL文法リファレンス
 A.1 テストベンチの基本文法
 A.2 遅延/タイミング制御にかかわる文法
 A.3 条件制御にかかわる文法
 A.4 標準出力にかかわる文法
 A.5 ファイル操作にかかわる文法
 A.6 設計資産の再利用にかかわる文法
 A.7 そのほかの文法

Appendix B テストベンチ記述のためのVHDL文法リファレンス
 B.1 テストベンチの基本文法
 B.2 遅延/タイミング制御にかかわる文法
 B.3 条件制御にかかわる文法
 B.4 標準出力/ファイル制御にかかわる文法
 B.5 設計資産の再利用にかかわる文法
 B.6 そのほかの文法