dpigen

Сгенерируйте компонент SystemVerilog DPI от функции MATLAB

Синтаксис

dpigen fcn -args args
dpigen fcn -args args -testbench tb_name -options options files -c -launchreport

Описание

dpigen fcn -args args генерирует совместно использованную библиотеку компонента SystemVerilog DPI от функции MATLAB® fcn и все функции, которые вызывает fcn. Это также генерирует файл пакета SystemVerilog, который содержит объявления функции.

Аргумент —args args задает тип входных параметров, которые может принять сгенерированный код. Сгенерированный компонент DPI специализирован к классу и размеру входных параметров. Используя эту информацию, dpigen генерирует компонент DPI, который эмулирует поведение функции MATLAB.

fcn и —args args являются требуемыми входными параметрами. Функция MATLAB должна быть на пути MATLAB или в текущей папке.

dpigen fcn -args args -testbench tb_name -options options files -c -launchreport генерирует совместно использованную библиотеку компонента SystemVerilog DPI согласно заданным опциям. Можно задать нуль или больше дополнительных аргументов в любом порядке.

  • -testbench tb_name также генерирует испытательный стенд для компонента SystemVerilog DPI. Испытательный стенд MATLAB должен быть на пути MATLAB или в текущей папке.

  • -options options задает дополнительные опции для компилятора и генерации кода.

  • files задает пользовательские файлы, чтобы включать в сгенерированный код.

  • -c генерирует код С только.

  • -launchreport генерирует и открывает отчет генерации кода.

При генерации компонента DPI это создает разделяемую библиотеку, характерную для той серверной платформы. Например, если вы используете 64-битный MATLAB на Windows®, вы получаете 64-битный DLL, который может использоваться только с 64-битным симулятором HDL в Windows. Для портирования сгенерированного компонента от Windows до Linux® смотрите Порт Сгенерированный и Испытательный стенд Компонента к Linux.

Примеры

свернуть все

Сгенерируйте DPI и испытательный стенд компонента для функционального fun.m и его связанный испытательный стенд, fun_tb.m. Функция dpigen компилирует компонент автоматически с помощью компилятора по умолчанию. Опция -args указывает, что первым входным типом является double, и вторым входным типом является int8.

dpigen -testbench fun_tb.m -I E:\HDLTools\ModelSim\10.2c-mw-0\questa_sim\include fun.m 
      -args {double(0),int8(0)}
### Generating DPI-C Wrapper fun_dpi.c
### Generating DPI-C Wrapper header file fun_dpi.h
### Generating SystemVerilog module package fun_dpi_pkg.sv
### Generating SystemVerilog module fun_dpi.sv
### Generating makefiles for: fun_dpi
### Compiling the DPI Component
### Generating SystemVerilog test bench fun_tb.sv
### Generating test bench simulation script for Mentor Graphics QuestaSim/Modelsim run_tb_mq.do
### Generating test bench simulation script for Cadence Incisive run_tb_incisive.sh
### Generating test bench simulation script for Cadence Xcelium run_tb_xcelium.sh
### Generating test bench simulation script for Synopsys VCS run_tb_vcs.sh
### Generating test bench simulation script for Vivado Simulator run_tb_vivado.bat

Сгенерируйте компонент DPI и испытательный стенд для функционального fun.m и его связанный испытательный стенд, fun_tb.m. Чтобы препятствовать тому, чтобы функция dipgen компилировала библиотеку, включайте опцию -c. Отправьте исходному коду вывод в 'MyDPIProject'.

dpigen -c -d MyDPIProject -testbench fun_tb.m fun.m -args {double(0),int8(0)}
### Generating DPI-C Wrapper fun_dpi.c
### Generating DPI-C Wrapper header file fun_dpi.h
### Generating SystemVerilog module package fun_dpi_pkg.sv
### Generating SystemVerilog module fun_dpi.sv
### Generating makefiles for: fun_dpi
### Generating SystemVerilog test bench fun_tb.sv
### Generating test bench simulation script for Mentor Graphics ModelSim/QuestaSim run_tb_mq.do
### Generating test bench simulation script for Cadence Incisive run_tb_incisive.sh
### Generating test bench simulation script for Cadence Xcelium run_tb_xcelium.sh
### Generating test bench simulation script for Synopsys VCS run_tb_vcs.sh
### Generating test bench simulation script for Vivado Simulator run_tb_vivado.bat

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

свернуть все

Имя функции MATLAB, чтобы сгенерировать компонент DPI от, заданный как вектор символов или представить скаляр в виде строки. Функция MATLAB должна быть на пути MATLAB или в текущей папке.

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

Этот аргумент имеет ту же функциональность как аргумент функции codegen args. args применяется только к функции, fcn.

Пример: -args {double(0),int8(0)}

