Main Content

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

hdldaemon

HDLシミュレータとのインタラクションをサポートする制御MATLABサーバー

説明

hdldaemon は、共有メモリのプロセス間通信を使用して HDL Link MATLAB® サーバーを起動します。一度に実行できるのは、MATLAB セッションごとに 1 つの hdldaemon のみです。

hdldaemon(Name,Value) は、1 つ以上の Name,Value のペアの引数によって指定された追加オプションを使用します。

  • メモリ タイプを指定しない場合、サーバーは共有メモリを使用して開始します。

  • socket Name, Value 引数を指定すると、サーバーはソケット メモリの使用を開始します。

メモ

サーバーがすでに実行されている場合、これらの引数を指定して hdldaemon を発行すると、現在のサーバーがシャットダウンされ、共有メモリを使用して新しいサーバー セッションが開始されます (ソケットが指定されていない場合)。

hdldaemon(Option) は単一のオプション入力を受け入れます。1 回の呼び出しで指定できるオプションは 1 つだけです。これらのオプションのいずれかを使用して hdldaemon を呼び出す前に、サーバー接続を確立する必要があります。

s=hdldaemon(___) は、前の構文のいずれかの入力引数を使用して、構造体 s のサーバー ステータス接続を返します。

すべて折りたたむ

共有メモリ通信を使用して MATLAB サーバーを起動し、時間の整数表現を使用します。

hdldaemon('time','int64')
HDLDaemon shared memory server is running with 0 connections

MATLAB サーバーを起動し、ポート 4449 でソケット通信を指定します。

hdldaemon('socket',4449)
HDLDaemon socket server is running on port 4449 with 0 connections

1 つ以上の接続がある場合:

hdldaemon('status')
HDLDaemon socket server is running on port 4449 with 1 connections

接続なしの場合:

hdldaemon('status')
HDLDaemon shared memory server is running with 0 connections

サーバーが起動されていません:

hdldaemon('status')
HDLDaemon is NOT running

通信モード、既存の接続数、および MATLAB サーバーがリンクに使用しているプロセス間通信識別子 (ipc_id) の接続情報を確認します。

ソケット接続に対して返されたメッセージ:

x=hdldaemon('status')
x = 
           comm: 'sockets'
    connections: 0
         ipc_id: '4449'

共有メモリ接続の返されたメッセージ:

x=hdldaemon('status')
x = 
           comm: 'shared memory'
    connections: 0
         ipc_id:  '\\.\pipe\E505F434-F023-42a6-B06D-DEFD08434C67'

ipc_id を調べるには、MATLAB コマンド プロンプトで次のように入力します。

x.ipc_id
 '\\.\pipe\E505F434-F023-42a6-B06D-DEFD08434C67'

MATLAB をシャットダウンせずにサーバーをシャットダウンします。

hdldaemon('kill')
HDLDaemon server was shutdown

単純または複雑な Tcl コマンドを発行します。

簡単な例:

hdldaemon('tclcmd','puts "This is a test"')

複雑な例:

tclcmd = {['cd ',unixprojdir],...
           'vlib work',... % create library (if applicable)
          ['vcom -performdefaultbinding ' unixsrcfile1],...
          ['vcom -performdefaultbinding ' unixsrcfile2],...
          ['vcom -performdefaultbinding ' unixsrcfile3],...
           'vsimmatlab work.osc_top ',...
           'matlabcp u_osc_filter -mfunc oscfilter',...
           'add wave sim:/osc_top/clk',...
           'add wave sim:/osc_top/clk_enable',...
           'add wave sim:/osc_top/reset',...
          ['add wave -height 100 -radix decimal -format analog-step -scale 0.001 -offset 50000 ',...
           'sim:/osc_top/osc_out'],...
          ['add wave -height 100 -radix decimal -format analog-step -scale 0.00003125 -offset 50000 ',...
           'sim:/osc_top/filter1x_out'],...
          ['add wave -height 100 -radix decimal -format analog-step -scale 0.00003125 -offset 50000 ',...
           'sim:/osc_top/filter4x_out'],...
          ['add wave -height 100 -radix decimal -format analog-step -scale 0.00003125 -offset 50000 ',...
           'sim:/osc_top/filter8x_out'],...
           'force sim:/osc_top/clk_enable 1 0',...
           'force sim:/osc_top/reset 1 0, 0 120 ns',...
           'force sim:/osc_top/clk 1 0 ns, 0 40 ns -r 80ns',...
          };

