メインコンテンツ

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

HDLコシミュレーションのセットアップ

HDL コードを MATLAB® または Simulink® デザインと協調シミュレーションするには、まず次の手順を実行する必要があります。

  • HDL シミュレータを MATLAB または Simulink に接続する方法を決定します。コシミュレーション セットアップには、1 つまたは複数の HDL モジュールを含めることができます。モジュールは、matlabcp および matlabtb 関数、または MATLAB の場合は hdlcosimulation システム オブジェクトで表され、Simulink の場合は HDL Cosimulation ブロックで表されます。コシミュレーション構成を参照してください。

  • MATLAB またはシェルから HDL シミュレーターを起動します。HDL シミュレータが MATLAB ホストとは別のマシンで実行される場合など、クロスネットワーク シミュレーションにはシェルを使用する必要があります。MATLAB からシミュレーターを起動すると、正確なパスではなく名前でライブラリを指定できます。HDLシミュレータの起動を参照してください。

  • デフォルト以外のライブラリまたはカスタマイズされたライブラリの場所が必要な場合は、HDL シミュレータを起動するときにライブラリを指定します。MATLAB から HDL シミュレータを起動する場合は、ライブラリの名前を使用します。シェルから HDL シミュレーターを起動する場合は、ライブラリ パスを使用します。コシミュレーションライブラリを参照してください。

  • 必要に応じて、構成および診断スクリプトを使用してライブラリの場所を構成し、TCP/IP 接続をテストします。このスクリプトは Linux® マシンでのみサポートされます。Windows® マシンの場合は、構成ファイルを作成できます。HDLシミュレータの起動を参照してください。

コシミュレーション構成

HDL シミュレータを MATLAB または Simulink のデザインに接続する方法はいくつかあります。HDL シミュレーターは、MATLAB と同じホスト マシンでも別のホスト マシンでも実行できます。各 HDL シミュレーターは、MATLAB 内の 1 つ以上の関数、または Simulink モデル内の 1 つ以上の HDL Cosimulation ブロックに接続できます。ネットワーク構成では、アプリケーション サーバーを識別するために、インターネット アドレスと TCP/IP ソケット ポートを使用します。

メモ

  • Vivado® コシミュレーションは、HDL シミュレータに接続された Simulink 内の 1 つの HDL Cosimulation ブロックまたは MATLAB 内の 1 つの VivadoHDLCosimulation システム オブジェクトを介してサポートされます。

  • MATLAB のインスタンスは、一度に MATLAB サーバー (hdldaemon) のインスタンスを 1 つだけ実行できます。

  • 各 HDL シミュレーターは、MATLAB サーバーの一意のインスタンスと通信する必要があります。

  • 共有メモリ通信は、単一のコンピューティング システム上で 1 つの通信リンクのみを必要とする構成のオプションです。

  • 1 つ以上のコンピューティング システムで複数の通信リンクを使用する構成では、TCP/IP ソケット通信が必要です。固有の TCP/IP ソケット ポートが通信リンクを区別します。

MATLAB を使用した HDL コシミュレーションの有効な構成

MATLAB サーバーの単一インスタンスを介して MATLAB 関数に接続された HDL シミュレータ セッション。 One hdlcosim function in a MATLAB session, connected to one HDL session.
MATLAB サーバーの単一インスタンスを介して複数の MATLAB 関数に接続された HDL シミュレータ セッション。 Multiple hdlcosim functions in one MATLAB session, connected to one HDL session.
MATLAB サーバーの複数のインスタンスを介して MATLAB 関数に接続された HDL シミュレータ セッション。各インスタンスは、固有の MATLAB セッションの範囲内で実行されます。この構成は、コシミュレーション ウィザードではサポートされていません。 Multiple hdlcosim functions, each one in a MATLAB session, all connected to one HDL session.
複数の HDL シミュレータ セッション。それぞれが、MATLAB サーバーの複数のインスタンスを介して MATLAB 関数に接続されます。各インスタンスは、一意の MATLAB セッションの範囲内で実行されます。 Multiple hdlcosim functions, each one in a MATLAB session, and each MATLAB session is connected to an HDL session.

