VHDLテストベンチ

MATLAB および Simulink で作成した FPGA および ASIC 設計を検証する

VHDL®テストベンチは、論理設計に対してスティミュラスを定義し、設計の出力が仕様と一致することを確認するために使用されます。MATLAB® および Simulink® を使用して FPGA および ASIC 向けの新しいアルゴリズムのモデルを開発するエンジニアは、こうした環境の中でシステムのテストベンチも頻繁に作成しています。しかし、レジスタ転送レベル (RTL) で VHDL コードを記述する際は、システムのテストベンチに基づいた VHDLテストベンチを作成したいと考えるかもしれません。

MATLAB や Simulink のユーザーは、手動で VHDLテストベンチのコードを作成することなく、複数の方法で HDL アルゴリズムの実現の正確性を検証できます。

HDL コシミュレーションを使用した検証

VHDLテストベンチのコードを記述する代わりに、HDL シミュレーターと MATLAB および Simulink のテストベンチを併用して、テスト対象設計 (DUT) を検証できます。HDL Verifier™ により、このコシミュレーション プロセスを自動化します。MATLAB または Simulink のテストベンチでは、HDL シミュレーターからの出力値と真理値モデルからの期待値を比較して、「不一致」をレポートします。

FPGA インザループテストを使用した検証

FPGA インザループ シミュレーションにより、Xilinx®Intel®Microchip の FPGA 開発ボードにプログラミングされている DUT と共に MATLAB および Simulink のテストベンチを使用することもできます。HDL Verifier を FPGA ベンダーのツールと併用して、HDL の合成、配置配線の実行、プログラミング ファイルの生成、開発ボードへのファイルの読み込み、MATLAB または Simulink のセッションとボード間の通信設定などのプロセスを自動化できます。FPGA インザループでは、MATLAB または Simulink が同等の役割を果たすため、VHDLテストベンチの生成は不要です。

SystemVerilog DPI テストベンチを使用した検証

VHDLテストベンチを使用する代わりに、検証のコンポーネントを HDL シミュレーターにエクスポートする方法もあります。SystemVerilog はテストベンチ開発に使用される Verilog の拡張版であり、一般的なすべての HDL シミュレーターでサポートされています。SystemVerilog Direct Programming Interface (DPI) を使用すると、Synopsys® VCS®、Cadence Xcelium™、Xilinx Vivado®、Siemens EDA ModelSim® または Questa®、Xilinx® Vivado® などのシミュレーターと C/C++ コードを統合することが可能です。HDL Verifier と MATLAB Coder™ または Simulink Coder™ を併用することで、SystemVerilog DPI テストベンチを生成し、製品を検証できます。

HDL Verifier は、次の 2 つの形式で SystemVerilog DPI テストベンチを生成します。

  • コンポーネント テストベンチ: DPI コンポーネントとして使用するために Simulink サブシステムから C コードを生成することで、SystemVerilog テストベンチを生成できます。このテストベンチでは、Simulink モデルのデータベクトルに対して、生成された DPI コンポーネントを検証します。(SystemVerilog DPI コンポーネントの生成を参照。)
  • HDL コードテストベンチ: HDL Coder を使用して Simulink サブシステムから HDL コードを生成する場合は、SystemVerilog テストベンチを生成できます。このテストベンチでは、HDL Coder で生成した HDL 実装の出力を Simulink モデルの結果と比較します。(SystemVerilog DPI テストベンチを使用した HDL 設計の検証を参照。)

VHDLテストベンチによる生成された HDL の検証

HDL Coder を使用して HDL を生成する際に、サブシステムを選択して VHDLテストベンチを生成できます。HDL Coder では、Simulink でシミュレーションを実行し、DUT の入力ベクトルと期待される出力データを取得することで、VHDLテストベンチを生成します。HDL Coder は、MATLAB® または Simulink のシミュレーションからデータファイル (.dat) に DUT のスティミュラスと参照データを出力します。

HDL シミュレーション中に、HDL テストベンチは .dat ファイルに保存されたスティミュラスを読み取ります。このテストベンチでは、実際の DUT 出力と期待される出力を比較します。

参考: FPGA、ASIC、および SoC 開発向け MATLAB, HDL Coder, HDL Verifier, Vision HDL Toolbox, MATLAB Coder, Simulink Coder