この例はMATLAB のオシレーターのフィルターコンポーネントを実装するから引用したものです。この複雑な Tcl コマンドをコンテキスト内で使用する完全な例を参照してください。

入力引数

すべて折りたたむ

MATLAB サーバーをシャットダウンするか、サーバー ステータスを表示するサーバー オプション。次のいずれかの文字ベクトルとして指定します。

'kill'MATLAB をシャットダウンせずに MATLAB サーバーをシャットダウンします。
'stop'MATLAB をシャットダウンせずに MATLAB サーバーをシャットダウンします。'kill''stop' の使用に違いはありません。
'status'MATLAB サーバーのステータスを表示します。また、s=hdldaemon('status') を使用することもできます。これは、MATLAB サーバーのステータスを表示し、構造体 s でステータスを返します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'time','int64','quiet','true' は、時間値が 64 ビットの整数として返され、出力メッセージが抑制されることを指定します。

MATLAB サーバーに時間値を送信および返す方法に関する指示。'time' と次のいずれかの値で構成されるコンマ区切りのペアとして指定されます。

'int64'

MATLAB サーバーが、MATLAB 関数コールバック内の時間値を、シミュレーション ステップの数を表す 64 ビット整数として送受信することを指定します。
matlabcp/matlabtb tnow パラメータリファレンス (MATLAB 関数の構文と関数の引数の定義) を参照してください。

'sec'

MATLAB サーバーが、MATLAB 関数コールバック内の時間値を、HDL Verifier™ が現在の HDL シミュレーション解像度に基づいて秒にスケーリングする double 値として送信および返すことを指定します。

サーバーがすでに実行されている場合、time パラメータのみを指定して hdldaemon を発行すると、現在のサーバーがシャットダウンされ、共有メモリを使用してサーバーが再起動されます。

例: 'time','int64'

診断メッセージの印刷を抑制するためのインジケーター。'quiet' と次のいずれかの値で構成されるコンマ区切りのペアとして指定します。

'true'

診断メッセージの印刷を抑制します。

'false'

診断メッセージの印刷を抑制しません。

エラーはまだ表示されます。hdldaemon を使用して未使用のソケット番号を取得するときに、MATLAB サーバーのシャットダウン メッセージを抑制したい場合は、このオプションを使用します。サーバーがすでに実行されている場合、quiet パラメータのみを指定して hdldaemon を発行すると、現在のサーバーがシャットダウンされ、共有メモリを使用してサーバーが再起動されます。

例: 'quiet', 'true'

通信に使用される TCP/IP ポート。'socket' と値で構成されるコンマ区切りのペアとして指定されます。値は、ホストが有効な TCP/IP ポートを自動的に選択することを示す 0、明示的なポート番号 (1024 < ポート < 49151)、または /etc/services ファイルからのサービス (エイリアス) 名のいずれかになります。

オペレーティング システム オプション (0) を指定する場合は、hdldaemon('status') を使用して割り当てられたソケット ポート番号を取得します。

例: 'ソケット',4449

有効な Tcl コマンド文字ベクトルまたは文字列スカラーとして指定され、接続されているすべてのクライアントに送信される Tcl コマンド。

指定する Tcl コマンドには、HDL シミュレータ プロジェクトをロードしたり、シミュレータの状態を変更したりするコマンドを含めることはできません。たとえば、文字ベクトルには、startstoprestart (ModelSim® の場合)、または runstopreset (Xcelium™ の場合) などのコマンドを含めることはできません。

メモ

このコマンドは、ソフトウェアがサーバー接続を確立した後にのみ発行できます。

注意

matlabtb または matlabcp 関数内から hdldaemon('tclcmd', 'Tcl command') を呼び出さないでください。そうすると競合状態が発生し、シミュレータがハングします。

例: 'tclcmd','puts' '"done"'

出力引数

すべて折りたたむ

接続に関する情報を含む構造体。構造体には次の変数が含まれます。

'comm''shared memory' または 'sockets'
'connections'開いている接続の数
'ipc_id'共有メモリの場合、共有メモリ通信チャネルのファイル システム名。ソケットの場合は、TCP/IP ポート番号。

バージョン履歴

R2008a で導入