単一の HDL シミュレータ セッションに接続された MATLAB セッション内の hdlcosim System object™。

メモ

この構成は、Vivado コシミュレーションでサポートされています。

hdlcosim System object in a MATLAB session, connected to an HDL Simulator session.

同じ HDL シミュレータ セッションに接続された MATLAB セッション内の複数の hdlcosim システム オブジェクト。この構成は、コシミュレーション ウィザードではサポートされていません。複数の HDL モジュールを上位レベルのモジュールに結合して、単一の HDL Cosimulation System object に含めることができます。

Multiple hdlcosim System objects in a MATLAB session, connected to one HDL simulation session.

MATLAB セッション内の複数の hdlcosim System object が異なる HDL シミュレータ セッションに接続されています。MATLAB セッション内の hdlcosim System object は、同じまたは異なる HDL シミュレータ セッションに接続できます。各 hdlcosim System object は 1 つの HDL シミュレータとのみ通信できます。

Multiple hdlcosim System objects in a MATLAB session, connected to multiple HDL simulation sessions.

Simulink とのコシミュレーションに有効な構成

単一の HDL シミュレータ セッションに接続された Simulink モデル内の HDL Cosimulation ブロック。

メモ

この構成は、Vivado コシミュレーションでサポートされています。

同じ HDL シミュレータ セッションに接続された Simulink モデル内の複数の HDL Cosimulation ブロック。この構成は、コシミュレーション ウィザードではサポートされていません。複数の HDL モジュールを上位レベルのモジュールに結合して、単一の HDL Cosimulation ブロックに含めることができます。
Simulink モデル内の複数の HDL Cosimulation ブロックは、異なる HDL シミュレータ セッションに接続されています。Simulink モデル内の HDL Cosimulation ブロックは、同じまたは異なる HDL シミュレータ セッションに接続できます。各 HDL Cosimulation ブロックは 1 つの HDL シミュレータとのみ通信できます。

HDLシミュレータの起動

HDL シミュレーターは、MATLAB またはシェルから起動できます。HDL シミュレータが MATLAB ホストとは別のマシンで実行される場合など、クロスネットワーク シミュレーションにはシェルを使用する必要があります。MATLAB からシミュレーターを起動すると、正確なパスではなく名前でライブラリを指定できます。

Vivado コシミュレーションは共有 DLL を使用して 1 つのプロセスとして実行されるため、Vivado ユーザーは MATLAB または Simulink とは別に HDL シミュレータを起動する必要はありません。

Vivado とのコシミュレーションの設定

Vivado シミュレータを使用する場合は、まず Cosimulation Wizard または HDL Workflow Advisor を使用して HDL Cosimulation ブロックまたは hdlverifier.VivadoHDLCosimulation System object を作成する必要があります。

HDL DUT がすでにある場合は、Cosimulation Wizard を使用してコシミュレーション アーティファクトを生成します。HDL Workflow Advisor を使用して、コシミュレーション アーティファクトに加えて HDL DUT (HDL Coder™ が必要) を生成します。

Windows で Vivado をセットアップするには、次の変数を設定する必要があります。Cosimulation Wizard を使用している場合は、次の変数が正しく設定されていることを確認します。

  1. %PATH% は Vivado 実行可能ファイル (vivadoxelabxvlogxvhdl など) を指している必要があります。

  2. %PATH% は Vivado ライブラリ (%XILINX_VIVADO%\lib\win64.o) を指している必要があります。

Linux で Vivado をセットアップするには、MATLAB を起動する前にこれらの変数を設定する必要があります。

  1. $PATH は Vivado 実行可能ファイルを指している必要があります (Cosimulation Wizard により、適切に設定されていることが保証されます)。

  2. $LD_LIBRARY_PATH は Vivado ライブラリ ($XILINX_VIVADO/lib/lnx64.o) を指している必要があります。これは、MATLAB を開始する に実行する必要があります。

