メインコンテンツ

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

クロスネットワークコシミュレーション

R2024a

クロスネットワークコシミュレーションを実行する理由

セットアップが MATLAB® および Simulink® ソフトウェアを実行する 1 台のマシンと HDL シミュレーターを実行する別のマシンで構成されている場合、クロスネットワーク コシミュレーションを実行できます。通常、Windows® プラットフォーム マシンは MATLAB および Simulink ソフトウェアを実行し、Linux® マシンは HDL シミュレーターを実行します。ただし、これらの手順は、HDL Verifier™ と HDL シミュレータがサポートするプラットフォームの任意の組み合わせに適用されます。

Vivado® 協調シミュレーションは共有 DLL を持つ単一プロセスとして実行されるため、クロスネットワーク協調シミュレーションはサポートされません。

クロスネットワークコシミュレーションの準備

HDL シミュレータとネットワーク経由で MATLAB または Simulink をコシミュレーションする前に、次の手順を実行します。

  1. 設計ファイルとテストファイルを作成します。

    • HDL デザインを作成してコンパイルし、MATLAB 関数 (MATLAB 協調シミュレーション用) または Simulink モデル (Simulink 協調シミュレーション用) を作成します。

    • Simulink とコシミュレーションを行う場合は、デザインが最適化されないようにコンパイル時に -voptargs=+acc フラグを使用し、vsim コマンドを発行するときに同じフラグを含めます (Simulink を使用したクロスネットワークコシミュレーションの実行 を参照)。このフラグを使用すると、Simulink モデルを実行して結果を表示するために必要な、デザインからの未使用の信号がいくつか保持されます。

    HDL 設計を作成、コンパイル、詳細化し、MATLAB 関数 (MATLAB 協調シミュレーション用) または Simulink モデル (Simulink 協調シミュレーション用) を作成します。

  2. HDL シミュレータがインストールされているマシンに MATLAB と HDL Verifier をインストールします。

    メモ

    R2022b より前のリリースでは、Linux ライブラリを Windows インストールからコピーすることができ、その逆も可能です。

    R2022b 以降、MATLAB はプラットフォーム固有のライブラリのみを出荷するため、HDL シミュレータがインストールされているマシンに MATLAB もインストールする必要があります。

  3. HDL シミュレータがインストールされているマシンで、HDL Verifier ライブラリを既知の場所にコピーします。

    ライブラリはデフォルトでインストールされたフォルダーにあります:

    matlabroot/toolbox/edalink/extensions/adaptor/platform/productlibraryname_
    compiler_tag.ext

    ここで、次の表に示す変数には、示された値が設定されます。

    変数値
    matlabrootMATLAB ソフトウェアをインストールした場所。デフォルト値は MATLAB/version です。バージョンはインストールされているリリース (たとえば、R2009a) です。
    adaptorincisive または modelsim
    platformHDL シミュレーターを搭載したマシンのオペレーティング システム (例: linux32)。(詳細については、コシミュレーションライブラリを参照してください。)
    productlibrarynameMATLAB および Simulink のライブラリ ファイルの名前 (たとえば、ModelSim® ユーザーの場合は liblfmhdlc、liblfmhdls、Xcelium™ ユーザーの場合は liblfihdlc、liblfihdls)。コシミュレーションライブラリを参照してください。
    compiler_tagライブラリの作成に使用されたコンパイラ (たとえば、gcc32 または spro)。詳細については、コシミュレーションライブラリを参照してください。
    extdll (ダイナミック リンク ライブラリ - Windows のみ) または so (共有ライブラリ拡張)

    出荷されているすべての HDL Verifier HDL 共有ライブラリのリストについては、デフォルトライブラリ を参照してください。

    ライブラリをコピーした場所をメモしてください。この情報は、実際に HDL シミュレータへの接続を確立するときに必要になります。この例では、サンプル コードでは宛先フォルダーを HDLSERVER_LIB_LOCATION として参照します。

MATLAB と共シミュレーションしたい場合は、MATLAB を使用したクロスネットワークコシミュレーションの実行 を参照してください。Simulink と共シミュレーションする場合は、Simulink を使用したクロスネットワークコシミュレーションの実行 を参照してください。

MATLAB を使用したクロスネットワークコシミュレーションの実行

