Main Content

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

matlabcp

MATLABコンポーネント関数をインスタンス化された HDL デザインに関連付ける

説明

メモ

このコマンドは、 MATLAB®ではなく、HDL シミュレーターに入力します。

matlabcp instance は次のアクションを実行します。

  • HDL Verifier™ソフトウェアの HDL シミュレータ クライアント コンポーネントを開始します。

  • HDL シミュレーターで作成された HDL デザインの指定されたインスタンスをMATLAB関数に関連付けます。

  • 指定されたMATLAB関数の呼び出しをスケジュールするプロセスを作成します。

  • 同じインスタンスを指定した前のmatlabcpコマンドによってスケジュールされた保留中のイベントをすべてキャンセルします。たとえば、コマンドmatlabcp (たとえばfoo )を発行すると、 matlabcp は、 matlabcpによって開始された以前にスケジュールされたイベントをすべてキャンセルします。 fooの$$ 。

    HDL シミュレーターでこのコマンドを発行します。

    MATLABコンポーネント関数は、HDL モデル内のモジュールの動作をシミュレートします。HDL モデルのスタブ モジュール (ポート定義のみを提供) は、その入力信号をMATLABコンポーネント関数に渡します。MATLABコンポーネントはこのデータを処理し、結果をスタブ モジュールの出力に返します。MATLABコンポーネントは通常、HDL コードにまだ実装されていないいくつかの機能 (フィルターなど) を提供します。MATLABコンポーネント関数の詳細については、 「 MATLABコンポーネント関数を作成する 」を参照してください。

    メモ

    matlabcpに指定する通信モードは、サーバー接続を確立したときにhdldaemonに指定した通信モードと一致する必要があります。

    ソケット通信の場合、HDL シミュレーターでhdldaemonコマンドでリンク要求を発行するときに、 matlabcpに選択したポート番号を指定します。

matlabcp instance time-specs は、指定されたMATLAB関数をスケジュールするための時間指定を追加します。

matlabcp instance ___ pair1 ... pairN は、有効な仕様名とその値で構成されるペアとして 1 つ以上の追加仕様を指定します。たとえば、 -mfunc vlogmatlabc は、MATLAB関数vlogmatlabc が指定された HDL モジュールに関連付けられることを指定します。これらのペアは、 time-specsの有無にかかわらず指定できます。

すべて折りたたむ

Verilog®モジュールvlogtestbench_top.u_matlab_componentをMATLAB関数 vlogmatlabcに関連付けます。 -mfuncオプション。-socketオプションは、ポート 4449 でソケット通信を使用するように指定します。

hdlsim>matlabcp vlogtestbench_top.u_matlab_component -mfunc vlogmatlabc -socket 4449

Verilogモジュールvlogtestbench_topをMATLAB関数vlogtestbench_topに関連付け、 で明示的な時間を指定します。 $-cancelオプション。

hdlsim>matlabcp vlogtestbench_top 1e6 fs  3 2e3 ps -repeat 3 ns -cancel 7ns

立ち上がりエッジと立ち下がりエッジを指定して、Verilogモジュールvlogtestbench_topをMATLAB関数vlogtestbench_topに関連付けます。

hldsim> matlabcp vlogtestbench_top  1 2 3 4 5 6 7 -rising outclk3 
          -falling u_matlab_component/inoutclk

入力引数

すべて折りたたむ

MATLAB関数に関連付けられた HDL モジュールのインスタンス。HDL モジュール インスタンスを示す文字ベクトルまたは文字列スカラーとして指定します。デフォルトでは、 matlabcpコマンドは、インスタンスを、インスタンスと同じ名前を持つMATLAB関数に関連付けます。たとえば、インスタンスがmyfirfilterの場合、 matlabcp はインスタンスをMATLAB関数myfirfilterに関連付けます。このコマンドは階層名を無視します。たとえば、インスタンスがtop.myfirfilterの場合、 matlabcpコマンドはmyfirfilterのみをMATLABに関連付けます。関数。指定したインスタンスをインスタンス名とは異なるMATLAB関数に関連付けるには、 -mfunc引数と同様にpair1 ... pairN指定を使用します。

メモ

すでにMATLAB関数に関連付けられている HDL モジュールのインスタンスを指定した場合 ( matlabcpまたはmatlabtb経由)、新しい関連付け既存のものを上書きします。

データ型: char | string

1 つ以上の時間指定のスペース区切りのリスト。この表にリストされている 1 つ以上の時間指定のスペース区切りのリストとして指定します。

時間指定説明
time_1 time_2 ... time_n

