メインコンテンツ

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

matlabtb

R2024a

インスタンス化された HDL モジュールの MATLAB テストベンチ セッションをスケジュールする

    説明

    メモ

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

    matlabtb instance は次のアクションを実行します:

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

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

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

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

      このコマンドは HDL シミュレータで発行されます。

      MATLAB テストベンチ関数は、HDL モデル内のエンティティに渡される刺激を模倣します。MATLAB または matlabtb でスケジュールされた HDL からの強制刺激。

      メモ

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

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

    例

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

    例

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

    例

    例

    すべて折りたたむ

    HDL Verifier の HDL シミュレータ クライアント コンポーネントを起動し、エンティティ myfirfilter のインスタンスを MATLAB 関数 myfirfilter に関連付け、TCP/IP ポート 4449 を使用してローカル TCP/IP ソケット ベースのテスト ベンチ セッションを開始します。指定されたテストベンチ刺激に基づいて、myfirfilter.m は現在の時刻から 5 ナノ秒実行し、その後 10 ナノ秒ごとに繰り返し実行します。

    hdlsim> matlabtb myfirfilter 5 ns -repeat 10 ns -socket 4449
    

    HDL Verifier の HDL シミュレータ クライアント コンポーネントを起動します。computer123 という名前のリモート MATLAB ホスト コンピュータと TCP/IP ポート 4449 を使用して、リモート TCP/IP ソケット ベースのセッションを開始します。指定されたテストベンチ刺激に基づいて、myfirfilter.m は、信号 /top/fclk が立ち上がりエッジを経験するたび、および信号 /top/din の状態が変化するたびに、現在の時刻から 10 ナノ秒実行されます。

    hdlsim> matlabtb /top/myfirfilter 10 ns -rising /top/fclk -sensitivity /top/din 
          -socket 4449@computer123

    HDL Verifier ソフトウェアの HDL シミュレータ クライアント コンポーネントを起動します。-mfunc オプションは接続先の MATLAB 関数を指定し、-socket ペアはソケット接続モードのポート番号を指定します。-sensitivity ペアは、テストベンチ セッションが信号 sine_out に敏感であることを示します。

    hdlsim> matlabtb osc_top -sensitivity /osc_top/sine_out
          -socket 4448 -mfunc hosctb

    入力引数

    すべて折りたたむ

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

    メモ

    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(ナノ秒)

    • us (マイクロ秒)

    • ms (ミリ秒)

    • 秒(秒)

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

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

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

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

    メモ

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

    メモ

    時間指定は、matlabtb インスタンスの後、追加のコマンド引数の前に配置します。そうしないと、時間指定は無視されます。

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

    仕様ペア

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

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

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

    メモ

    matlabtb コマンドで指定する通信モードは、MATLAB で hdldaemon コマンドを発行するときに通信モードに指定するモードと一致する必要があります。通信モードの詳細については、HDLコシミュレーションのための通信 を参照してください。通信リンクの MATLAB 側の確立の詳細については、MATLABからHDLシミュレータを起動します を参照してください。

    -rising1 つ以上のシグナル名のコンマ区切りリスト

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

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

    • Verilog® では、0 から x、z、または 1 への遷移、または x または z から 1 への遷移によって立ち上がりエッジが決定されます。

    メモ

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

    -falling1 つ以上のシグナル名のコンマ区切りリスト

    ロジック タイプとして定義された 1 つ以上の信号のパス名を指定します (STD_LOGIC、BIT、X01 など)。指定された信号のいずれかが立ち下がりエッジ ('1' から '0' への遷移) を経験するたびに、アプリケーションが指定された MATLAB 関数を呼び出すことを示します。

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

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

    • Verilog では、1 から x、z、または 0 への遷移、または x または z から 0 への遷移によって立ち下がりエッジが決定されます。

    メモ

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

    -sensitivity1 つ以上のシグナル名のコンマ区切りリスト

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

    メモ

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

    -mfuncMATLAB 関数名

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

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

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

    -argumentHDLインスタンス引数

    HDL 側の matlabtb コマンドから 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読むか書くか現在の matlabtb インスタンスの状態変数を保存します。このインスタンスのコールバックが次にスケジュールされたときに、変数を取得できます。
    simstatus読み取り専用

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

    >> hdl_instance_obj.simstatus
    
    ans=
          Init
    instance読み取り専用

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

    HDL シミュレータの場合:

    hdlsim> matlabtb 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
    リンク ソフトウェアは、-use_instance_obj ペアで使用される場合にのみ、-argument オプションをサポートします。それ以外の場合、コマンドは引数を無視します。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 を使用しない場合でも、portinfo を介して tscale にアクセスできます。

    tscale読み取り専用

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

    >> hdl_instance_obj.tscale
    
    ans=
    	1.0000e-009
    

    メモ

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

    tnow読み取り専用

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

    hdl_instance_obj.tnext = hld_instance_obj.tnow + fastestrate;
    
    portvalues読むか書くか

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

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

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

    >> hdl_instance_obj.linkmode
    
    ans=
    	component

    バージョン履歴

    R2008a で導入