Main Content

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

MATLABシステム オブジェクトの HDL コードをインポート

協調シミュレーション タイプ - MATLABシステム オブジェクト

まだ実行していない場合は、コシミュレーション ウィザードを呼び出します。

cosimWizard

  1. Cosimulation Type」ペインで、 としてModelSimXcelium 、またはTG Vivado Simulatorを選択します。 $HDL Simulator

  2. フィールドMATLAB System object HDL cosimulation withを選択します。

  3. ファイルが存在する場所にある場合は、 Use HDL simulator executables on the system pathを選択します。コシミュレーション ウィザードは、デフォルトで、それらがシステム パス上にあると想定します。

    HDL シミュレーターの実行可能ファイルがシステム パス上に「ない」場合は、 Use the following HDL simulator executables at the following locationを選択し、下のテキスト ボックスにフォルダーの場所を指定します。

    Nextをクリックしてもコシミュレーション ウィザードで実行可能ファイルが見つからない場合は、次のことが発生します。

    • このダイアログに戻り、コシミュレーション ウィザードのステータス ペインにエラーが表示されます。

    • コシミュレーション ウィザードは、オプションをUse the following HDL simulator executables at the following locationに切り替えます。

    • コシミュレーション ウィザードは、HDL シミュレーション パス フィールドを編集可能にします。

    続行するには、HDL シミュレータ実行可能ファイルへの有効なパスを入力する必要があります。

  4. [Next]をクリックします。

HDL ファイル- MATLABシステム オブジェクト

HDL Filesペインで、関数またはブロックの作成に使用するファイルを指定します。

  • コシミュレーション ウィザードは、各ファイルのファイル タイプを判断し、そのタイプをファイル名の横のFile Listに表示しようとします。コシミュレーション ウィザードでタイプを判断できない場合、または間違ったタイプが表示される場合は、 File Type列でタイプを直接変更できます。

  • 可能であれば、コシミュレーション ウィザードは、HDL シミュレーターが提供する機能を使用してコンパイル順序を自動的に決定します。シミュレータにこの機能が含まれていない場合は、コンパイルする必要がある順序でファイルを追加します。

  • ModelSim®を使用している場合は、コンパイル スクリプトが .do ファイル (ModelSimマクロ ファイル) としてリストされます。Xcelium™またはVivado®を使用している場合は、コンパイル スクリプトがシステム スクリプトとしてリストされます。

  1. Addをクリックして、1 つ以上のファイル名を選択します。

  2. ファイルを削除するには、まずFile Listでファイル名を強調表示し、次にRemove Selected Fileをクリックします。

  3. [Next]をクリックします。

HDL コンパイル - MATLABシステム オブジェクト

HDL Compilationペインでは、生成された HDL コンパイル コマンドを確認できます。必要に応じて、これらのコマンドをオーバーライドしたりカスタマイズしたりできます。HDL ファイルの代わりにコンパイル スクリプトを含めた場合、このペインにはそれらのスクリプトを実行するコマンドが表示されます。

  1. コマンドへの変更を「Compilation Commands」ボックスに入力します。

    メモ

    システム シェル コマンドは含めないでください。例えば:

    set file = a.vhd vcom $file

    コマンドの実行から制御がコシミュレーション ウィザードに戻ると、変数には設定された値が保持されなくなります。このタイプのコマンドを含めようとすると、 Statusパネルにエラーが表示されます。

  2. Restore default commands」をクリックして、生成された HDL コンパイル コマンドに戻ります。変更を破棄するかどうかを確認するメッセージが表示されます。

  3. [Next]をクリックして続行します。

シミュレーション オプション- MATLABシステム オブジェクト

Cosimulation Wizard open on Simulation Options Pane, configured for Modelsim simulator.

Modelsim または Xcelium ユーザー:  Simulation Optionsペインで、コシミュレーションで使用する HDL モジュールの名前を指定します。

  1. Name of HDL module to cosimulate withにモジュールの名前を入力します。

  2. Simulation optionsで追加のシミュレーション オプションを指定します。たとえば、前の画像では、次のオプションが表示されています。

    • HDLシミュレーターの解像度

    • シミュレーション ビューから信号を削除する最適化をオフにします。

    [Restore Defaults]をクリックして、オプションをデフォルトに戻します。

  3. ファイアウォール ポリシーで TCP/IP ソケット通信が許可されていない場合は、 Connection methodShared Memoryを選択します。

  4. Next」をクリックして次のステップに進みます。

    XceliumまたはModelSimの場合、アプリケーションはコマンド ウィンドウで次のアクションを実行します。

    • HDLシミュレータを起動します。

    • HDL モジュールを HDL シミュレータにロードします。

    • HDL サーバーを起動し、サーバーが起動したという通知の受信を待ちます。

    • HDL サーバーに接続してポート情報を取得します。

    • HDL サーバーを切断してシャットダウンします。

    Cosimulation Wizard open on Simulation Options Pane, configured for Vivado simulator.

    Vivado シミュレータ ユーザー:  Vivadoコシミュレーション用のシステム オブジェクトを作成する場合、ウィザードには HDL 最上位モジュールの名前が表示されます。

    波形ファイルを生成するには、 Debug internal signalswaveに設定します。

    HDL time precisionパラメーターでは、シミュレーション時間の精度も変更できます。

    Nextをクリックして、共有ライブラリ (dll ファイル) を作成します。