Linux に $LD_LIBRARY_PATH を設定するには、csh シェル プロンプトで次の操作を実行します。

csh> setenv LD_LIBRARY_PATH /tools/Vivado/2020.2-mw-0/Lin/Vivado/2020.2/lib/lnx64.o:$LD_LIBRARY_PATH
csh> matlab

その他のシェル タイプの場合は、次のように入力します。

sh> export LD_LIBRARY_PATH=/tools/Vivado/2020.2-mw-0/Lin/Vivado/2020.2/lib/lnx64.o:$LD_LIBRARY_PATH
sh> matlab

または、/etc/ld.so.conf.d/xilvivado.conf ファイルを作成し、ldconfig を使用して呼び出します (root 権限が必要です)。ファイルの内容:

# to automatically find Xilinx Vivado libraries from MATLAB applications such as HDL Cosimulation using HDL Verifier.
# (despite the name, this is a folder that holds linux *libraries*)
# reload updates to this file via: sudo ldconfig
/tools/Vivado/2020.2-mw-0/Lin/Vivado/2020.2/lib/lnx64.o

次に、次のコマンドを実行して呼び出します。

sh> sudo ldconfig

MATLABからHDLシミュレータを起動します

サポートされている各 HDL シミュレータには、MATLAB からそれを開く固有のコマンドがあります。

メモ

Cosimulation Wizard を使用する場合は、HDL シミュレーターを個別に起動する必要はありません。

HDL シミュレーターシミュレーターを開くコマンド

Cadence® Xcelium™

nclaunchMATLABからCadence Xceliumを起動
Mentor Graphics® ModelSim®vsimMATLAB から Mentor Graphics ModelSim を起動します

どちらの関数でも、HDL Verifier ライブラリ、ロードするデザイン、通信接続情報のタイプ、およびその他の必要なパラメータを名前と値のペアの引数として指定できます。特別な設定は必要ありません。コシミュレーションライブラリを参照してください。

この関数は、HDL Verifier™ ソフトウェアで使用するために HDL シミュレータを起動して構成します。デフォルトでは、関数は、path 変数で定義されているシステム パスで見つかったシミュレータ実行可能ファイルの最初のバージョンを起動します。この関数は、HDL シミュレータが起動するたびに上書きされる一時ファイルを使用します。

関数を呼び出すときに名前と値のペアを指定することにより、MATLAB または Simulink と HDL シミュレータ間で使用される起動ファイルと通信モードをカスタマイズできます。プロパティの詳細については、nclaunch または vsim を参照してください。

システム パスで最初に見つかったものとは異なるバージョンのシミュレータ実行可能ファイルを起動するには、setenv および getenv MATLAB 関数を使用して、UNIX()DOS()、または system() によって生成されたサブシェルの環境を設定および取得します。

HDL シミュレーターを開く関数の 1 つを呼び出すときに通信モードを指定すると、指定されたモードは MATLAB または Simulink のいずれかに接続されているすべての HDL シミュレーター セッションに適用されます。

HDL Verifier が HDL シミュレータを MATLAB にリンクする方法の詳細については、MATLAB と HDL シミュレータとのリンク を参照してください。

MATLAB から HDL シミュレーターを起動する方法を示す完全なコシミュレーションの例については、MATLAB Test ベンチで HDL モジュールを検証する を参照してください。

MATLABからCadence Xceliumを起動.  MATLAB から Cadence Xcelium シミュレーターを起動するには、MATLAB コマンド プロンプトで次のように入力します。

nclaunch('PropertyName', 'PropertyValue', ...)

この例では、フォルダーの場所を VHDLproj に変更し、次に Xcelium を開きます。コマンドラインでは 'hdlsimdir' プロパティと 'startupfile' プロパティが省略されているため、nclaunch は一時ファイルを作成します。'tclstart' プロパティは、テストベンチ インスタンス modsimrand の HDL シミュレーターをロードして初期化する Tcl コマンドを指定します。

