ハードウェア記述言語コードのシミュレーションとデバッグ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/17 23:00 UTC 版)
「ハードウェア記述言語」の記事における「ハードウェア記述言語コードのシミュレーションとデバッグ」の解説
ハードウェア記述言語による設計の本質は、ハードウェア記述言語プログラムをシミュレーション可能な点にある。シミュレーションすることで、設計のハードウェア記述言語プログラム(モデル)が設計検証に合格するようにできる。設計検証は、コード実装(ハードウェア記述言語プログラム)がその設計が意図した機能(仕様)に対して妥当かを検証する重要なマイルストーンである。シミュレーションによって構造(アーキテクチャ)的な吟味もする。技術者は基本設計に対して複数の設計を実験的に書き、シミュレーションでそれらの動きを比較することができる。以上のようなことから、ハードウェア記述言語による設計ではシミュレーションが重要である。 ハードウェア記述言語で書かれたモデルをシミュレーションするには、テストベンチと呼ぶシミュレーション環境をまず記述する。テストベンチには少なくとも、モデルを実体(インスタンス)化した試験対象装置(Device Under Test、DUT)、そのモデルの入出力のためのピンと信号の宣言、クロック波形が必要である。テストベンチのコードはイベント駆動型である。テストベンチが生成するリセット信号の実装、インタフェース・トランザクション(ホストバスの読み書きなど)のモデリング、そしてDUTの出力モニタのための記述が必要となる。テストベンチを実行するソフトウェアをシミュレータと呼ぶ。シミュレータはテストベンチ内の全イベントの参照元となるシミュレータ・クロックを発生させる。イベントはテストベンチのプログラムが指示したときだけ発生するもの(テストベンチ内のコードでリセット信号を発生させるなど)と、およびそのようなイベントへの反応としてモデルが発生するものがある。最近のシミュレータはGUI化されており、デバッグツール一式も備えている。利用者は任意の時点でシミュレーションを中断/再開でき、ブレークポイントを設定でき、モデルの階層を監視/変更できる。さらにプログラム実行環境に利用者がコンパイルしたライブラリをPLI/VHPIインタフェースを通してリンクできるシミュレータもある。リンクは環境依存であり、シミュレータと利用者ライブラリのコンパイルとリンクは、HDL環境の外部で行う。 設計検証は、ソフトウェア開発工程で言えばソフトウェア試験(ソフトウェアテスト)とデバッグの工程である。設計工程の中でも最も時間がかかる可能性がある。試験結果によっては大きな設計変更もありうるため、シミュレータ環境で最初に行う。ただし、厳密に定義したコーディング規約に基づいているかどうかの検査を先に行うことにより、試験作業を大幅に短縮することもできる。プログラムをハードウェアで検証する目的でPLD(プログラマブルロジックデバイス)、FPGAを使うこともある。ハードウェアを使ったプロトタイピングはシミュレーションよりも費用がかかるが、シミュレーションではわからない設計上の問題点が明らかになることもある。他のハードウェアとのインタフェースの確認はハードウェアによるプロトタイピングが最善の方法である。FPGAは、シミュレータより高速に動作するだけでなく、実際に並行実行するための時間的な問題について検出可能である。
※この「ハードウェア記述言語コードのシミュレーションとデバッグ」の解説は、「ハードウェア記述言語」の解説の一部です。
「ハードウェア記述言語コードのシミュレーションとデバッグ」を含む「ハードウェア記述言語」の記事については、「ハードウェア記述言語」の概要を参照ください。
- ハードウェア記述言語コードのシミュレーションとデバッグのページへのリンク