matlabcp

Сопоставьте функцию компонента MATLAB с инстанцированным проектом HDL

Описание

пример

Примечание

Введите эту команду в симулятор HDL, не в MATLAB®.

matlabcp instance выполняет эти действия:

  • Запускает клиентский компонент симулятора HDL программного обеспечения HDL Verifier™.

  • Сопоставляет заданный экземпляр проекта HDL, созданного в симуляторе HDL с функцией MATLAB.

  • Создает процесс, который планирует вызовы заданной функции MATLAB.

  • Отмены любые незаконченные события запланированы предыдущим matlabcp команда, которая задала тот же экземпляр. Например, если вы даете команду matlabcp например, foo, matlabcp отмены все ранее запланированные события, инициируемые matlabcp на foo.

    Дайте эту команду в симуляторе HDL.

    Функции компонента MATLAB симулируют поведение модулей в модели HDL. Тупиковый модуль (обеспечение только определений порта) в модели HDL передает свои входные сигналы функции компонента MATLAB. Компонент MATLAB обрабатывает эти данные и возвращает результаты к выходным параметрам тупикового модуля. Компонент MATLAB обычно обеспечивает некоторую функциональность (такую как фильтр), который еще не реализован в HDL-коде. Для получения дополнительной информации о функциях компонента MATLAB, смотрите, Создают Функцию Компонента MATLAB.

    Примечание

    Коммуникационный режим, для которого вы задаете matlabcp должен совпадать с коммуникационным режимом, для которого вы задали hdldaemon когда вы установили связь сервера.

    Для коммуникаций сокета задайте номер порта, для которого вы выбрали hdldaemon когда вы выпускаете запрос ссылки с matlabcp команда в симуляторе HDL.

пример

matlabcp instance time-specs добавляет время технические требования для планирования заданной функции MATLAB.

пример

matlabcp instance ___ pair1 ... pairN задает одни или несколько дополнительных технических требований как пары, состоящие из допустимого имени спецификации и его значения. Например, -mfunc vlogmatlabc задает для функции MATLAB vlogmatlabc быть сопоставленным с заданным модулем HDL. Можно задать эти пары с или без time-specs.

Примеры

свернуть все

Сопоставьте Verilog® модуль vlogtestbench_top.u_matlab_component с функцией MATLAB vlogmatlabc при помощи -mfunc опция. -socket опция задает, чтобы использовать коммуникацию сокета на порте 4449.

hdlsim>matlabcp vlogtestbench_top.u_matlab_component -mfunc vlogmatlabc -socket 4449

Сопоставьте модуль Verilog vlogtestbench_top с функцией MATLAB vlogtestbench_top, определение явных времен с -cancel опция.

hdlsim>matlabcp vlogtestbench_top 1e6 fs  3 2e3 ps -repeat 3 ns -cancel 7ns

Сопоставьте модуль Verilog vlogtestbench_top с функцией MATLAB vlogtestbench_top, определение возрастающих и падающих ребер.

hldsim> matlabcp vlogtestbench_top  1 2 3 4 5 6 7 -rising outclk3 
          -falling u_matlab_component/inoutclk

Входные параметры

свернуть все

Экземпляр модуля HDL, который сопоставлен с функцией MATLAB в виде вектора символов или строкового скаляра, который указывает на экземпляр модуля HDL. По умолчанию, matlabcp команда сопоставляет экземпляр к функции MATLAB, которая имеет то же имя как экземпляр. Например, если экземпляром является myfirfilter, matlabcp сопоставляет экземпляр с функцией MATLAB myfirfilter Команда игнорирует имена иерархии. Например, если экземпляром является top.myfirfilter, matlabcp команда сопоставляет только myfirfilter с функцией MATLAB. Чтобы сопоставить заданный экземпляр с функцией MATLAB, которая отличается от имени экземпляра, используйте -mfunc спецификация как в pair1 ... pairN аргумент.

Примечание

Если вы задаете экземпляр модуля HDL, который уже сопоставлен с функцией MATLAB (через matlabcp или matlabtb) новая ассоциация перезаписывает существующий.

Типы данных: char | string

Разделенный пробелом список технических требований одного или нескольких времен в виде разделенного пробелом списка технических требований одного или нескольких времен перечислен в этой таблице.

Спецификация времениОписание
time_1 time_2 ... time_n

Задайте один или несколько дискретных раз, в котором симулятор HDL вызывает заданную функцию MATLAB. Требуемые времена относительно текущего времени симуляции. Если вы не задаете время, симулятор HDL вызывает функцию MATLAB однажды в начале симуляции. Каждый time_i состоит из номера, указывающего на временную стоимость и дополнительную единицу измерения времени:

  • фс (фемтосекунды)

  • PS (пикосекунды)

  • не уточнено (наносекунды)

  • нас (микросекунды)

  • мс (миллисекунды)

  • секунда (секунды)

Если вы не задаете единицу измерения времени, команда обрабатывает временную стоимость как значение меток деления симуляции HDL. Разделите каждый time_i пробелом.

Например, этот код задает для функции MATLAB vlogmodel_top выполниться во время 0 (начальное выполнение) и затем в 10 наносекунд, 10 миллисекунд, и 10 секунд.

matlabcp vlogmodel_top 10 ns, 10 ms, 10 sec
-repeat <time>Укажите, что симулятор HDL вызывает функцию MATLAB неоднократно на основе требуемых времен. Временные стоимости относительно значения tnow в то время, когда симулятор HDL сначала вызывает функцию MATLAB.
-cancel <time>

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

Примечание

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

Примечание