cd VHDLproj
nclaunch('tclstart',...
 'hdlsimmatlab modsimrand; matlabtb modsimrand 10 ns -socket 4449')

この例では、フォルダーの場所を VHDLproj に変更し、次に Xcelium を開きます。関数呼び出しでは 'hdlsimdir' プロパティと 'startupfile' プロパティが省略されるため、nclaunch は一時ファイルを作成します。'tclstart' プロパティは、nclaunch と Simulink 間のコシミュレーションのためにライブラリ work の VHDL® エンティティ parse をロードする Tcl コマンドを指定します。'socketsimulink' プロパティは、ポート 4449 を使用して、同じコンピューター上の TCP/IP ソケット通信を指定します。

cd VHDLproj
nclaunch('tclstart', 'hdlsimulink work.parse', 'socketsimulink', '4449')

MATLAB から Mentor Graphics ModelSim を起動します.  MATLAB から Mentor Graphics ModelSim HDL シミュレーターを起動するには、MATLAB コマンド プロンプトで次のように入力します。

vsim('PropertyName','PropertyValue', ...)

この例では、フォルダーの場所を VHDLproj に変更し、次に ModelSim を開きます。vsim 呼び出しでは 'vsimdir' プロパティと 'startupfile' プロパティが省略されるため、関数は一時 DO ファイルを作成します。'tclstart' プロパティは、テストベンチ インスタンス modsimrand の HDL シミュレーターをロードして初期化する Tcl コマンドを指定します。

cd VHDLproj
vsim('tclstart','vsimmatlab modsimrand; matlabtb modsimrand 10 ns -socket 4449')

この例では、フォルダーの場所を VHDLproj に変更し、次に ModelSim を開きます。vsim 呼び出しでは 'vsimdir' および 'startupfile' プロパティが省略されるため、vsim は一時 DO ファイルを作成します。'tclstart' プロパティは、vsim と Simulink 間のコシミュレーションのためにライブラリ work の VHDL エンティティ parse をロードする Tcl コマンドを指定します。'socketsimulink' プロパティは、ソケット ポート 4449 を使用して、同じコンピューター上の TCP/IP ソケット通信を指定します。

cd VHDLproj
vsim('tclstart','vsimulink work.parse','socketsimulink','4449')

この例には、ModelSim ソフトウェアの起動時に HDL コンパイルとシミュレーションを実行する Tcl コマンドが含まれています。

vsim('tclstart',{'vlib work','vlog +acc clocked_inverter.v hdl_top.v','vsim +acc hdl_top'});

この例では、Simulink コシミュレーション用の hdl_top モジュールをロードします。vsimulink コマンドは、Simulink モデルの HDL Cosimulation ブロックとの通信にソケット番号 5678 を指定し、HDL 時間精度を 10 ps に指定します。この方法でソケットを指定することは、vsim 関数の socketsimulink プロパティを使用するのと同じです。

vsim('tclstart', …
             {'vlib work', 'vlog -voptargs=+acc clocked_inverter.v hdl_top.v', …
              'vsimulink hdl_top -socket 5678 -t 10ps'});

シェルからHDLシミュレータを起動する

シェルから HDL シミュレータを起動する場合は、まず HDL シミュレータ用の Tcl セットアップ ファイルを作成する必要があります。セットアップ ファイルには、MATLAB および Simulink の指定されたコシミュレーション ライブラリの場所が含まれています。その後、HDL シミュレータを起動するときにこのファイルを含めることができます。

コシミュレーション ライブラリの詳細については、コシミュレーションライブラリ を参照してください。

Tcl セットアップ ファイルを作成したら、それを編集してコンパイル コマンドと実行コマンドを追加できます。

シェルからCadence Xceliumを起動する.  MATLAB プロンプトで nclaunch 関数を使用してセットアップ ファイルを生成します。

