Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

MATLAB System Object の協調シミュレーション ウィザード

Cosimulation Wizard を使用してHDL Verifier™アプリケーションをセットアップします。

この例では、 MATLAB® System objectと次の HDL シミュレーターを使用して、レジスタ転送レベル (RTL) デザインを検証します。

  • Xilinx®のVivado®シミュレータ

  • Mentor Graphics® の ModelSim® または Questa®

  • Cadence® の Xcelium®

このサンプル デザインは、Verilog で記述されたサイズ 8 の高速フーリエ変換 (FFT) です。FFT は、信号の周波数分布を生成するためにデジタル信号処理アプリケーションで一般的に使用されます。

この FFT の正確さを検証するために、 MATLAB System objectテストベンチが提供されています。このテストベンチは、HDL テスト対象デザイン (DUT) への周期的な正弦波入力を生成し、複素平面にフーリエ係数をプロットします。

コシミュレーション ウィザードは、提供されたこの FFT の Verilog ファイルを入力として受け取ります。また、各ステップで協調シミュレーションを設定するために必要なユーザー入力も収集します。例の最後に、コシミュレーション ウィザードは、構成された HdlCosimulation System objectをインスタンス化するMATLABスクリプト、HDL デザインをコンパイルするMATLABスクリプト、およびコシミュレーション用の HDL シミュレーターを起動するMATLABスクリプトを生成します。

1. コシミュレーションウィザードの起動

MATLABでこのコマンドを実行して、コシミュレーション ウィザード ツールを起動します。

cosimWizard

2.協調シミュレーション タイプの指定

[コシミュレーション タイプ] ページで、次の手順を実行します。

a. ModelSim を使用している場合は、HDL SimulatorModelSimに設定します。

Xcelium を使用している場合は、HDL SimulatorXceliumに設定します。

Vivado シミュレータを使用している場合は、HDL SimulatorVivado Simulatorに設定します。

「b.」 HDL コシミュレーションMATLAB System Objectに設定します。

「c.」 HDL シミュレーターの実行可能ファイルがシステム パス上にある場合は、デフォルトの [システム パス上の HDL シミュレーターの実行可能ファイルを使用する] オプションを変更しないでください。これらの実行可能ファイルがパス上にない場合は、HDL シミュレーターのパスを指定します。

「d.」 「次へ」をクリックします。

3.HDL ファイルの選択

[HDL ファイル] ページで、次の手順を実行します。

a. HDL ファイルをファイル リストに追加します。

  • 「追加」をクリックし、サンプルフォルダー内の Verilog ファイル「fft_hdl.v」と「fft_hdl_tc.v」を選択します。

  • ファイル リスト内のファイルを調べて、ファイル タイプが正しく識別されていることを確認します。

「b.」 「次へ」をクリックします。

4.HDL コンパイル コマンドの指定

コシミュレーション ウィザードの [コンパイル コマンド] ウィンドウにデフォルトのコマンドがリストされます。この例では、これらのコマンドを変更する必要はありません。

ModelSim のコンパイル コマンドは次のとおりです。

「次へ」をクリックします。MATLABコンソールにコンパイル ログが表示されます。コンパイル中にエラーが発生した場合、そのエラーはステータス領域に表示されます。次のステップに進む前にエラーを修正してください。

5.コシミュレーション用の HDL モジュールの選択

[シミュレーション オプション] ページで、次の手順を実行します。

a.協調シミュレーション用の HDL モジュールまたはエンティティの名前を指定します。

≪ModelSimまたはXceliumの場合≫

リストからfft_hdlを選択します。このモジュールは、コシミュレーションに使用する Verilog モジュールです。リストにfft_hdlが表示されない場合は、ファイル名を手動で入力します。

ModelSim のシミュレーション オプションは次のとおりです。

《Vivado シミュレータの場合》

Vivado シミュレータの場合、デフォルトで Verilog モジュールの名前が選択されます。Vivado シミュレーターのシミュレーション オプションは次のとおりです。 。

「b.」 「次へ」をクリックします。コシミュレーション ウィザードは、指定された HDL モジュールとシミュレーション オプションを使用して、バックグラウンド コンソールで HDL シミュレーターを起動します。ウィザードが HDL シミュレータを正常に起動すると、ウィザードは Verilog モデル fft_hdl に入力ポートと出力ポートを設定し、次のステップでそれらを表示します。

6.入出力ポートの種類を指定する

このステップでは、コシミュレーション ウィザードに、fft_hdl の入力ポートと出力ポートをそれぞれ含む 2 つのテーブルが表示されます。

コシミュレーション ウィザードは、各ポートのポート タイプを正しく識別しようとします。ウィザードがポートを誤って識別した場合は、これらのテーブルを使用してポートの種類を変更できます。

  • 入力ポートとして、 ClockResetInput 、またはUnusedを選択できます。HDL Verifier は、コシミュレーション中にInputとマークされた入力ポートのみをMATLABに接続します。

  • HDL Verifier は、コシミュレーション中にOutputとマークされた出力ポートをMATLABに接続します。リンク ソフトウェアとMATLAB は、コシミュレーション中にUnusedとマークされた出力ポートを無視します。

  • ClockおよびResetとして識別される信号のパラメーターは、後の手順で変更できます。

