dpigen

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

Описание

пример

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 -FixedpointDataType type генерирует совместно использованную библиотеку компонента SystemVerilog DPI согласно заданным опциям. Можно задать нуль или больше дополнительных аргументов в любом порядке.

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

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

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

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

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

  • -FixedpointDataType задает тип данных SystemVerilog, чтобы использовать в портах фиксированной точки.

При генерации компонента 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.

Выберите тип данных SystemVerilog, который будет использоваться в портах, которые имеют данные фиксированной точки. Выберите из трех возможных значений:

  • CompatibleCType – Сгенерируйте совместимый интерфейс типа C для порта.

  • BitVector – Сгенерируйте интерфейс немного типа вектора для порта.

  • LogicVector – Сгенерируйте логический интерфейс типа вектора для порта.

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

Введенный в R2014b