このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
MATLAB ベースの SystemVerilog DPI 生成を始める
この例では、MATLAB® で記述されたプログラム可能な方形波ジェネレーターの SystemVerilog DPI コンポーネントを生成し、それを HDL シミュレーターにエクスポートする方法を示します。
説明のため、この例では 64 ビット Windows® 7 の Modelsim® 10.3c を使用します。ただし、この同じ手順は他のシステムやシミュレータでも簡単に再現できます。
要件と前提条件
この例に必要な製品:
MATLAB Coder™
シミュレーター:Mentor Graphics® ModelSim®/QuestaSim® または Cadence® Xcelium™
サポートされている C コンパイラの 1 つ:Microsoft® Visual C++、または GNU GCC
MATLAB 設計
この例で使用されている MATLAB コードは、単純なプログラム可能な方形波ジェネレーターを示しています。この例では、設計を実行する MATLAB テスト ベンチも提供されます。
デザイン:ProgSWGenerator
テスト ベンチ:ProgSWGenerator_tb
次の画像は、この例で生成される DPI コンポーネントを示しています。
「On_time」と「Off_time」は出力信号のデューティ サイクルを制御します。
たとえば、On_time=1 かつ Off_time=1 の場合、生成される方形波のデューティ サイクルは 50% になります。
付属のMATLAB Testベンチで設計をシミュレート
実行時エラーがないこと、および設計が要件を満たしていることを確認するには、コード生成の前に、提供されているテストベンチを使用して設計をシミュレートします。MATLAB に次のコマンドを入力します。
ProgSWGenerator_tb
以下の図がプロットされるはずです。
プロットには、次のように動作するようにプログラムされた出力信号が表示されていることに注意してください。
クロックサイクル<100: オン=1、オフ=1
100<クロックサイクル<250: オン=2、オフ=1
250<クロックサイクル: オン=1、オフ=2
DPIGENコマンドを使用してDPIコンポーネントを生成する
DPIGEN を使用して、DPI コンポーネントを生成します。
MATLAB で DPIGEN コマンドを次のように実行します。
dpigen -testbench ProgSWGenerator_tb ProgSWGenerator -args {0,0}
次のディレクトリ構造が生成されます。
解像度:すべてのテストベンチ関連ファイルが格納されているフォルダー。
ProgSWGenerator_dpi.sv:生成された DPI コンポーネント。
ProgSWGenerator_dpi_pkg.sv:生成された SystemVerilog パッケージ。
libProgSWGenerator_dpi.dll:すべてのインポートされた関数の定義を含むライブラリ。
メモ: DPIGEN は自動的にライブラリをコンパイルしようとします。コンパイルせずにファイルを生成するだけの場合は、-c オプションを使用する必要があります。次に例を示します。
dpigen -c -testbench ProgSWGenerator_tb ProgSWGenerator -args {0,0}
生成されたテストベンチをHDLシミュレータで実行する
ModelSim/QuestaSim の場合は、次の手順を実行します。
ModelSim/QuestaSim を GUI モードで起動します。
HDL シミュレーターで、現在のディレクトリをコード生成ディレクトリの下の「dpi_tb」に変更します。
シミュレーションを開始するには次のコマンドを入力してください
do run_tb_mq.do
次に例を示します。
次の波形が生成されます。
出力波形 (下側) は、MATLAB テストベンチでプロットされた信号とまったく同じように動作することに注意してください。
Xcelium および VCS シミュレータの場合:
ターミナルシェルを起動します
現在のディレクトリをコード生成ディレクトリの下の「dpi_tb」に変更します。
Xcelium の場合は、シェルに次のコマンドを入力します。
sh run_tb_xcelium.sh
VCS の場合は、シェルに次のコマンドを入力します。
sh run_tb_vcs.sh
シミュレーションが終了すると、コンソールに次のテキストが表示されます。
**************TEST COMPLETED (PASSED)**************
これで、MATLAB ベースの SystemVerilog DPI コンポーネント生成例の開始は終了です。