hdldaemon

Управляйте сервером MATLAB, который поддерживает взаимодействия с симулятором HDL

Описание

hdldaemon запускает сервер HDL Link MATLAB® с помощью межпроцессного взаимодействия общей памяти. Только один hdldaemon на сеанс работы с MATLAB может запускаться в любой момент времени.

пример

hdldaemon(Name,Value) дополнительные опции использования заданы одним или несколькими Name,Value парные аргументы.

  • Если вы не задаете тип памяти, сервер начинает использовать общую память.

  • Если вы задаете socket Name, Value аргумент, сервер начинает использовать память сокета.

Примечание

Если сервер уже запускается, выпуская hdldaemon с этими аргументами закрывает текущий сервер и затем запускает новый сеанс сервера с помощью общей памяти (если сокет не задан).

пример

hdldaemon(Option) принимает один дополнительный вход. Только одна опция может быть задана в одном вызове. Необходимо установить связь сервера прежде, чем вызвать 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

С одной или несколькими связями:

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.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'time','int64','quiet','true' указывает, что временные стоимости возвращены как 64-битные целые числа, и выходные сигналы подавлены.

Инструкция к серверу MATLAB о том, как это должно отправить и возвратить временные стоимости, заданные как разделенная запятой пара, состоящая из 'time' и одно из этих значений:

'int64'

Указывает, что сервер MATLAB отправляет и возвращает временные стоимости в коллбэках функции MATLAB как 64-битные целые числа, представляющие количество шагов симуляции.
Смотрите matlabcp/matlabtb tnow ссылка параметра (Синтаксис функции MATLAB и Определения Аргумента функции).

'sec'

Указывает, что сервер MATLAB отправляет и возвращает временные стоимости в коллбэках функции MATLAB как double значения, которые HDL Verifier™ масштабирует к секундам на основе текущего разрешения симуляции HDL.

Если сервер уже запускается, выпуская hdldaemon с time один только параметр закроет текущий сервер и запустит сервер снова с помощью общей памяти.

Пример: 'time','int64'

Индикатор, чтобы подавить сообщения диагностики печати, заданные как разделенная запятой пара, состоящая из 'quiet' и одно из следующих значений:

'true'

Подавите сообщения диагностики печати.

'false'

Не подавляйте сообщения диагностики печати.

Ошибки все еще появляются. Используйте эту опцию, чтобы подавить сообщение завершения работы сервера MATLAB при использовании hdldaemon получить неиспользованный номер сокета. Если сервер уже запускается, выпуская hdldaemon с quiet один только параметр закроет текущий сервер и запустит сервер снова с помощью общей памяти.

Пример: 'quiet', 'true'

Порт TCP/IP используется в коммуникации, заданной как разделенная запятой пара, состоящая из 'socket' и значение. Значением может быть любой 0, указывая, что хост автоматически выбирает допустимый порт TCP/IP, явный номер порта (1024 <порт <49151) или сервис (псевдоним) имя от /etc/services файл.

Если вы задаете опцию операционной системы (0), используйте hdldaemon('status') получать присвоенный номер порта сокета.

Пример: 'снабдите сокетом', 4449

Команда Tcl передается всем связанным клиентам, заданным как любой допустимый вектор управляющего символа Tcl или скаляр строки.

Команда Tcl, которую вы задаете, не может включать команды, которые загружают проект симулятора HDL или изменяют состояние средства моделирования. Например, вектор символов не может включать команды, такие как startостановка, или restart (для ModelSim®) или runостановка, или reset (для Incisive®).

Примечание

Можно дать эту команду только после того, как программное обеспечение установит связь сервера.

Внимание

Не вызывайте hdldaemon('tclcmd', 'Tcl command') из matlabtb или matlabcp функция. Выполнение так результатов в состоянии состязания и средства моделирования зависает.

Пример: 'tclcmd','puts' '"done"'

Выходные аргументы

свернуть все

Структура, содержащая информацию о связи. Структура содержит следующие переменные:

'comm'Любой 'shared memory' или 'sockets'
'connections'Количество открытых связей
'ipc_id'Если общая память, имя файловой системы для канала связи общей памяти. Если сокет, номер порта TCP/IP.

Введенный в R2008a