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 отменяются.

Эта команда выполняется в симуляторе HDL.

MATLAB испытательного стенда функции мимические раздражители перешли к сущностям в HDL модели. Вы форсируете стимул из MATLAB или HDL, запланированный с matlabtb.

Примечания

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

Для связи с сокетом укажите номер порта, для которого вы выбрали порт hdldaemon когда вы выдаете запрос на ссылку с matlabtb команда в симуляторе HDL.

Аргументы

<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, и так далее). Если вы не задаете модулей, команда рассматривает значение времени как значение тактов симуляции.

-repeat <time>

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

Для примера:

matlabtb vlogtestbench_top 5 ns -repeat 10 ns

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

-cancel <time>

Задает время, в которое указанная функция MATLAB перестает выполняться. Значение времени соответствует значению tnow в то время, когда Симулятор HDL впервые вызывает функцию MATLAB. Если вы не задаете время отмены, приложение вызывает функцию MATLAB до завершения симуляции, выхода из сеанса или выпуска nomatlabtb вызов.

Примечание

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

Примечание

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

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

  • fs (femtoseconds)

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

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

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

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

  • с (с)

  • нет модулей (такта)

-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. Для получения дополнительной информации о режимах связи смотрите Communications for HDL Cosimulation. Для получения дополнительной информации об установлении конца MATLAB коммуникационного канала смотрите Start the Симулятор HDL from MATLAB.

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

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

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

  • VHDL®: Переднее ребро: {0 или L} - {1 или H}.

  • Verilog®: Восходящее ребро является переходом от 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}.

  • Верилог: Падающее ребро - это переход от 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 Verifier. Этот аргумент содержит поля, показанные в следующей таблице. См. примеры функций Writing с использованием объекта образца HDL.

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

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

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

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

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

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

>> hdl_instance_obj.simstatus

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

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

В симуляторе HDL:

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Только для чтения

Сохраняет предел разрешения ( такт) в секундах симулятора HDL. 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-симулятора 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 Verifier и начинает удаленный сеанс на основе сокетов 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. The '-mfunc' опция задает функцию MATLAB для соединения и '-socket' опция задаёт номер порта для режима подключения к сокету. '-sensitivity' указывает, что сеанс испытательного стенда чувствителен к сигналу sine_out.

hdlsim> matlabtb osc_top -sensitivity /osc_top/sine_out
      -socket 4448 -mfunc hosctb
Введенный в R2008a