Запланируйте сеанс испытательного стенда MATLAB для инстанцированного модуля HDL
matlabtb <instance> [<time-specs>] [-socket <tcp-spec>] [-rising <port>[,<port>...]] [-falling <port> [,<port>,...]] [-sensitivity <port>[,<port>,...]] [-mfunc <name>] [-use_instance_obj] [-argument]
Команда matlabtb
имеет следующие характеристики:
Запускает клиентский компонент симулятора HDL программного обеспечения HDL Verifier™.
Сопоставляет заданный экземпляр проекта HDL, созданного в симуляторе HDL с функцией MATLAB®.
Создает процесс, который планирует вызовы заданной функции MATLAB.
Отмены любые незаконченные события, запланированные предыдущей командой matlabtb
, которая задала тот же экземпляр. Например, если вы даете команду matlabtb
, например, foo
, отменяются все ранее запланированные события, инициируемые matlabtb
на foo
.
Эта команда дается в симуляторе HDL.
Стимулы имитатора функций испытательного стенда MATLAB передали сущностям в модели HDL. Вы обеспечиваете стимул из MATLAB или HDL, запланированного с matlabtb
.
Коммуникационный режим, который вы задаете для matlabtb
, должен совпадать с коммуникационным режимом, который вы задали для hdldaemon
, когда вы установили связь сервера.
Для коммуникаций сокета задайте номер порта, который вы выбрали для hdldaemon
, когда вы выпускаете запрос ссылки с командой matlabtb
в симуляторе HDL.
<instance>
Задает экземпляр модуля HDL, который программное обеспечение HDL Verifier сопоставляет с функцией испытательного стенда MATLAB. По умолчанию matlabtb
сопоставляет экземпляр с функцией MATLAB, которая имеет то же имя как экземпляр. Например, если экземпляром является myfirfilter
, matlabtb
сопоставляет экземпляр с функцией MATLAB myfirfilter
(обратите внимание, что имена иерархии проигнорированы; например, если бы вашим именем экземпляра является top.myfirfilter
, matlabtb
сопоставил бы только 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 на основе заданного шаблона Например: matlabtb vlogtestbench_top 5 ns -repeat 10 ns Функция MATLAB выполняется во время, равняется 0 нс, 5 нс, 15 нс, 25 нс, и так далее. |
-cancel <time> |
Задает время, в которое заданная функция MATLAB прекращает выполняться. Временная стоимость относительно значения ПримечаниеОпция |
Поместите спецификации времени после экземпляра matlabtb
и перед любыми дополнительными аргументами команды; в противном случае спецификации времени проигнорированы.
Все спецификации времени для функций matlabtb
появляются как номер и, опционально, единица измерения времени:
фс (фемтосекунды)
PS (пикосекунды)
не уточнено (наносекунды)
нас (микросекунды)
мс (миллисекунды)
секунда (секунды)
никакие модули (метка деления)
-socket <tcp_spec>
Задает коммуникацию сокета TCP/IP для ссылки между симулятором HDL и MATLAB. Когда вы предоставляете информацию о TCP/IP для matlabtb
, можно выбрать номер порта TCP/IP или псевдоним порта TCP/IP или сервисное имя для <параметр tcp_spec>
. Если вы настраиваете связь между компьютерами, необходимо также задать имя или интернет-адрес удаленного хоста, который запускает сервер MATLAB (hdldaemon
).
Для получения дополнительной информации о выборе портов сокета TCP/IP смотрите Порты Сокета TCP/IP.
Если при запуске симулятор HDL и MATLAB на том же компьютере, у вас есть опция использования общей памяти для коммуникации. Общая память является режимом по умолчанию коммуникации и вступает в силу, если вы не делаете specify-socket <tcp_spec>
на командной строке.
Коммуникационный режим, который вы задаете с командой matlabtb
, должен совпадать с тем, что вы задаете для коммуникационного режима, когда вы даете команду hdldaemon
в MATLAB. Для получения дополнительной информации о режимах коммуникации смотрите Коммуникации для HDL Cosimulation. Для получения дополнительной информации об установлении конца MATLAB линии связи смотрите, Запускают симулятор HDL с MATLAB.
-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.
Если вы задаете опцию без сигналов, интерфейс чувствителен к изменениям значения для всех сигналов.
Использование этой опции для портов INOUT
может привести к двойным вызовам.
Например:
-sensitivity /randnumgen/dout
Функция MATLAB выполняется, если значение dout
изменяется.
При определении сигналов с -rising
-falling
и опции -sensitivity
, задают их в полном формате пути. Если вы не задаете имя полного пути, команда применяет правила симулятора HDL разрешить спецификации сигнала.
-mfunc <name>
Имя связанной функции MATLAB. Если вы не используете этот аргумент, matlabtb
сопоставляет экземпляр модуля HDL к функции MATLAB, которая имеет то же имя как экземпляр HDL. Если вы не используете этот аргумент, и matlabtb
не находит функцию MATLAB с тем же именем, команда генерирует сообщение об ошибке.
-use_instance_obj
Дает команду функции, заданной с аргументом -mfunc
использовать объект экземпляра HDL, переданный HDL Verifier функции. Этому аргументу показали поля в следующей таблице. Функции SeeWriting Используя Объект экземпляра 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
Используемый, чтобы передать пользовательские аргументы от инстанцирования matlabtb
на стороне HDL к коллбэкам функции MATLAB. Поддерживаемый с -use_instance_obj
только. Смотрите, что поле перечисляет для аргумента под свойством -use_instance_obj
.
Следующие примеры демонстрируют некоторые способы, которыми вы можете использовать функцию matlabtb
.
matlabtb
с параметрами аргумента и времени -socket
Следующая команда запускает клиентский компонент симулятора HDL HDL Verifier, сопоставляет экземпляр сущности, myfirfilter
, с функцией MATLAB myfirfilter
, и начинает локальный TCP/IP основанный на сокете сеанс испытательного стенда с помощью порта TCP/IP 4449. На основе заданных стимулов испытательного стенда myfirfilter.m
выполняет 5 наносекунд с текущего времени, и затем неоднократно каждые 10 наносекунд:
hdlsim> matlabtb myfirfilter 5 ns -repeat 10 ns -socket 4449
matlabtb
Следующая команда запускает клиентский компонент симулятора HDL HDL Verifier и начинает удаленный TCP/IP основанный на сокете сеанс с помощью удаленного хоста - компьютера MATLAB, названного портом computer123
и TCP/IP 4449. На основе заданных стимулов испытательного стенда myfirfilter.m
выполняет 10 наносекунд с текущего времени, каждый раз, когда /top/fclk
сигнала испытывает возрастающее ребро, и каждый раз состояние изменений /top/din
сигнала.
hdlsim> matlabtb /top/myfirfilter 10 ns -rising /top/fclk -sensitivity /top/din -socket 4449@computer123
matlabtb
Следующая команда запускает клиентский компонент симулятора HDL программного обеспечения HDL Verifier. Опция '-mfunc'
задает функцию MATLAB, чтобы соединиться с, и опция '-socket'
задает номер порта для режима сокетного соединения. '-sensitivity'
указывает, что сеанс испытательного стенда делают чувствительным к sine_out
сигнала.
hdlsim> matlabtb osc_top -sensitivity /osc_top/sine_out -socket 4448 -mfunc hosctb