exponenta event banner

matlabtb

Запланировать сеанс испытательного стенда MATLAB для экземпляра модуля HDL

Синтаксис

matlabtb <instance>
[<time-specs>]
[-socket <tcp-spec>]
[-rising <port>[,<port>...]]
[-falling <port> [,<port>,...]] 
[-sensitivity <port>[,<port>,...]]
[-mfunc <name>]
[-use_instance_obj]
[-argument]

Описание

matlabtb имеет следующие характеристики:

  • Запускает клиентский компонент имитатора HDL программного обеспечения HDL Verifier™.

  • Связывает указанный экземпляр конструкции HDL, созданной в имитаторе HDL, с функцией MATLAB ®.

  • Создает процесс, который планирует вызовы указанной функции MATLAB.

  • Отменяет все ожидающие события, запланированные предыдущим matlabtb , которая указывала тот же экземпляр. Например, при выполнении команды matlabtb например, foo, все ранее запланированные события, инициированные matlabtb на foo отменены.

Эта команда выдается в имитаторе ЛПВП.

Функции тестового стенда MATLAB имитируют стимулы, передаваемые объектам в модели HDL. Вы принудительно стимулируете от MATLAB или HDL, запланированного с matlabtb.

Примечания

Режим связи, указанный для matlabtb должен соответствовать режиму связи, указанному для hdldaemon при установлении соединения с сервером.

Для подключения сокетов укажите номер порта, выбранный для hdldaemon при выдаче запроса на ссылку с помощью matlabtb в имитаторе ЛПВП.

Аргументы

<instance>

Указывает экземпляр модуля HDL, который программное обеспечение HDL Verifier связывает с функцией тестового стенда MATLAB. По умолчанию matlabtb связывает экземпляр с функцией MATLAB, имя которой совпадает с именем экземпляра. Например, если экземпляр myfirfilter, matlabtb связывает экземпляр с функцией MATLAB myfirfilter (обратите внимание, что имена иерархий игнорируются; например, если имя экземпляра top.myfirfilter, matlabtb будет связывать только myfirfilter с функцией MATLAB). Кроме того, можно указать другую функцию MATLAB с помощью -mfunc.

Примечание

Не указывайте экземпляр модуля HDL, который уже был связан с функцией MATLAB (через matlabcp или matlabtb). В этом случае новая связь перезаписывает существующую.

<time-specs>

Задает комбинацию временных спецификаций, состоящую из любого или всех следующих элементов:

<timen>,...

Задает одно или несколько дискретных значений времени, при которых имитатор HDL вызывает указанную функцию MATLAB. Каждое значение времени соответствует текущему времени моделирования. Даже если время не указано, имитатор HDL вызывает функцию MATLAB один раз в начале моделирования. Разделите несколько временных значений пробелом.

Например:

matlabtb vlogtestbench_top 10 ns, 10 ms, 10 sec

Функция MATLAB выполняется, когда время равно 0, а затем 10 наносекунд, 10 миллисекунд и 10 секунд от нулевого времени.

Примечание

Для параметров на основе времени можно указать любые стандартные единицы времени (ns, usи так далее). Если единицы измерения не указаны, команда обрабатывает значение времени как значение засечек моделирования HDL.

-repeat <time>

Указывает, что имитатор HDL вызывает функцию MATLAB повторно на основе указанного <timen>,... шаблон. Значения времени относятся к значению tnow в то время как имитатор ЛПВП сначала вызывает функцию MATLAB.

Например:

matlabtb vlogtestbench_top 5 ns -repeat 10 ns

Функция MATLAB выполняется в момент времени, равный 0 нс, 5 нс, 15 нс, 25 нс и так далее.

-cancel <time>

Указывает время прекращения выполнения указанной функции MATLAB. Значение времени относительно значения tnow в то время как имитатор ЛПВП сначала вызывает функцию MATLAB. Если время отмены не указано, приложение вызывает функцию MATLAB до завершения моделирования, выхода из сеанса или выдачи nomatlabtb звоните.

Примечание

-cancel работает только с аргументами < time-specs >. Это не влияет ни на один из других аргументов планирования дляmatlabtb.

Примечание

Размещение временных спецификаций после matlabtb экземпляр и перед любыми дополнительными аргументами команды; в противном случае временные характеристики игнорируются.

Все временные спецификации для matlabtb функции отображаются в виде числа и, при необходимости, единицы времени:

  • fs (фемтосекунды)

  • ps (пикосекунды)

  • ns (наносекунды)

  • us (микросекунды)

  • мс (миллисекунды)

  • сек (секунды)

  • без единиц (галочка)

-socket <tcp_spec>

