このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
hdldaemon
HDLシミュレータとのインタラクションをサポートする制御MATLABサーバー
説明
hdldaemon
は、共有メモリのプロセス間通信を使用して HDL Link MATLAB® サーバーを起動します。一度に実行できるのは、MATLAB セッションごとに 1 つの hdldaemon
のみです。
hdldaemon(
は、1 つ以上の Name,Value
)Name,Value
のペアの引数によって指定された追加オプションを使用します。
メモリ タイプを指定しない場合、サーバーは共有メモリを使用して開始します。
socket
Name, Value
引数を指定すると、サーバーはソケット メモリの使用を開始します。
メモ
サーバーがすでに実行されている場合、これらの引数を指定して hdldaemon
を発行すると、現在のサーバーがシャットダウンされ、共有メモリを使用して新しいサーバー セッションが開始されます (ソケットが指定されていない場合)。
例
共有メモリでMATLABサーバーを起動
共有メモリ通信を使用して MATLAB サーバーを起動し、時間の整数表現を使用します。
hdldaemon('time','int64')
HDLDaemon shared memory server is running with 0 connections
ソケット通信でMATLABサーバーを起動する
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コマンドを発行する
単純または複雑な 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 コマンドをコンテキスト内で使用する完全な例を参照してください。
入力引数
Option
— MATLAB サーバーをシャットダウンするか、サーバーの状態を表示するサーバー オプション
'kill'
| 'stop'
| 'status'
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 ビットの整数として返され、出力メッセージが抑制されることを指定します。
time
— MATLAB サーバーに時間値を送信および返す方法に関する指示
'sec'
(既定値) | 'int64'
MATLAB サーバーに時間値を送信および返す方法に関する指示。'time'
と次のいずれかの値で構成されるコンマ区切りのペアとして指定されます。
'int64' | MATLAB サーバーが、MATLAB 関数コールバック内の時間値を、シミュレーション ステップの数を表す 64 ビット整数として送受信することを指定します。 |
'sec' | MATLAB サーバーが、MATLAB 関数コールバック内の時間値を、HDL Verifier™ が現在の HDL シミュレーション解像度に基づいて秒にスケーリングする |
サーバーがすでに実行されている場合、time
パラメータのみを指定して hdldaemon
を発行すると、現在のサーバーがシャットダウンされ、共有メモリを使用してサーバーが再起動されます。
例: 'time','int64'
quiet
— 診断メッセージの印刷を抑制するインジケータ
'false'
(既定値) | 'true'
診断メッセージの印刷を抑制するためのインジケーター。'quiet'
と次のいずれかの値で構成されるコンマ区切りのペアとして指定します。
'true' | 診断メッセージの印刷を抑制します。 |
'false' | 診断メッセージの印刷を抑制しません。 |
エラーはまだ表示されます。hdldaemon
を使用して未使用のソケット番号を取得するときに、MATLAB サーバーのシャットダウン メッセージを抑制したい場合は、このオプションを使用します。サーバーがすでに実行されている場合、quiet
パラメータのみを指定して hdldaemon
を発行すると、現在のサーバーがシャットダウンされ、共有メモリを使用してサーバーが再起動されます。
例: 'quiet', 'true'
socket
— 通信に使用されるTCP/IPポート
0
| ポート番号 | 文字ベクトルエイリアス
通信に使用される TCP/IP ポート。'socket'
と値で構成されるコンマ区切りのペアとして指定されます。値は、ホストが有効な TCP/IP ポートを自動的に選択することを示す 0
、明示的なポート番号 (1024 < ポート < 49151)、または /etc/services
ファイルからのサービス (エイリアス) 名のいずれかになります。
オペレーティング システム オプション (0
) を指定する場合は、hdldaemon('status')
を使用して割り当てられたソケット ポート番号を取得します。
例: 'ソケット',4449
tclcmd
— Tclコマンドは接続されたすべてのクライアントに送信されます
文字ベクトル | string スカラー
有効な Tcl コマンド文字ベクトルまたは文字列スカラーとして指定され、接続されているすべてのクライアントに送信される Tcl コマンド。
指定する Tcl コマンドには、HDL シミュレータ プロジェクトをロードしたり、シミュレータの状態を変更したりするコマンドを含めることはできません。たとえば、文字ベクトルには、start
、stop
、restart
(ModelSim® の場合)、または run
、stop
、reset
(Xcelium™ の場合) などのコマンドを含めることはできません。
メモ
このコマンドは、ソフトウェアがサーバー接続を確立した後にのみ発行できます。
注意
matlabtb
または matlabcp
関数内から hdldaemon('tclcmd', 'Tcl command')
を呼び出さないでください。そうすると競合状態が発生し、シミュレータがハングします。
例: 'tclcmd','puts' '"done"'
出力引数
s
— 接続に関する情報を含む構造体
'comm'
| 'connections'
| 'ipc_id'
接続に関する情報を含む構造体。構造体には次の変数が含まれます。
'comm' | 'shared memory' または 'sockets' |
'connections' | 開いている接続の数 |
'ipc_id' | 共有メモリの場合、共有メモリ通信チャネルのファイル システム名。ソケットの場合は、TCP/IP ポート番号。 |
バージョン履歴
R2008a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)