Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

HDL テスト ベンチを使用して Simulink モデルから生成されたコードの検証

この例は、HDL テスト ベンチを生成し、設計用に生成されたコードを検証する方法を示します。この例では、モデルの HDL コードが既に生成されていることを前提とします。この例では、簡単な加算カウンター用の生成コードの検証方法について説明します。このカウンター モデルの詳細と HDL コードの生成方法については、Simulink モデルからの HDL コードの生成を参照してください。

メモ

HDL コードをまだ生成していない場合、このモデルを開いて、HDL テスト ベンチを生成できます。テスト ベンチを生成する前に、HDL Coder™ はコード生成を実行して、テスト ベンチの生成前に少なくとも 1 つのコード生成の実行が成功していることを確認します。

簡単な加算カウンター モデル

このモデルを開いて、簡単な加算カウンターを表示します。モデルはゼロからしきい値までカウントし、ゼロに戻ります。このモデルでは、しきい値は 15 に設定されています。count_threshold ポートへの入力である Constant ブロックの値を変更することで、しきい値を変更できます。イネーブル信号は、カウンターがカウントすべきか、あるいは前の値を保持すべきかを指定します。イネーブル信号が 1 に設定されています。これは、カウンターが継続的にカウントすることを意味しています。

open_system('hdlcoder_simple_up_counter.slx')
set_param('hdlcoder_simple_up_counter', 'SimulationCommand', 'Update')

生成されたコードの検証方法

この例では、HDL テスト ベンチを生成して、設計に合わせて生成された HDL コードのシミュレーションおよび検証を行う方法を説明します。次の方法を使用してモデルから生成された HDL コードを検証することもできます。

検証方法詳細情報
検証モデル生成されたモデルと検証モデル
HDL コシミュレーション (HDL Verifier™ が必要)コシミュレーション
SystemVerilog DPI テスト ベンチSystemVerilog DPI テスト ベンチ
FPGA インザループFPGA インザループ

HDL テスト ベンチとは

DUT に対して生成された HDL コードの機能を検証するには、HDL テスト ベンチを生成します。テスト ベンチには以下が含まれます。

  • テスト対象のエンティティに接続されている信号のソースによって生成されたスティミュラス データ。

  • テスト対象のエンティティによって生成された出力データ。テスト ベンチの実行中、このデータは検証のために VHDL® モデルの出力と比較されます。

  • テスト対象のエンティティを駆動するクロック、リセットおよびクロック イネーブルの入力。

  • テスト対象のエンティティをコンポーネントにインスタンス化したもの。

  • テスト対象のエンティティを駆動し、エンティティからの出力を予測されているデータと比較するコード。

Mentor Graphics® ModelSim® シミュレーターを使用して、生成されたテスト ベンチおよびスクリプト ファイルのシミュレーションを実行できます。

HDL テスト ベンチの生成

VHDL コードまたは Verilog コードのどちらを生成したかに応じて、VHDL テスト ベンチ コードまたは Verilog テスト ベンチ コードを生成します。テスト ベンチ コードは、DUT に対して生成された HDL コードを駆動します。既定では、HDL コードおよびテスト ベンチ コードは、現在のフォルダーに対して相対的に同じターゲット フォルダー hdlsrc に書き込まれます。

加算カウンター モデルの場合、[HDL_DUT] サブシステムが DUT です。テストベンチを生成するには、このサブシステムを選択します。モデル全体の HDL テストベンチを生成することはできません。

  1. [アプリ] タブで、[HDL Coder] を選択します。[HDL コード] タブが表示されます。

  2. モデルの DUT サブシステムを選択し、その Subsystem 名が [次のコード] オプションに表示されることを確認します。選択内容を記憶しておくために、このオプションは固定できます。[テストベンチの生成] をクリックします。

既定では、HDL Coder はターゲット hdlsrc フォルダーに VHDL テストベンチ コードを生成します。

カウンター モデル用の Verilog テストベンチ コードを生成するには、次の手順を実行します。

  1. [HDL コード] タブで、[設定] をクリックします。

  2. [HDL コード生成] ペインで、[言語] に対して [Verilog] を選択します。その他の設定は既定のままにします。

  3. [HDL コード生成][テスト ベンチ] ペインで、[テスト ベンチを生成] をクリックします。