Определяет связь сокетов TCP/IP для канала между имитатором HDL и MATLAB. При предоставлении информации TCP/IP для matlabtb, вы можете выбрать номер порта TCP/IP или псевдоним порта TCP/IP или имя службы для <tcp_spec> параметр. При настройке связи между компьютерами необходимо также указать имя или адрес Интернета удаленного узла, на котором работает сервер MATLAB (hdldaemon).

Дополнительные сведения о выборе портов сокетов TCP/IP см. в разделе Порты сокетов TCP/IP.

При запуске имитатора HDL и MATLAB на одном компьютере можно использовать общую память для обмена данными. Общая память является режимом связи по умолчанию и вступает в силу, если не указать-socket <tcp_spec> в командной строке.

Примечание

Режим связи, указанный с помощью matlabtb команда должна соответствовать заданному для режима связи при вводе hdldaemon в MATLAB. Дополнительные сведения о режимах связи см. в разделе Коммуникации для косимуляции HDL. Для получения дополнительной информации об установлении конца канала связи MATLAB см. Запуск имитатора HDL из MATLAB.

-rising <signal>[, <signal>...]

Указывает, что приложение вызывает указанную функцию MATLAB на переднем крае (переход от '0' кому '1') любого из указанных сигналов. Определить -rising с именами трактов одного или нескольких сигналов, определенных как логический тип (STD_LOGIC, BIT, X01и так далее).

Для определения перехода сигнала в:

  • VHDL ®: Нарастающее ребро: {0 или L} в {1 или H}.

  • Verilog ®: Rising edge - это переход от 0 к x, z или 1 и от x или z к 1.

Примечание

При указании сигналов с помощью -rising, -falling, и -sensitivity укажите их в формате полного пути. Если полное имя пути не указано, команда применяет правила имитатора HDL для разрешения спецификаций сигнала.

-falling <signal>[, <signal>...]

Указывает, что приложение вызывает указанную функцию MATLAB всякий раз, когда какой-либо из указанных сигналов испытывает противоположный фронт - изменяется с'1' кому '0'. Определить -falling с именами трактов одного или нескольких сигналов, определенных как логический тип (STD_LOGIC, BIT, X01и так далее).

Для определения перехода сигнала в:

  • VHDL: падающий край равен {1 или H} {0 или L}.

  • Verilog: Falling edge - переход от 1 к x, z или 0 и от x или z к 0.

Примечание

При указании сигналов с помощью -rising, -falling, и -sensitivity укажите их в формате полного пути. Если полное имя пути не указано, команда применяет правила имитатора HDL для разрешения спецификаций сигнала.

-sensitivity <signal>[, <signal>...]

Указывает, что приложение вызывает указанную функцию MATLAB всякий раз, когда какой-либо из указанных сигналов изменяет состояние. Определить -sensitivity с именами трактов одного или нескольких сигналов. Сигналы любого типа могут появляться в списке чувствительности и размещаться на любом уровне конструкции ЛПВП.

Если указать опцию без сигналов, интерфейс будет чувствителен к изменениям значений для всех сигналов.

Примечание

Использование этой опции для INOUT порты могут приводить к двойным вызовам.

Например:

-sensitivity /randnumgen/dout 

Функция MATLAB выполняется, если значение dout изменения.

Примечание

При указании сигналов с помощью -rising, -falling, и -sensitivity укажите их в формате полного пути. Если полное имя пути не указано, команда применяет правила имитатора HDL для разрешения спецификаций сигнала.

-mfunc <name>

Имя связанной функции MATLAB. Если опустить этот аргумент, matlabtb связывает экземпляр модуля HDL с функцией MATLAB, имя которой совпадает с именем экземпляра HDL. Если опустить этот аргумент и matlabtb не находит функцию MATLAB с тем же именем, команда генерирует сообщение об ошибке.

-use_instance_obj

Инструктирует функцию, указанную в аргументе -mfunc для использования объекта экземпляра HDL, переданного в функцию средством проверки HDL. Этот аргумент имеет поля, показанные в следующей таблице. Примеры см. в разделе Запись функций с помощью объекта экземпляра HDL.

ОбластьДоступ для чтения/записиОписание
tnextТолько запись

Используется для планирования обратного вызова в течение заданного значения времени. Это поле эквивалентно старому tnext. Например:

hdl_instance_obj.tnext = hdl_instance_obj.tnow + 5e-9

запланирует обратный вызов в момент времени, равный 5 наносекундам от tnow.

userdataЧтение/записьСохраняет переменные состояния текущего matlabcp экземпляр. Переменные можно извлечь при следующем планировании обратного вызова этого экземпляра.
simstatusТолько для чтения

Сохраняет состояние имитатора ЛПВП. Программное обеспечение HDL Verifier устанавливает для этого поля значение 'Init' во время первого обратного вызова для этого конкретного экземпляра и 'Running' после этого. simstatus является свойством, доступным только для чтения.