この例では、デフォルトのポートタイプを受け入れて「次へ」をクリックします。

7.出力ポートの詳細の指定

この例では、HDL FFT 出力は符号付きで、長さは 13 ビット、小数部の長さは 9 ビットです。[出力ポートの詳細] ページで、次の手順を実行します。

a. HdlCosimulation System objectを使用する場合、Sample Time は変更できず、常に 1 に固定されることに注意してください。

「b.」両方の出力のData TypeFixedpointに設定します。

「c.」両方の入力のSignSignedに設定します。

「d.」両方の出力のFraction Length9に設定します。

「e.」 「次へ」をクリックします。

8.時計の設定と詳細のリセット

クロック周期 (ns) を 20 に設定します。Verilog コードは、リセットが同期であり、アクティブな値が 1 であることを示しています。クロックの立ち上がりエッジによってトリガーされて、HDL デザイン全体を時間 1 ns でリセットできます。リセット信号には 15 ns の持続時間を使用します。[クロック/リセットの詳細] ページで、次の手順を実行します。

a.クロック周期を20に設定します。

「b.」アクティブ エッジをRisingに設定します。

「c.」リセット初期値を1に設定します。

「d.」リセット信号の継続時間を15に設定します。

「次へ」をクリックします。

9. 開始時刻の調整を確認する

[Start Time Alignment] ページには、クロック信号とリセット信号の波形のプロットが表示されます。コシミュレーション ウィザードは、コシミュレーションを開始する HDL 時間を赤い線で示します。開始時間は、 System object がHDL シミュレーターから最初の入力サンプルを取得する時間でもあります。クロックのアクティブ エッジは立ち上がりエッジです。したがって、HDL シミュレーターの時間 20 ns では、FFT の登録された出力は安定しています。競合状態は存在せず、協調シミュレーションを開始するデフォルトの HDL 時間 (20 ns) は正しいです。

「次へ」をクリックします。

10. システムオブジェクトの生成

コシミュレーション ウィザードがスクリプトを生成する前に、HDL シミュレーターのサンプリング期間を変更するオプションがあります。サンプリング周期により、 MATLAB のstep への各呼び出しの間に経過する HDL シミュレーターの時間が決まります。サンプリング周期は通常、クロック周期と同じです。入力と出力が (サンプル ベースではなく) フレーム ベースであるかどうかを指定することもできます。

「完了」をクリックしてコシミュレーション・ウィザードのセッションを完了します。

11. HDL 設計を検証するためのテストベンチを作成する

この例では、実際にはテストベンチを作成しません。代わりに、完成したスクリプトfft_tb.mは、verilogファイルが存在するディレクトリにあります。

コシミュレーション ウィザードで [完了] をクリックすると、アプリケーションは現在のディレクトリに 3 つのMATLABスクリプトを生成します。

ModelSim および Xcelium の場合

  • compile_hdl_design_fft_hdl.m:HDL デザインを再コンパイルします。

  • launch_hdl_simulator_fft_hdl.m:MATLAB System objectサーバーを再起動し、HDL シミュレーターを開始します。

  • hdlcosim_fft_hdl.m:HdlCosimulation System objectを作成します。

Vivado シミュレータの場合

  • hdlverifier_compile.m:HDL デザインを再コンパイルします。

  • hdlverifier_gendll_fft_hdl.m:System objectの動作に統合された HDL デザインとシミュレーション カーネルを含むコンパイル済み共有ライブラリを作成します。

  • hdlcosim_fft_hdl.m:HdlCosimulation System objectを作成します。

Verilog ファイルと同じディレクトリにあるファイル fft_tb.m および hdlcosim_fft_hdl.m を開き、HdlCosimulation System objectの呼び出しを確認します。 hdlcosim_fft_hdl.m には HdlCosimulation のインスタンス化が含まれ、fft_tb.m にはMATLAB System objectテストベンチが含まれています。このテスト ベンチを使用して、対応する HdlCosimulation System objectの HDL 設計を検証します。

12. コシミュレーションの実行と HDL デザインの検証

ModelSim および Xcelium の場合

スクリプトlaunch_hdl_simulator_fft_hdl.mを実行して、HDLシミュレーターを起動します。

launch_hdl_simulator_fft_hdl

HDL シミュレーターの準備ができたら、 MATLABに戻り、スクリプト fft_tb.m を実行してシミュレーションを開始します。

fft_tb

《Vivado シミュレータの場合》

スクリプトfft_tb.mを実行してシミュレーションを開始します。

fft_tb

テストベンチでプロットの結果を検証します。プロットには、複素平面のフーリエ係数が表示されます。

参考