Main Content

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

hdldaemon

HDL シミュレーターとの対話をサポートする制御MATLABサーバー

説明

hdldaemon は、共有メモリのプロセス間通信を使用して HDL リンクMATLAB®サーバーを開始します。いつでも、hdldaemonMATLABセッションごとに 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

通信モード、既存の接続数、およびipc_id MATLAB ) の接続情報を確認します。

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

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

'int64'

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

'sec'

MATLABサーバーが、 MATLAB関数コールバックの時刻値を、 のTG double値として送信および返すことを指定します。は、現在の HDL シミュレーション解像度に基づいて秒単位でスケールします。

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

例: 'time','int64'

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

'true'

診断メッセージの出力を抑制します。

'false'

診断メッセージの出力を抑制しないでください。

まだエラーが表示されます。このオプションを使用すると、 MATLAB hdldaemon サーバーのシャットダウン メッセージが表示されなくなります。サーバーがすでに実行中の場合、 quietパラメーターのみを指定して hdldaemonを発行すると、現在のサーバーがシャットダウンされ、共有メモリを使用してサーバーが再起動されます。

例: 'quiet', 'true'

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

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

例: 'ソケット'、4449

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

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

メモ

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

注意

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

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

出力引数

すべて折りたたむ

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

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

バージョン履歴

R2008a で導入