nclaunch('starthdlsim','no','startupfile','cosim_procdefs.tcl','tclstart',{''})

これにより、cosim_procdefs.tcl という名前の Tcl セットアップ ファイルが作成されます。このファイルには、MATLAB または Simulink とのコシミュレーションを有効にする関数の定義が含まれます。

ここで、Xcelium を起動するときに、この生成されたセットアップ ファイルをロードします。シェルプロンプトで次のように入力します。

xmsim design_name -64bit -input setupfile

ここで、design_name はトップレベル デザインの名前、setupfile は Tcl セットアップ ファイルの名前です (この例では cosim_procdefs.tcl、デフォルトでは compile_and_launch.tcl)。Tcl セットアップ ファイルを使用する例については、MATLAB Test ベンチを使用したフィルタ コンポーネントのテストのためのコシミュレーション を参照してください。

シミュレータが起動したら、hdlsimmatlab 関数を使用して HDL モジュールをロードし、matlabtb または matlabcp 関数を使用して MATLAB 関数に接続します。たとえば、Xcelium をコンパイルして起動するには、シェルで次のコマンドを入力します (Tcl スクリプトの名前が cosim_procdefs.tcl であると仮定します)。

xmvlog -64bit cosim_lowpass_filter.v
xmelab -64bit -access +wc cosim_lowpass_filter
xmsim cosim_lowpass_filter -64bit -input cosim_procdefs.tcl

次に、Xcelium に次のように入力します。

matlabtb cosim_lowpass_filter 10ns -repeat 10ns -mfunc cosim_lowpass_filtertb
force cosim_lowpass_filter.clk_enable 1 -after 0ns
force cosim_lowpass_filter.reset 1 -after 0ns 0 -after 22ns
force cosim_lowpass_filter.clk 1 -after 0ns 0 -after 5ns -repeat 10ns
deposit cosim_lowpass_filter.filter_in 0
run 10000ns

シェルからMentor Graphics ModelSimを起動する.  MATLAB プロンプトで vsim 関数を使用してセットアップ ファイルを生成します。

vsim('startms','no','startupfile','cosim_procdefs.tcl')

これにより、cosim_procdefs.tcl という名前の Tcl セットアップ ファイルが作成されます。このファイルには、MATLAB または Simulink とのコシミュレーションを有効にする関数の定義が含まれます。

ここで、シェルからHDLシミュレータを起動する を実行するときに、この生成された構成ファイルを使用します。

ここで、ModelSim を起動するときに、この生成されたセットアップ ファイルをロードします。シェルプロンプトで次のように入力します。

vsim design_name -do setupfile

setupfile は Tcl セットアップ ファイルの名前です (この例では cosim_procdefs.tcl、デフォルトでは compile_and_launch.tcl)。design_name 引数を含めると、vsim 呼び出しでもシミュレーションが開始されます。

設定ファイルは、-foreign オプションを vsim に定義します。このオプションは、HDL Verifier 共有ライブラリをロードし、そのエントリ ポイントを指定します。使用している他の既存の構成ファイルを指定することもできます。

生成された構成ファイルを使用しない場合は、次のようなコマンドで vsim を実行して、クライアント共有ライブラリをロードし、そのエントリ ポイントを指定できます。

vsim design_name -foreign matlabclient /path/library

ここで、path は HDL Verifier コシミュレーション ライブラリへのパスです。ご使用のマシンに該当するライブラリ名を見つけるには、コシミュレーションライブラリ を参照してください。Tcl 構成ファイルを使用する例については、MATLAB Test ベンチを使用したフィルタ コンポーネントのテストのためのコシミュレーション を参照してください。

メモ

このコマンドは HDL シミュレータ内から呼び出すこともできます。