入出力ポート- MATLABシステム オブジェクト

  1. Input/Output Portsペインで、各入出力ポートのタイプ (InputClockReset)を指定します。 $$、またはUnused)。

    • コシミュレーション ウィザードはポート タイプを決定しようとしますが、設定は上書きできます。サポートされているコシミュレーション データ型については、 サポートされているデータ型を参照してください。

    • MATLAB® は、 Tcl コマンドを通じて HDL シミュレータにクロック信号とリセット信号を強制します。後のステップでクロックとリセット信号のタイミングを指定できます ( クロック/リセットの詳細 - MATLABシステム オブジェクトを参照)。

  2. [Next]をクリックします。

出力ポートの詳細 - MATLABシステム オブジェクト

  1. Output Port Detailsペインで、すべての出力ポートのサンプル時間とデータ型を設定します。

    • サンプル時間のデフォルトは1、データ型のデフォルトはInheritおよびSignedです。これらのデフォルトは、 HDL Cosimulationブロック マスク (Portsタブ) が出力ポートのデフォルト設定を設定する方法 (Simulink®ワークフロー) と一致しています。

    • Set all sample times and data types to 'Inherit'を選択すると、ポートは逆伝播によって時間を継承します (サンプル時間は -1 に設定されます)。ただし、状況によってはバックプロパゲーションが失敗する場合があります。 サンプル時間の逆伝播 (Simulink)を参照してください。

  2. [Next]をクリックします。

クロック/リセットの詳細 - MATLABシステム オブジェクト

  1. Clock/Reset Details paneで、クロックを設定し、パラメーターをリセットします。

    • ここで指定する期間は、HDL シミュレーター内の時間を指します。

    • クロックのデフォルト設定は、立ち上がりアクティブ エッジと 10 ns の周期です。

    • リセットのデフォルト設定は、初期値 0、持続時間 15 ns です。

    次の画面では、シミュレーションの開始時間が視覚的に表示され、クロックとリセットがどのように並んでいるかを確認できます。

  2. [Next]をクリックします。

開始時間の調整 - MATLABシステム オブジェクト

  1. Start Time Alignmentペインで、クロックとリセットの現在の設定を確認します。このダイアログの目的は 2 つあります。

    • 立ち上がりエッジまたは立ち下がりエッジが (前のステップで) 予想どおりに設定されていることを確認するには

      • 開始時間を調べてください。クロックのアクティブエッジと一致する場合は、HDL シミュレータの開始時間を調整する必要があります。

      • リセット信号を調べます。クロックのアクティブ エッジと同期している場合は、競合状態が発生する可能性があります。

        競合状態を回避するには、開始時間がどのクロックのアクティブ エッジとも一致しないことを確認してください。これを行うには、開始時間を移動するか、前のステップでクロックのアクティブ エッジを変更します。

    • 開始時刻が希望通りであることを確認するため。

    HDL シミュレーターの開始時間は、前のペインのクロック値とリセット値から計算されます。必要に応じて、 HDL time to start cosimulation (ns)に新しい値を入力することで、HDL シミュレーターの開始時間を変更できます。「Update plot」をクリックして、適用された変更を確認します。

  2. [Next]をクリックします。

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

  1. ウィザードがSystem object™を生成する前に、HDL シミュレーターのサンプリング期間を変更できます。HDL Simulator sampling period (ns)というラベルのボックスに新しい値を入力します。

    サンプリング期間によって、 MATLABのステップへの各呼び出しを区切る HDL シミュレーターの経過時間が決まります。ほとんどの場合、サンプリング周期はクロック周期と同じです。

  2. 入力と出力が (サンプル ベースではなく) フレーム ベースである場合は、 Frame based processingを選択します。

  3. [Finish]をクリックします。

Finishをクリックすると、ウィザードは現在のディレクトリに次の HDL ファイルを生成します。

  • compile_hdl_design_design_name.m — HDL デザインを再コンパイルするためのスクリプト

  • launch_hdl_simulator_design_name.m — MATLAB System objectサーバーを再起動し、HDL シミュレーターを開始するためのスクリプト

  • hdlcosim_design_name.mHDLCosimulation System objectを作成するスクリプト

System Object テストベンチの書き込み

新しく生成された HDL コシミュレーションSystem objectで使用するテストベンチを作成します。作成するテストベンチは、次に示す例のようになります。

この例で使用されるファイルについては、 MATLAB System Object の協調シミュレーション ウィザードを参照してください。

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

  1. ウィザードによって作成された起動スクリプト (launch_hdl_simulator_design_name.m) を実行して、HDL シミュレーターを起動します。

  2. HDL シミュレータの準備ができたら、 MATLABに戻り、テスト ベンチを実行してシミュレーションを開始します。

  3. 結果を確認します。

参考

関連するトピック