HDL シミュレーターが指定されたMATLAB関数を呼び出す 1 つ以上の離散時間を指定します。指定された時間は、現在のシミュレーション時間を基準としています。時間を指定しない場合、HDL シミュレーターはシミュレーションの開始時にMATLAB関数を 1 回呼び出します。各time_iは、時間値を示す数値と、次のオプションの時間単位で構成されます。

  • fs (フェムト秒)

  • ps (ピコ秒)

  • ns (ナノ秒)

  • 私たち (マイクロ秒)

  • ms (ミリ秒)

  • 秒 (秒)

時間単位を指定しない場合、コマンドは時間値を HDL シミュレーション ティックの値として扱います。各 time_i をスペースで区切ります。

たとえば、次のコードは、 MATLAB関数 vlogmodel_top を時刻 0 (最初の実行) で実行し、その後 10 ナノ秒、10 ミリ秒、および 10 秒で実行するように指定します。

matlabcp vlogmodel_top 10 ns, 10 ms, 10 sec
-repeat <time>HDL シミュレーターが指定された回数に基づいてMATLAB関数を繰り返し呼び出すように指定します。時間値は、HDL シミュレーターが最初にMATLAB tnowの値を基準としています。
-cancel <time>

指定したMATLAB関数の実行を停止する時刻を 1 回指定します。時間値は、HDL シミュレーターが最初にMATLAB tnowの値を基準としています。キャンセル時間を指定しない場合、アプリケーションはシミュレーションを終了するか、セッションを終了するか、または MATLAB 呼び出しを発行するまで、nomatlabtb関数を呼び出します。

メモ

-cancelオプションは、<time-specs> 引数でのみ機能します。matlabcpの他のスケジュール引数には影響しません。

メモ

時間指定は、matlabcpインスタンスの後、追加のコマンド引数の前に配置します。それ以外の場合、時間指定は無視されます。

追加の仕様。1 つ以上の仕様ペアのスペース区切りのリストとして指定します。仕様のペアは、名前と値で構成されます。この表は、これらのペアの有効な名前と値のオプションを示しています。

仕様のペア

名前説明
-sockethdldaemonコマンドで発行された通信モードと一致する通信モード

HDL シミュレーターとHDL Verifier間の通信に TCP/IP ソケットを使用するには、 MATLABを指定します。共有メモリはデフォルトの通信モードであり、 -socket <tcp_spec>を指定しない場合に有効になります。matlabcpコマンドで指定する通信モードは、hdldaemonコマンドで指定した通信モードと一致する必要があります。

TCP/IP ソケット ポートの選択の詳細については、 「 TCP/IPソケットポート 」を参照してください。

-rising1 つ以上の信号名のカンマ区切りのリスト

ロジック タイプとして定義された 1 つ以上の信号のパス名を使用して-risingを指定します (STD_LOGICBITX01など)。このペアは、アプリケーションが立ち上がりエッジ ( MATLABからへの遷移) で指定された'0'関数を呼び出すことを示します。 $'1') の指定された信号のいずれか。

  • VHDL®では、0 または L から 1 または H への遷移が立ち上がりエッジを決定します。

  • Verilogでは、0 から x、z、または 1 への遷移、または x または z から 1 への遷移が立ち上がりエッジを決定します。

メモ

-risingペアでシグナルを指定する場合は、フルパス名形式でシグナルを指定します。フル パス名を指定しない場合、コマンドは HDL シミュレーター ルールを適用して信号仕様を解決します。

-falling1 つ以上の信号名のカンマ区切りのリスト

ロジック タイプとして定義された 1 つ以上の信号のパス名を指定します (STD_LOGICBITX01など)。指定された信号のいずれかが立ち下がりエッジ( MATLAB'1''0'。)。

以下の信号遷移を決定する場合:

  • VHDLでは、1 または H から 0 または L への遷移が立ち下がりエッジを決定します。

  • Verilogでは、1 から x、z、または 0 への遷移、または x または z から 0 への遷移が立ち下がりエッジを決定します。

メモ

-fallingペアでシグナルを指定する場合は、フルパス名形式でシグナルを指定します。フル パス名を指定しない場合、コマンドは HDL シミュレーター ルールを適用して信号仕様を解決します。

-sensitivity1 つ以上の信号名のカンマ区切りのリスト

1 つ以上の信号のパス名を指定します。このペアは、指定された信号のいずれかが状態を変更するたびに、アプリケーションが指定されたMATLAB関数を呼び出すことを示します。任意のタイプの信号を感度リストに表示でき、HDL モデル階層の任意のレベルに配置できます。

メモ

-sensitivityペアでシグナルを指定する場合は、フルパス名形式でシグナルを指定します。フル パス名を指定しない場合、コマンドは HDL シミュレーター ルールを適用して信号仕様を解決します。

-mfuncMATLAB 関数名