シミュレータが起動したら、vsimmatlab 関数を使用して HDL モジュールをロードし、matlabtb または matlabcp 関数を使用して MATLAB 関数に接続します。たとえば、ModelSim をコンパイルして起動するには、シェルで次のコマンドを入力します (Tcl スクリプトの名前が cosim_procdefs.tcl であると仮定します)。

vlib work
vlog cosim_lowpass_filter.v
vsim -c -do cosim_procdefs.tcl
次に、ModelSim に次のように入力します。
vsimmatlab work.cosim_lowpass_filter
matlabtb cosim_lowpass_filter 10ns -repeat 10ns -mfunc cosim_lowpass_filtertb.m
force clk_enable 1 0
force reset 1 0, 0 25
force clk 1 0, 0 5 -repeat 10
run 10000ns

コシミュレーションライブラリ

同じ実行ファイルにリンクされているすべてのライブラリには、同じコンパイラを使用することをお勧めします。HDL シミュレータがサポートするコンパイラのライブラリの HDL Verifier バージョン。同じライブラリを使用すると、SystemC ライブラリなど、HDL シミュレータにリンクする可能性のある他の C++ ライブラリとのコシミュレーション ソフトウェアの互換性が維持されます。

これらの条件のいずれかが当てはまる場合は、そのコードに使用されるコンパイラと一致する HDL Verifier ライブラリのバージョンを選択します。

  • 他のサードパーティ アプリケーションを HDL シミュレータにリンクします。

  • 設計またはテストベンチの一部として SystemC コードをコンパイルおよびリンクします。

  • カスタム C/C++ アプリケーションを HDL シミュレータにリンクします。

HDL シミュレータに他のコードをリンクしない場合は、提供されているライブラリの任意のバージョンを使用できます。HDL シミュレータ (nclaunch または vsim) を開く関数は、このライブラリのデフォルト バージョンを選択します。

ネットワーク全体でコシミュレーションを行う際に HDL Verifier ライブラリを指定する例については、クロスネットワークコシミュレーション を参照してください。

ライブラリ命名形式

HDL Verifier コシミュレーション ライブラリでは、次の命名形式が使用されます。

edalink/extensions/{version}/{arch}/lib{version_short_name}{client_server_tag}_{compiler_tag).{libext}
 
引数Xcelium の値ModelSim/Questa®
versionincisivemodelsim
archlinux64linux64windows32 または windows64
version_short_name lfihdllfmhdl
client_server_tagMATLAB: c
Simulink: s
MATLAB: c
Simulink: s
compiler_taggcc48, gcc63, tmwgcc

Linux: gcc474gcc530gcc740tmwgcc
Windows 32:gcc421vc12
Windows 64: gcc740vc15tmwvs

メモ

gcc740vc15 または gcc421vc12 には、Microsoft® から入手可能な Visual Studio® 2013 再配布版が必要です。

libextsodll または so

MATLAB ビルド コンパイラの詳細については、MATLAB ビルド コンパイラ を参照してください。

デフォルトライブラリ

HDL Verifier スクリプトは、HDL ツール ベンダーによって提供される GCC のバージョンでコンパイルされたライブラリの使用をサポートします。この表には、サポートされている各 HDL シミュレータの HDL Verifier に同梱されているライブラリがリストされています。

デフォルトのライブラリは tmwgcc または tmwvs バージョンです。vsim または nclaunch の代替として、libfile 引数を指定します。

Cadence Xcelium ライブラリ

プラットフォームMATLAB ライブラリSimulink ライブラリ
Linux 64

liblfihdlc_tmwgcc.so (デフォルト)
liblfihdlc_gcc48.so
liblfihdlc_gcc63.so

liblfihdls_tmwgcc.so (デフォルト)
liblfihdls_gcc48.so
liblfihdls_gcc63.so

Mentor Graphics ModelSim および Questa ライブラリ

プラットフォームMATLAB ライブラリSimulink ライブラリ
Linux 64

liblfmhdlc_tmwgcc.so (デフォルト)
liblfmhdlc_gcc474.so
liblfmhdlc_gcc530.so
liblfmhdlc_gcc740.so

