Связать функцию компонента 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 отменены.
Эта команда выдается в имитаторе ЛПВП.
Функции компонента MATLAB моделируют поведение модулей в модели HDL. Модуль-заглушка (предоставляющий только определения портов) в модели HDL передает свои входные сигналы в функцию компонента MATLAB. Компонент MATLAB обрабатывает эти данные и возвращает результаты на выходы модуля-заглушки. Компонент MATLAB обычно обеспечивает некоторые функциональные возможности (например, фильтр), которые еще не реализованы в коде HDL. См. раздел Создание функции компонента MATLAB.
Примечания
Режим связи, указанный для matlabcp должен соответствовать режиму связи, указанному для hdldaemon при установлении соединения с сервером.
Для подключения сокетов укажите номер порта, выбранный для hdldaemon при выдаче запроса на ссылку с помощью matlabcp в имитаторе ЛПВП.
<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 в то время как имитатор ЛПВП сначала вызывает функцию MATLAB. |
-cancel <time> |
Указывает время прекращения выполнения указанной функции MATLAB. Значение времени относительно значения Примечание |
Примечание
Размещение временных спецификаций после matlabcp экземпляр и перед любыми дополнительными аргументами команды; в противном случае временные характеристики игнорируются.
Все временные спецификации для matlabcp функции отображаются в виде числа и, при необходимости, единицы времени:
fs (фемтосекунды)
ps (пикосекунды)
ns (наносекунды)
us (микросекунды)
мс (миллисекунды)
сек (секунды)
без единиц (галочка)
-socket <tcp_spec>Указывает, что средство проверки HDL использует сокеты 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 ®: 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 с именами трактов одного или нескольких сигналов. Сигналы любого типа могут появляться в списке чувствительности и располагаться на любом уровне иерархии модели ЛПВП.
Примечание
При указании сигналов с помощью -rising, -falling, и -sensitivity укажите их в формате полного пути. Если полное имя пути не указано, команда применяет правила имитатора HDL для разрешения спецификаций сигнала.
-mfunc <name>Имя функции MATLAB, связанной с экземпляром модуля HDL, указанным для instance. По умолчанию программа HDL Verifier вызывает функцию MATLAB, имя которой совпадает с именем указанного экземпляра HDL. Таким образом, если имена совпадают, можно опустить -mfunc вариант. Если имена не совпадают, используйте этот аргумент при вызове matlabcp. Если опустить этот аргумент и matlabcp не находит функцию MATLAB с тем же именем, команда генерирует сообщение об ошибке.
-use_instance_objИнструктирует функцию, указанную в аргументе -mfunc для использования объекта экземпляра HDL, переданного в функцию средством проверки HDL. Этот аргумент имеет поля, показанные в следующей таблице. Примеры см. в разделе Запись функций с помощью объекта экземпляра HDL.
| Область | Доступ для чтения/записи | Описание |
|---|---|---|
tnext | Только запись | Используется для планирования обратного вызова в течение заданного значения времени. Это поле эквивалентно старому hdl_instance_obj.tnext = hdl_instance_obj.tnow + 5e-9 запланирует обратный вызов в момент времени, равный 5 наносекундам от |
userdata | Чтение/запись | Сохраняет переменные состояния текущего matlabcp экземпляр. Переменные можно извлечь при следующем планировании обратного вызова этого экземпляра. |
simstatus | Только для чтения | Сохраняет состояние имитатора ЛПВП. Программное обеспечение HDL Verifier устанавливает для этого поля значение >> 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 | Только для чтения |
Сохраняет аргумент, заданный 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_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 вариант. '-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