Сопоставьте функцию компонента 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