Сопоставьте функцию компонента 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. Тупиковый модуль (обеспечение только определений порта) в модели 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 прекращает выполняться. Временная стоимость относительно значения ПримечаниеОпция |
Поместите спецификации времени после экземпляра matlabcp и перед любыми дополнительными аргументами команды; в противном случае спецификации времени проигнорированы.
Все спецификации времени для функций matlabcp появляются как номер и, опционально, единица измерения времени:
фс (фемтосекунды)
PS (пикосекунды)
не уточнено (наносекунды)
нас (микросекунды)
мс (миллисекунды)
секунда (секунды)
никакие модули (метка деления)
-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}.
Verilog: Падающее ребро является переходом от 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, которая имеет то же имя как заданный экземпляр HDL. Таким образом, если имена являются тем же самым, можно не использовать опцию -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. Опция '-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