matlabcp

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

Примечание

Для основанных на времени параметров можно задать любые стандартные единицы измерения времени (ns, us, и так далее). Если вы не задаете модули, команда обрабатывает временную стоимость как значение меток деления симуляции HDL.

-repeat <time>Указывает, что симулятор HDL неоднократно вызывает функцию MATLAB на основе заданного <timen>,... шаблон. Временные стоимости относительно значения tnow в то время, когда симулятор HDL сначала вызывает функцию MATLAB.
-cancel <time>

Задает время, в которое заданная функция MATLAB прекращает выполняться. Временная стоимость относительно значения tnow в то время, когда симулятор HDL сначала вызывает функцию MATLAB. Если вы не задаете время отмены, приложение вызывает функцию MATLAB, пока вы не закончили симуляцию, выходите из сеанса или выпускаете nomatlabtb вызвать.

Примечание

-cancel опция работает только с аргументами <time-specs>. Это не влияет ни на один из других аргументов планирования для matlabcp.

Примечание

Поместите технические требования времени после 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Только для записи

Используемый, чтобы запланировать коллбэк во время временной стоимости набора. Это поле эквивалентно старому tnext. Например:

hdl_instance_obj.tnext = hdl_instance_obj.tnow + 5e-9

запланирует коллбэк во время, равняется 5 наносекундам от tnow.

userdataЧтение-записьПеременные состояния хранилищ текущего matlabcp экземпляр. Можно получить переменные в следующий раз, когда коллбэк этого экземпляра планируется.
simstatusТолько для чтения

Хранит состояние симулятора HDL. Программное обеспечение HDL Verifier устанавливает это поле на 'Init' во время первого коллбэка для этого конкретного экземпляра и к 'Running' после этого. simstatus свойство только для чтения.

>> 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Только для чтения

Хранит аргумент, установленный -argument опция matlabcp. Например:

matlabtb osc_top -mfunc oscfilter -use_instance_obj -argument foo
Программное обеспечение ссылки поддерживает -argument опция только, когда это используется с -use_instance_obj, в противном случае аргумент проигнорирован. аргумент является свойством только для чтения.

>> hdl_instance_obj.argument

ans= 
    	foo
portinfoТолько для чтения

Хранит информацию о портах VHDL и Verilog, сопоставленных с этим экземпляром. portinfo свойство только для чтения, которое имеет полевую структуру, которая описывает порты, заданные для связанного модуля HDL. Для каждого порта, portinfo структура передает информацию, такую как тип порта, направление и размер. Для получения дополнительной информации о данных порта смотрите Получающий доступ к и Применение Информации порта.

hdl_instance_obj.portinfo.field1.field2.field3

Примечание

Когда вы используете use_instance_obj, вы получаете доступ к tscale через объект экземпляра HDL. Если вы не используете use_instance_obj, можно все еще получить доступ к tscale через portinfo.

tscaleТолько для чтения

Хранит предел разрешения (метка деления) в секундах симулятора HDL. tscale свойство только для чтения.

>> hdl_instance_obj.tscale

ans=
	1.0000e-009

Примечание

Когда вы используете use_instance_obj, вы получаете доступ к tscale через объект экземпляра HDL. Если вы не используете use_instance_obj, можно все еще получить доступ к tscale через portinfo.

tnowТолько для чтения

Хранит текущее время. tnow свойство только для чтения.

hdl_instance_obj.tnext = hld_instance_obj.tnow + fastestrate;
portvaluesЧтение-запись

Хранит текущие значения и устанавливает новые значения для выходных и входных портов для matlabcp экземпляр. Например:

>> hdl_instance_obj.portvalues

ans =
Read Only Input ports:
	clk_enable: []
	clk: []
	reset: []
Read/Write Output ports:
	sine_out: [22x1 char]
linkmodeТолько для чтения

Хранит состояние коллбэка. Программное обеспечение HDL Verifier устанавливает это поле на 'testbench' если коллбэк сопоставлен с matlabtb и 'component' если коллбэк сопоставлен с matlabcp. linkmode свойство только для чтения.

>> 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

Введенный в R2008a