liblfmhdls_tmwgcc.so (デフォルト)
liblfmhdls_gcc474.so
liblfmhdls_gcc530.so
liblfmhdls_gcc740.so

Windows 32

liblfmhdlc_gcc421vc12.dll

liblfmhdls_gcc421vc12.dll

Windows 64liblfmhdlc_tmwvs.dll (デフォルト)
liblfmhdlc_gcc740vc15.dll
liblfmhdls_tmwvs.dll (デフォルト)
liblfmhdls_gcc740vc15.dll

代替 HDL シミュレータ ライブラリ

nclaunch または vsim 関数を呼び出すときに libfile の名前と値のペアを指定すると、別の HDL 側ライブラリを使用できます。HDL シミュレータにリンクされている他の C/C++ ライブラリに使用しているコンパイラおよびシステム ライブラリと一致するライブラリのバージョンを選択します。HDL シミュレータのバージョンによっては、LD_LIBRARY_PATH 環境変数に追加のパスを明示的に設定する必要がある場合があります。

たとえば、デフォルト以外のライブラリを使用するには、次のようにします。

  1. MATLAB インストールからシステム ライブラリを HDL シミュレーターがインストールされているマシンにコピーします。システム ライブラリは matlabroot/sys/os にインストールされます。

  2. LD_LIBRARY_PATH 環境変数を変更して、コピーされたシステム ライブラリへのパスを追加します。

nclaunch を使用して代替ライブラリを指定する.  この例では、gcc44 でコンパイルされたカスタム C++ アプリケーションにリンクする HDL シミュレーションのライブラリ設定を示します。したがって、シミュレータはデフォルトのライブラリを使用する代わりに、gcc44 でコンパイルされたコシミュレーション ライブラリを使用する必要があります。MATLAB と Xcelium は両方とも同じ 64 ビット Linux マシン上で実行されています。

PATH 変数を変更して、nclaunch 関数が HDL シミュレータの目的のバージョンを見つけられるようにします。次に、libfile の名前と値のペアを使用してライブラリ名を指定します。MATLAB コマンド プロンプトで、以下のように入力します。

currPath = getenv('PATH');
setenv('PATH',['/tools/IUS-1110/bin:' currPath]);
nclaunch('tclstart',{'exec xmvhdl -64bit inverter.vhd', ...
                     'exec xmelab -64bit -access +rwc inverter', ...
                     'hdlsimulink -gui inverter' }, ...
                     'libfile','liblfihdls_gcc48');

xmsim コンソール内から ldd を使用してライブラリの解像度を確認します。

exec ldd /path/to/matlab/toolbox/edalink/extensions/incisive/linux64/liblfihdls_gcc48.so
        linux-vdso.so.1 =>  (0x00007fff2ffff000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f98361a0000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9835e99000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9835c16000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9835a00000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9835676000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f983661c000)

システム シェルを使用して Xcelium の代替ライブラリを指定する.  この例では、明示的なオプションを使用して Xcelium を起動し、コシミュレーション ライブラリを指定する方法を示します。Xcelium は、MATLAB と同じマシン、別のマシン、または別のオペレーティング システムを搭載したマシン上のシステム シェルから起動できます。

このサンプル コードは、64 ビットの Linux バージョンの Xcelium で実行されます。MATLAB がどのマシンで実行されているかは問題ではありません。この例では、Xcelium ディストリビューションのデフォルトのライブラリを使用する代わりに、GCC 4.4 でコンパイルされたライブラリを使用します。

PATH 変数を変更して、HDL シミュレータの目的のバージョンを指すようにします。xmsim はインストール内の GCC ライブラリを検出しますが、この例では LD_LIBRARY_PATH を変更して、GCC のカスタム インストールの使用方法を示します。csh 互換のシステム シェルで、次のように入力します。