HDL テスト ベンチ ファイルの表示

  1. モデルのコードをまだ生成していない場合、HDL Coder はテスト ベンチを作成する前にモデルをコンパイルし、HDL コードを生成します。端子のデータ型などのモデルの表示オプションによっては、コードの生成後にモデルの外観が変わることがあります。

    HDL Coder に、テスト ベンチ生成の進行状況を示すメッセージが表示されます。プロセスが終了すると次のメッセージが表示されます。

    ### HDL TestBench Generation Complete.
    
  2. テスト ベンチの生成後、生成されたファイルは hdlsrc フォルダーにあります。たとえば、加算カウンター モデルで HDL_DUT サブシステムのテスト ベンチを生成した場合、フォルダーには以下が含まれます。

    • HDL_DUT_tb.vhd: VHDL テスト ベンチ コードと、生成されたテストおよび出力データ。

      メモ

      Verilog テスト ベンチ コードを生成した場合、生成されたファイルは HDL_DUT_tb.v です。

    • HDL_DUT_tb_pkg.vhd: VHDL テスト ベンチ コードのパッケージ ファイル。ターゲット言語として Verilog を指定した場合は、このファイルは生成されません。

    • HDL_DUT_tb_compile.do: Mentor Graphics ModelSim コンパイル スクリプト (vcom コマンド)。このスクリプトはテスト対象のエンティティ (HDL_DUT.vhd) とテスト ベンチ コード (HDL_DUT_tb.vhd) のコンパイルおよび読み込みを行います。

    • HDL_DUT_tb_sim.do: シミュレーターの初期化、[波形] ウィンドウの信号表示の設定、シミュレーションの実行を行う Mentor Graphics ModelSim スクリプト。

  3. 生成されたテスト ベンチ コードを MATLAB® エディターで表示するには、現在のフォルダーで HDL_DUT_tb.vhd または HDL_DUT_tb.v ファイルをダブルクリックします。

生成された HDL コードのシミュレーションの実行と検証

シミュレーション結果を検証するには、Mentor Graphics ModelSim シミュレーターを使用できます。 Mentor Graphics ModelSim が既にインストールされていることを確認してください。

シミュレーターを起動するには、関数 vsim (HDL Verifier) を使用します。実行可能ファイルへのパスを指定することで、このコマンドはシミュレーターを開く方法を示します。

vsim('vsimdir','C:\Program Files\ModelSim\questasim\10.6b\win64\vsim.exe')

生成されたモデルおよびテスト ベンチ コードをコンパイルし、シミュレーションを実行するには、HDL Coder によって生成されるスクリプトを使用します。次の例は、hdlcoder_simple_up_counter/HDL_DUT サブシステムのために生成されたテスト ベンチをコンパイルし、シミュレーションを実行するコマンドを示します。

  1. Mentor Graphics ModelSim ソフトウェアを開いて、生成されたコード ファイルおよびスクリプトがあるフォルダーに移動します。

  2. 生成されたコンパイル スクリプトを使用して、生成されたモデルとテキスト ベンチ コードをコンパイルして読み込みます。たとえば、hdlcoder_simple_up_counter/HDL_DUT サブシステムのテスト ベンチを生成した場合、このコマンドを実行して生成されたコードをコンパイルします。

    
    QuestaSim>do HDL_DUT_tb_compile.do
    
    
  3. 生成されたシミュレーション スクリプトを使用してシミュレーションを実行します。コマンドと応答を以下に示します。警告メッセージは無視してかまいません。テスト ベンチの終了メッセージは、シミュレーションの実行が比較エラーなしに完了したことを示します。たとえば、hdlcoder_simple_up_counter/HDL_DUT サブシステムのテスト ベンチを生成した場合、このコマンドを実行して生成されたコードのシミュレーションを実行します。

    
    QuestaSim>do HDL_DUT_tb_sim.do
    
    

    シミュレーターによって設計が最適化され、HDL 設計のシミュレーション結果が [波形] ウィンドウに表示されます。シミュレーション結果が表示されない場合は [波形] ウィンドウを開きます。シミュレーション スクリプトによって、クロック、リセット、クロック イネーブル信号を含むモデルの入出力が [波形] ウィンドウに表示されます。

これで、信号を表示して、シミュレーション結果が元の設計の機能と一致していることを検証できます。検証後、Mentor Graphics ModelSim シミュレーターを閉じてから、MATLAB エディターで開いたファイルを閉じます。

ターゲット デバイスでの生成 HDL コードの展開

HDL 設計の機能を検証したら、生成されたコードをターゲット FPGA デバイスに展開することができます。展開では、Simulink HDL ワークフロー アドバイザーを使用します。詳細な方法については、Simulink HDL ワークフロー アドバイザーを使用した HDL コード生成および FPGA 合成を参照してください。

参考

|

関連するトピック