Ассоциируйте функцию компонента 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