setenv PATH /tools/ius/lnx/tools/bin/64bit:${PATH}
setenv LD_LIBRARY_PATH /tools/ius/lnx/tools/systemc/gcc/4.4-x86_64/install/lib64:${LD_LIBRARY_PATH}
xmvhdl -64bit inverter.vhd
xmelab -64bit -access +rwc inverter
xmsim -tcl -loadvpi /tools/matlab/toolbox/edalink/extensions/incisive/linux64/liblfihdlc_gcc48:matlabclient inverter.vhd

前の例と同様に、ldd を使用してライブラリの解像度を確認できます。

vsim を使用して代替ライブラリを指定する.  この例では、gcc450 でコンパイルされたいくつかの SystemC アプリケーションを使用する HDL シミュレーションのライブラリ設定を示します。このバージョンの GCC と関連するシステム ライブラリは、Mentor Graphics からダウンロードできます。したがって、シミュレータはデフォルトのライブラリを使用する代わりに、gcc450 でコンパイルされたコシミュレーション ライブラリを使用する必要があります。MATLAB と ModelSim は両方とも同じ 64 ビット Linux マシン上で実行されています。

PATH 変数を変更して、vsim 関数が HDL シミュレータの目的のバージョンを見つけられるようにします。HDL シミュレーターはシステム ライブラリへのパスを追加しないため、LD_LIBRARY_PATH を変更します。次に、libfile の名前と値のペアを使用してライブラリ名を指定します。MATLAB コマンド プロンプトで、以下のように入力します。

currPath = getenv('PATH');
currLdPath = getenv('LD_LIBRARY_PATH');
setenv('PATH',['/tools/modelsim-10.1c/bin:' currPath]);
setenv('LD_LIBRARY_PATH',['/tools/modelsim-10.1c/gcc-4.5.0-linux/lib:' currLdPath]);
vsim('tclstart',{'vlib work','vcom inverter.vhd','vsimulink inverter'}, ...
       'libfile','liblfmhdls_gcc450');

vsim GUI 内から ldd を使用してライブラリの解像度を確認します。

exec ldd /path/to/matlab/toolbox/edalink/extensions/modelsim/linux64/liblfmhdls_gcc450.so 
        linux-vdso.so.1 =>  (0x00007fff06652000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f505083d000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5050536000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f50502b3000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f505009d000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f504fd13000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5050cb8000)

システム シェルを使用して代替 ModelSim ライブラリを指定する.  この例では、明示的なオプションを使用して ModelSim を起動し、コシミュレーション ライブラリを指定する方法を示します。ModelSim は、MATLAB と同じマシン、別のマシン、または別のオペレーティング システムを搭載したマシン上のシステム シェルから起動できます。

このサンプル コードは、64 ビットの Linux バージョンの ModelSim で実行されます。MATLAB がどのマシンで実行されているかは問題ではありません。この例では、ModelSim ディストリビューションのデフォルトのライブラリを使用する代わりに、GCC 4.5.0 でコンパイルされたライブラリを使用します。このバージョンの GCC と関連するシステム ライブラリは、Mentor Graphics からダウンロードできます。

PATH 変数を変更して、HDL シミュレータの目的のバージョンを指すようにします。LD_LIBRARY_PATH を変更します。GCC を ModelSim インストールのルートに保存しない限り、HDL シミュレーターはシステム ライブラリへのパスを追加しません。csh 互換のシステム シェルで、次のように入力します。

setenv PATH /tools/questasim/bin:${PATH}
setenv LD_LIBRARY_PATH /tools/mtigcc/gcc-4.5.0-linux_x86_64/lib64:${LD_LIBRARY_PATH}
setenv MTI_VCO_MODE 64
vlib work
vcom +acc+inverter inverter.vhd
vsim +acc+inverter -foreign \
     "matlabclient /tools/matlab/toolbox/edalink/extensions/modelsim/linux64/liblfmhdlc_gcc450.so" \
      work.inverter

前の例と同様に、ldd を使用してライブラリの解像度を確認できます。

参考

関数

ブロック

トピック