>> hdl_instance_obj.simstatus

ans=
      Init
instanceТолько для чтения

Сохраняет полный путь экземпляра Verilog/VHDL, связанного с обратным вызовом. экземпляр является свойством, доступным только для чтения. Значение этого поля равно значению экземпляра модуля, указанного при вызове функции. Например:

В имитаторе ЛПВП:

hdlsim> matlabcp osc_top -mfunc oscfilter use_instance_obj

В MATLAB:

>> hdl_instance_obj.instance

ans=
		osc_top
argumentТолько для чтения

Сохраняет аргумент, заданный -argument вариант matlabcp. Например:

matlabtb osc_top -mfunc oscfilter -use_instance_obj -argument foo
Программное обеспечение канала поддерживает -argument опция, только если она используется с -use_instance_obj, в противном случае аргумент игнорируется. аргумент является свойством только для чтения.

>> hdl_instance_obj.argument

ans= 
    	foo
portinfoТолько для чтения

Сохраняет информацию о портах VHDL и Verilog, связанных с этим экземпляром. portinfo является свойством только для чтения, которое имеет структуру полей, описывающую порты, определенные для связанного модуля HDL. Для каждого порта, portinfo структура передает такую информацию, как тип, направление и размер порта. Дополнительные сведения о данных порта см. в разделе Получение доступа к информации о порте и ее применение.

hdl_instance_obj.portinfo.field1.field2.field3

Примечание

При использовании use_instance_obj, вы получаете доступ tscale через объект экземпляра HDL. Если вы не используете use_instance_obj, вы по-прежнему можете получить доступ tscale через portinfo.

tscaleТолько для чтения

Сохраняет предел разрешения (отметку) в секундах имитатора ЛПВП. tscale является свойством, доступным только для чтения.

>> hdl_instance_obj.tscale

ans=
	1.0000e-009

Примечание

При использовании use_instance_obj, вы получаете доступ tscale через объект экземпляра HDL. Если вы не используете use_instance_obj, вы по-прежнему можете получить доступ tscale через portinfo.

tnowТолько для чтения

Сохраняет текущее время. tnow является свойством, доступным только для чтения.

hdl_instance_obj.tnext = hld_instance_obj.tnow + fastestrate;
portvaluesЧтение/запись

Сохраняет текущие значения и устанавливает новые значения для выходного и входного портов для matlabcp экземпляр. Например:

>> hdl_instance_obj.portvalues

ans =
Read Only Input ports:
	clk_enable: []
	clk: []
	reset: []
Read/Write Output ports:
	sine_out: [22x1 char]
linkmodeТолько для чтения

Сохраняет состояние обратного вызова. Программное обеспечение HDL Verifier устанавливает для этого поля значение 'testbench' если обратный вызов связан с matlabtb и 'component' если обратный вызов связан с matlabcp. linkmode является свойством, доступным только для чтения.

>> hdl_instance_obj.linkmode

ans=
	component
-argument

Используется для передачи пользовательских аргументов из matlabtb создание экземпляра на стороне HDL для обратного вызова функции MATLAB. Поддерживается с -use_instance_obj только. См. список полей для аргумента под -use_instance_obj собственность.

Примеры

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

Используя matlabtb с -socket Параметры аргумента и времени

Следующая команда запускает клиентский компонент имитатора HDL Verifier, связывая экземпляр объекта, myfirfilter, с функцией MATLAB myfirfilterи начинает сеанс тестового стенда на основе локального сокета TCP/IP с использованием порта 4449 TCP/IP. На основании указанных стимулов стенда, myfirfilter.m выполняет 5 наносекунд от текущего времени, а затем многократно каждые 10 наносекунд:

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

Применение повышающих часов и изменений состояния с помощью matlabtb

Следующая команда запускает клиентский компонент имитатора HDL программы проверки HDL и начинает удаленный сеанс на основе сокета TCP/IP с использованием удаленного главного компьютера MATLAB с именем computer123 и порт TCP/IP 4449. На основании указанных стимулов стенда, myfirfilter.m выполняет 10 наносекунд от текущего времени, каждый раз, когда сигнал /top/fclk испытывает нарастающий фронт, и каждый раз сигнал /top/din изменяет состояние.

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

Задание имени функции MATLAB и сенсибилизирующих сигналов с помощью matlabtb

Следующая команда запускает клиентский компонент имитатора HDL программного обеспечения HDL Verifier. '-mfunc' определяет функцию MATLAB для подключения и '-socket' параметр определяет номер порта для режима подключения сокета. '-sensitivity' указывает, что сеанс тестового стенда чувствителен к сигналу sine_out.

hdlsim> matlabtb osc_top -sensitivity /osc_top/sine_out
      -socket 4448 -mfunc hosctb
Представлен в R2008a