Поместите технические требования времени после matlabcp экземпляр и перед любыми дополнительными аргументами команды; в противном случае технические требования времени проигнорированы.

Дополнительные технические требования в виде разделенного пробелом списка одной или нескольких пар спецификации. Пара спецификации состоит из имени и значения. Эта таблица показывает допустимое имя и опции значения для этих пар.

Пары спецификации

ИмяЗначениеОписание
-socketРежим Communication, который совпадает с коммуникационным режимом, выпущенным hdldaemon команда

Задайте для HDL Verifier, чтобы использовать сокеты TCP/IP, чтобы связаться между симулятором HDL и MATLAB. Общая память является режимом по умолчанию коммуникации и вступает в силу, если вы не задаете -socket <tcp_spec>. Коммуникационный режим, который вы задаете с matlabcp команда должна совпадать с коммуникационным режимом, который вы задали с hdldaemon команда.

Для получения дополнительной информации о выборе портов сокета TCP/IP смотрите Порты Сокета TCP/IP.

-risingСписок, разделенный запятыми одного или нескольких имен сигнала

Задайте -rising с путями одного или нескольких сигналов, заданных как логический тип (STD_LOGIC, BIT, X01, и так далее).This пара указывает, что приложение вызывает заданную функцию MATLAB на возрастающем ребре (переход от '0' к '1') из любого из заданных сигналов.

  • В VHDL®, переход от 0 или L к 1 или H определяет возрастающее ребро.

  • В Verilog переход от 0 до x, z, или 1, или от x или z к 1 определяет возрастающее ребро.

Примечание

При определении сигналов с -rising пара, задайте сигналы в полном формате пути. Если вы не задаете имя полного пути, команда применяет правила симулятора HDL разрешить технические требования сигнала.

-fallingСписок, разделенный запятыми одного или нескольких имен сигнала

Задайте пути одного или нескольких сигналов, заданных как логический тип (STD_LOGIC, BIT, X01, и так далее). Указывает, что приложение вызывает заданную функцию MATLAB каждый раз, когда любой из заданных сигналов испытывает падающее ребро (переход от '1' к '0').

Для определения перехода сигнала в:

  • В VHDL, переходе от 1 или H к 0 или L определяет падающее ребро.

  • В Verilog переход от 1 до x, z, или 0, или от x или z к 0 определяет падающее ребро.

Примечание

При определении сигналов с -falling пара, задайте сигналы в полном формате пути. Если вы не задаете имя полного пути, команда применяет правила симулятора HDL разрешить технические требования сигнала.

-sensitivityСписок, разделенный запятыми одного или нескольких имен сигнала

Задайте пути одного или нескольких сигналов. Эта пара указывает, что приложение вызывает заданную функцию MATLAB каждый раз, когда любой из заданных сигналов изменяет состояние. Сигналы любого типа могут появиться в списке чувствительности и могут быть расположены в любой уровень в иерархии модели HDL.

Примечание

При определении сигналов с -sensitivity пара, задайте сигналы в полном формате пути. Если вы не задаете имя полного пути, команда применяет правила симулятора HDL разрешить технические требования сигнала.

-mfuncИмя функции MATLAB

Задайте имя функции MATLAB, которая сопоставлена с экземпляром модуля HDL, который вы задаете для instance. По умолчанию программное обеспечение HDL Verifier вызывает функцию MATLAB, которая имеет то же имя как заданный экземпляр HDL. Если имена являются тем же самым, можно не использовать -mfunc пара. Если имена различные, используйте этот аргумент, когда вы вызываете matlabcp. Если вы не используете этот аргумент и matlabcp не находит функцию MATLAB с тем же именем, команда генерирует сообщение об ошибке.

-use_instance_objСтруктура с полями как описано в таблице в-use_instance_obj Полях

Эта пара Сообщает функции, заданной с аргументом -mfunc использовать объект экземпляра HDL, переданный HDL Verifier функции. Этому значению показали поля в применимой таблице. Смотрите, что Функции Записи Используют Объект экземпляра HDL для примеров.

-argumentАргумент экземпляра HDL

Передайте пользовательские аргументы от matlabcp команда на стороне HDL к коллбэкам функции MATLAB. Эта пара поддерживается с -use_instance_obj только. Для получения дополнительной информации смотрите поле в таблице-use_instance_obj Поля.

-use_instance_obj Поля

Поле Доступ для чтения или доступ для записиОписание
tnextТолько для записи

Запланируйте коллбэк в течение времени набора. Это поле эквивалентно старому tnext. Например, этот код планирует коллбэк 5 наносекунд от tnow.

hdl_instance_obj.tnext = hdl_instance_obj.tnow + 5e-9
userdataЧитайте или запишитеСохраните переменные состояния тока matlabcp экземпляр. Можно получить переменные в следующий раз, когда коллбэк этого экземпляра планируется.
simstatusТолько для чтения

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

>> hdl_instance_obj.simstatus

ans=
      Init
instanceТолько для чтения

Сохраните полный путь экземпляра Verilog или VHDL, сопоставленного с коллбэком. instance поле только для чтения. Значение этого поля равняется значению экземпляра модуля, заданного с вызовом функции. Например:

В симуляторе HDL:

hdlsim> matlabcp osc_top -mfunc oscfilter use_instance_obj

В MATLAB:

>> hdl_instance_obj.instance

ans=
		osc_top
argumentТолько для чтения

Сохраните аргумент, который установлен -argument пара. Например:

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

>> 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Читайте или запишите

Сохраните текущие значения и установите новые значения для выходных и входных портов для a 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

Смотрите также

| |

Введенный в R2008a