Испытательный стенд MATLAB раньше генерировал испытательный стенд для сгенерированного компонента DPI, заданного как вектор символов, или представлял скаляр в виде строки. Функция dpigen использует этот испытательный стенд, чтобы сгенерировать испытательный стенд SystemVerilog наряду со скриптами выполнения и файлами данных. Испытательный стенд MATLAB должен быть на пути MATLAB или в текущей папке.

Пример: -testbench My_Test_bench.m

Компилятор и опции codegen, заданные как вектор символов или скаляр строки. Эти опции являются подмножеством опций для codegen. Функция dpigen дает приоритет отдельным параметрам командной строки по опциям, заданным с помощью объекта настройки. Если параметры командной строки конфликтуют, самая правая опция преобладает.

Можно задать нуль или больше дополнительных аргументов в любом порядке. Например:

dpigen -c -d MyDPIProject -testbench fun_tb.m fun.m -args {double(0),int8(0)} -launchreport

Флаг OptionЗначение опции
-I include_path

Задает путь к папкам, содержащим заголовки и файлы библиотеки, необходимые для codegen, заданного как скаляр строки или вектор символов. Добавьте include_path в начало пути генерации кода.

Например:

-I E:\HDLTools\ModelSim\10.2c-mw-0\questa_sim\include

include_path не должен содержать пробелы, которые могут привести к отказам генерации кода в определенных настройках операционной системы. Если путь содержит не 7-битные символы ASCII, такие как японские символы, dpigen не может найти файлы на этом пути.

При преобразовании кода MATLAB в код C/C++ dpigen ищет путь генерации кода сначала.

Также можно задать включать путь с входным параметром files.

-config config

Задайте объект пользовательской конфигурации использование coder.config('dll'). Компонент DPI должен быть разделяемой библиотекой.

Чтобы избегать использования конфликтных опций, не комбинируйте объект настройки с параметрами командной строки. Обычно объект config предлагает больше опций, чем флаги командной строки.

Примечание

Не все опции в объекте config совместимы с функцией DPI. При попытке использовать несовместимую опцию, сообщение об ошибке сообщает вам, которых опции не совместимы.

-o output

Задайте имя сгенерированного компонента как вектор символов или представьте скаляр в виде строки. Функция dpigen добавляет специфичное для платформы расширение этого имени для разделяемой библиотеки.

-d dir

Задайте выходную папку. Все сгенерированные файлы помещаются в dir. По умолчанию файлы помещаются в ./codegen/dll/<function>.

Например, когда dpigen компилирует функциональный fun.m, сгенерированный код помещается в ./codegen/dll/fun.

-globals globals

Задайте начальные значения для глобальных переменных в файлах MATLAB. Глобальные переменные в вашей функции инициализируются к значениям в массиве ячеек GLOBALS. Массив ячеек обеспечивает имя и начальное значение каждой глобальной переменной.

Если вы не обеспечиваете начальные значения для глобальных переменных с помощью опции -globals, dpigen проверяет на переменные в глобальной рабочей области MATLAB. Если вы не предоставляете начальное значение, dpigen генерирует ошибку.

MATLAB Coder™ и MATLAB у каждого есть их собственные копии глобальных данных. Для непротиворечивости синхронизируйте их глобальные данные каждый раз, когда эти два продукта взаимодействуют. Если вы не синхронизируете данные, их глобальные переменные могут отличаться.

Пользовательские файлы, чтобы включать в сгенерированный код, каждый файл, заданный как вектор символов или представить скаляр в виде строки. Файлы создают наряду с функцией MATLAB, заданной fcn. Перечислите каждый файл отдельно, разделенный пробелом. Следующие расширения поддерживаются.

FileType Описание
.cПользовательский файл C
.cppПользовательский файл C++
.hПользовательский заголовочный файл (включенный всеми сгенерированными файлами)
.oОбъектный файл
.objОбъектный файл
.aФайл библиотеки
.soФайл библиотеки
.libФайл библиотеки

В Windows, если ваша функция MATLAB содержит матричные или векторные выходные аргументы или входные параметры, используют опцию files, чтобы задать библиотеку (.lib), которая содержит определения ModelSim® DPI. В противном случае необходимо вручную изменить сгенерированный Make-файл (*.mk) и затем скомпилировать библиотеку отдельно.

Опция, чтобы сгенерировать код С, не компилируя компонент DPI, заданный как вектор символов -c. Если вы не используете опцию -c, dpigen пытается скомпилировать компонент DPI использование компилятора по умолчанию. Чтобы выбрать различный компилятор, используйте опцию -config и обратитесь к документации codegen для получения инструкций относительно определения различных вариантов.

Опция, чтобы сгенерировать и открыть отчет генерации кода, заданный как вектор символов -launchreport.

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

Введенный в R2014b