matlabcp

Ассоциируйте функцию компонента MATLAB с экземплярами HDL- проекта

Синтаксис

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

Описание

matlabcp команда имеет следующие характеристики:

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

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

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

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

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

Функции компонента MATLAB моделируют поведение модулей в модели. Модуль-заглушка (обеспечивающий только определения портов) в модели HDL передает свои входные сигналы в функцию компонента MATLAB. Компонент MATLAB обрабатывает эти данные и возвращает результаты к выходам модуля-заглушки. Компонент MATLAB обычно предоставляет некоторые функциональные возможности (такие как фильтр), которые еще не реализованы в HDL-коде. См. «Создание функции компонента MATLAB».

Примечания

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

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

Аргументы

<instance>

Задает образец HDL- проекта, связанный с функцией MATLAB. По умолчанию, matlabcp связывает образец с функцией MATLAB, которая имеет то же имя, что и образец. Для примера, если образец myfirfilter, matlabcp связывает образец с функцией MATLAB myfirfilter (обратите внимание, что имена иерархии игнорируются; для примера, если ваш образец имя top.myfirfilter, matlabcp будет связываться только 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.
-cancel <time>

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

Примечание

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

Примечание

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

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

  • fs (femtoseconds)

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

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

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

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

  • с (с)

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

-socket <tcp_spec>

Указывает, что HDL Verifier использует сокеты TCP/IP для связи между Симулятором HDL и MATLAB. Общая память является режимом связи по умолчанию и вступает в эффект, если вы не задаете -socket <tcp_spec> в командной строке. Режим связи, который вы задаете с matlabcp команда должна соответствовать режиму связи, который вы выдали с hdldaemon команда.

-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 с именами путей одного или нескольких сигналов. Сигналы любого типа могут появиться в списке чувствительности и могут быть расположены на любом уровне в иерархию модели HDL.

Примечание

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

-mfunc <name>

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

-use_instance_obj

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

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

Примеры

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

Используя matlabcp с -mfunc опция для связи HDL- Компонента с функцией MATLAB другого имени

Этот пример явно связывает модуль Verilog vlogtestbench_top.u_matlab_component с функцией MATLAB vlogmatlabc использование -mfunc опция. The '-socket' опция задаёт использование связи через сокет на порте 4449.

hdlsim>matlabcp vlogtestbench_top.u_matlab_component -mfunc vlogmatlabc -socket 4449

Используя matlabcp с явными временами и -cancel Опция

Этот пример включает явное время с -cancel опция.

hdlsim>matlabcp vlogtestbench_top 1e6 fs  3 2e3 ps -repeat 3 ns -cancel 7ns

Используя matlabcp с восходящими и падающими ребрами

Этот пример неявно связывает модуль Verilog, vlogtestbench_top, с функцией MATLAB vlogtestbench_top, а также использует поднимающиеся и падающие ребра.

hldsim> matlabcp vlogtestbench_top  1 2 3 4 5 6 7 -rising outclk3 
          -falling u_matlab_component/inoutclk
Введенный в R2008a