Ассоциируйте функцию компонента 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 секунд от начального момента времени. Примечание Для основанных на времени параметров можно задать любые стандартные временные модули ( |
-repeat <time> | Указывает, что Симулятор HDL неоднократно вызывает функцию MATLAB на основе заданного <timen>,... шаблон. Значения времени относятся к значению tnow в то время, когда Симулятор HDL впервые вызывает функцию MATLAB. |
-cancel <time> |
Задает время, в которое указанная функция MATLAB перестает выполняться. Значение времени соответствует значению Примечание The |
Примечание
Разместите спецификации времени после 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 | Только запись | Используется для планирования коллбэка в течение установленного значения времени. Это поле эквивалентно старым hdl_instance_obj.tnext = hdl_instance_obj.tnow + 5e-9 будет планировать коллбэк в момент, равный 5 наносекундам от |
userdata | Чтение/запись | Сохраняет переменные состояния тока matlabcp образец. Можно получить переменные при следующем планировании коллбэка этого образца. |
simstatus | Только для чтения | Сохраняет состояние Симулятора HDL. Программное обеспечение HDL Verifier устанавливает это поле равным >> 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 | Только для чтения |
Сохраняет аргумент, заданный matlabtb osc_top -mfunc oscfilter -use_instance_obj -argument foo -argument опция только в том случае, если она используется с -use_instance_obj , в противном случае аргумент игнорируется. аргумент является свойством только для чтения.
>> hdl_instance_obj.argument ans= foo |
portinfo | Только для чтения |
Хранит информацию о портах VHDL и Verilog, сопоставленных с этим образцом. hdl_instance_obj.portinfo.field1.field2.field3
Примечание Когда вы используете |
tscale | Только для чтения |
Сохраняет предел разрешения ( такт) в секундах симулятора HDL. >> hdl_instance_obj.tscale ans= 1.0000e-009 Примечание Когда вы используете |
tnow | Только для чтения |
Сохраняет текущее время. hdl_instance_obj.tnext = hld_instance_obj.tnow + fastestrate; |
portvalues | Чтение/запись |
Сохраняет текущие значения и устанавливает новые значения для портов выхода и входа для >> hdl_instance_obj.portvalues ans = Read Only Input ports: clk_enable: [] clk: [] reset: [] Read/Write Output ports: sine_out: [22x1 char] |
linkmode | Только для чтения |
Сохраняет состояние коллбэка. Программное обеспечение HDL Verifier устанавливает это поле равным >> 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