ネットワーク経由で HDL シミュレータと MATLAB のコシミュレーション セッションを実行するには、次の手順に従います。

  1. MATLAB では、hdldaemon を使用して使用可能なソケットを取得します。

    hdldaemon('socket',0)

    または、(利用可能であることがわかっている) 1 つを割り当てます。

    hdldaemon('socket',4449)
  2. HDL シミュレータがインストールされているマシンで、次のコマンドを使用してシェルから HDL シミュレータを起動します。

    vsim -foreign "matlabclient /HDLSERVER_LIB_LOCATION/library_name;" design_name

    次の表に示す引数には、示された値が設定されます。

    引数値
    library_nameHDL シミュレーターを使用してマシンにコピーしたライブラリの名前 (クロスネットワークコシミュレーションの準備 内)。
    design_nameロードしたいVHDL®またはVerilog®デザイン
  3. HDL シミュレーターで、テストベンチまたはコンポーネント (matlabcp または matlabtb) をスケジュールします。手順 1 のソケット ポート番号と、hdldaemon が実行されているホスト マシンの名前を指定します。

  1. MATLAB では、hdldaemon を使用して使用可能なソケットを取得します。

    hdldaemon('socket',0)

    または、次のいずれかを割り当てます。

    hdldaemon('socket',4449)
  2. 次の内容の MATLAB 構成ファイル (HDL シミュレータで使用される関数をロードするためのもの) を作成します。

    //Command file for MATLAB HDL Verifier.
    //Loading of foreign Library and HDL simulator functions.
    
    
    -loadcfc /HDLSERVER_LIB_LOCATION/library_name:matlabclient
    //TCL wrappers for MATLAB commands
    -input @proc" "nomatlabtb" "{args}" "{call" "nomatlabtb" "\$args}
    -input @proc" "matlabtb" "{args}" "{call" "matlabtb" "\$args}
    -input @proc" "matlabcp" "{args}" "{call" "matlabcp" "\$args}
    -input @proc" "matlabtbeval" "{args}" "{call" "matlabtbeval" "\$args}
    

    ここで、library_name は クロスネットワークコシミュレーションの準備 にコピーしたライブラリの名前です。この設定ファイルには任意の名前を付けることができます。

  3. HDL シミュレータがインストールされているマシンで、次のコマンドを使用してシェルから HDL シミュレータを起動します。

    xmsim -gui -f matlab_config_file design_name

    次の表に示す引数には、示された値が設定されます。

    引数値
    matlab_config.fileMATLAB 構成ファイルの名前 (手順 3 から)
    design_nameロードしたいVHDLまたはVerilogデザイン
  4. HDL シミュレーターで、テストベンチまたはコンポーネント (matlabcp または matlabtb) をスケジュールします。手順 1 のソケット ポート番号と、hdldaemon が実行されているホストの名前を指定します。

Simulink を使用したクロスネットワークコシミュレーションの実行

ネットワーク経由で HDL シミュレータと Simulink のコシミュレーション セッションを実行する場合は、次の手順に従います。

  1. 次のコマンドを使用して、シェルから HDL シミュレーターを起動します。

    vsim -foreign "simlinkserver /HDLSERVER_LIB_LOCATION/library_name;
        -socket socket_num" -voptargs=+acc design_name

    次の表に示す引数には、示された値が設定されます。

    引数値
    library_nameHDL シミュレーターを使用してマシンにコピーしたライブラリの名前 (クロスネットワークコシミュレーションの準備 内)。
    socket_numこの接続に選択したソケット番号
    design_nameロードしたいVHDLまたはVerilogデザイン
  2. MATLAB と Simulink がインストールされているマシンで、Simulink を起動してモデルを開きます。

  3. HDL Cosimulation ブロックをダブルクリックして、[関数ブロック パラメータ] ダイアログ ボックスを開きます。

  4. Connections タブをクリックします。

    1. 「HDL シミュレーターはこのコンピューター上で実行されています。」をクリアします。HDL Verifier は接続方法をソケットに変更します。

    2. Host name というラベルの付いたテキスト ボックスに、HDL シミュレータが配置されているマシンのホスト名を入力します。

    3. Port number or service というラベルの付いたテキスト ボックスに、手順 1 のソケット番号を入力します。

    4. OK をクリックしてブロック ダイアログ ボックスを終了し、変更を保存します。

  1. 次のコマンドを使用して、シェルから HDL シミュレーターを起動します。

    xmsim -gui -loadvpi "/HDLSERVER_LIB_LOCATION/library_name:simlinkserver"
        +socket=socket_num design_name

    次の表に示す引数には、示された値が設定されます。

    引数値
    library_nameHDL シミュレーターを使用してマシンにコピーしたライブラリの名前 (クロスネットワークコシミュレーションの準備 内)。
    socket_numこの接続に選択したソケット番号
    design_nameロードしたいVHDLまたはVerilogデザイン
  2. MATLAB と Simulink がインストールされているマシンで、Simulink を起動してモデルを開きます。

  3. HDL Cosimulation ブロックをダブルクリックして、[関数ブロック パラメータ] ダイアログ ボックスを開きます。

  4. Connections タブをクリックします。

    1. The HDL simulator is running on this computer というチェックボックスをオフにします。HDL Verifier は接続方法をソケットに変更します。

    2. Host name ボックスに、HDL シミュレータが配置されているマシンのホスト名を入力します。

    3. Port number or service ボックスに、手順 1 のソケット番号を入力します。

    4. OK をクリックしてブロック ダイアログ ボックスを終了し、変更を保存します。

次に、シミュレーションを実行し、ブロックを追加するか、その他の必要な変更を加えます。Simulink と HDL シミュレーターをコシミュレーションに使用する手順については、テストベンチとしてのSimulink または Simulink によるコンポーネントシミュレーション を参照してください。