MATLABに指定する HDL モジュール インスタンスに関連付けられたinstance関数の名前を指定します。デフォルトでは、 HDL Verifierソフトウェアは、指定された HDL インスタンスと同じ名前を持つMATLAB関数を呼び出します。名前が同じ場合は、 -mfuncペアを省略できます。名前が同じでない場合は、 matlabcpを呼び出すときにこの引数を使用します。この引数を省略し、 matlabcpで同じ名前のMATLAB関数が見つからない場合、コマンドはエラー メッセージを生成します。

-use_instance_obj-use_instance_obj フィールドの表に記載されているフィールドを含む構造体

このペアは、引数-mfuncで指定された関数に、HDL Verifierによって関数に渡された HDL インスタンス オブジェクトを使用するように指示します。この値には、該当する表に示されているフィールドがあります。例については、HDL インスタンス オブジェクトを使用した関数の作成を参照してください。

-argumentHDL インスタンスの引数

HDL 側のmatlabcpコマンドからMATLAB関数コールバックにユーザー定義の引数を渡します。このペアは-use_instance_objでのみサポートされます。詳細については、テーブル-use_instance_obj フィールドのフィールドを参照してください。

-use_instance_obj フィールド

フィールド読み取りまたは書き込みアクセス説明
tnext書き込み専用

設定した時間内にコールバックをスケジュールします。このフィールドは、古いtnextと同等です。たとえば、このコードはtnowから 5 ナノ秒後にコールバックをスケジュールします。

hdl_instance_obj.tnext = hdl_instance_obj.tnow + 5e-9
userdata読み取りまたは書き込み現在のmatlabcpインスタンスの状態変数を保存します。次回このインスタンスのコールバックがスケジュールされるときに変数を取得できます。
simstatus読み取り専用

HDL シミュレータのステータスを保存します。HDL Verifierソフトウェアは、この特定のインスタンスの最初のコールバック中にこのフィールドをInitに設定し、それ以降はRunningに設定します。 simstatus は読み取り専用フィールドです。

>> hdl_instance_obj.simstatus

ans=
      Init
instance読み取り専用

コールバックに関連付けられたVerilogまたはVHDLインスタンスのフル パスを格納します。 instance は読み取り専用フィールドです。このフィールドの値は、関数呼び出しで指定されたモジュール インスタンスの値と等しくなります。以下に例を示します。

HDL シミュレータでは次のようになります。

hdlsim> matlabcp osc_top -mfunc oscfilter use_instance_obj

MATLAB で、以下を実行します。

>> hdl_instance_obj.instance

ans=
		osc_top
argument読み取り専用

-argumentペアによって設定される引数を格納します。以下に例を示します。

matlabtb osc_top -mfunc oscfilter -use_instance_obj -argument foo
リンク ソフトウェアは、-argumentペアで使用される場合にのみ、 -use_instance_obj オプションをサポートします。それ以外の場合、コマンドは引数を無視します。 argument は読み取り専用のプロパティです。

>> hdl_instance_obj.argument

ans= 
    	foo
portinfo読み取り専用

このインスタンスに関連付けられているVHDLおよびVerilogポートに関する情報を保管します。 portinfoは読み取り専用プロパティであり、関連する HDL モジュールに対して定義されたポートを記述するフィールド構造を持っています。portinfo構造体は、ポートごとに、ポートのタイプ、方向、サイズなどの情報を渡します。ポート データの詳細については、 「ポート情報へのアクセスと適用」を参照してください。

hdl_instance_obj.portinfo.field1.field2.field3

メモ

use_instance_objを使用する場合、HDL インスタンス オブジェクトを通じてtscaleにアクセスします。use_instance_objを使用しない場合でも、 tscaleからportinfoまでアクセスできます。

tscale読み取り専用

HDL シミュレーターの解像度制限 (ティック) を秒単位で保存します。 tscale は読み取り専用のプロパティです。

>> hdl_instance_obj.tscale

ans=
	1.0000e-009

メモ

use_instance_objを使用する場合、HDL インスタンス オブジェクトを通じてtscaleにアクセスします。use_instance_objを使用しない場合でも、 tscaleからportinfoまでアクセスできます。

tnow読み取り専用

現在時刻を保存します。 tnow は読み取り専用のプロパティです。

hdl_instance_obj.tnext = hld_instance_obj.tnow + fastestrate;
portvalues読み取りまたは書き込み

matlabcpインスタンスの出力ポートと入力ポートの現在の値を保存し、新しい値を設定します。以下に例を示します。

>> hdl_instance_obj.portvalues

ans =
Read Only Input ports:
	clk_enable: []
	clk: []
	reset: []
Read/Write Output ports:
	sine_out: [22x1 char]
linkmode読み取り専用

コールバックのステータスを保存します。 HDL Verifier は、コールバックが'testbench' matlabtbコマンドに関連付けられている場合は'component' に設定します。コールバックはmatlabcpコマンドに関連付けられています。 linkmode は読み取り専用のプロパティです。

>> hdl_instance_obj.linkmode

ans=
	component

バージョン履歴

R2008a で導入