Задайте и добавьте репозиторий IP в пользовательский исходный проект

Когда вы создаете свой пользовательский исходный проект, вы можете потребовать пользовательских модулей IP, которые не идут с Altera® Qsys или Xilinx® Vivado®. Чтобы использовать пользовательские модули IP, создайте свою собственную папку репозитория IP, которая содержит подпапки модуля IP. Рабочий процесс IP Core Generation затем использует эти пользовательские модули IP при создании проекта исходного проекта. Можно создать несколько репозиториев IP и добавить все или некоторые модули IP в каждом репозитории к пользовательскому проекту исходного проекта. Можно также снова использовать и совместно использовать репозитории IP через несколько исходных проектов.

Создайте структуру папки репозитория IP

Создайте папку репозитория IP где угодно на пути MATLAB®. Эти данные показывают типичную структуру папки репозитория IP.

Когда вы создадите структуру папок, используйте соглашение о присвоении имен +(company)/+(product)/+(tool). В этом примере структурой папок является +(mathworks)/+(hdlcoder)/+(vivado). Папка +vivado действует как репозиторий IP. Эта папка содержит подпапки, соответствующие модулям IP, таким как AXI4StoHDMI и HDMItoAXIS. Папка также содержит функцию MATLAB hdlcoder_video_iplist. Используя эту функцию, задайте модули IP, чтобы добавить к исходному проекту.

Та же папка репозитория может иметь несколько функций MATLAB. Эти данные показывают две функции MATLAB, hdlcoder_video1_iplist и hdlcoder_video2_list, в папке +vivado. Функции могут совместно использовать те же модули IP или указать на различные модули IP в репозитории.

Примечание

Если вашим инструментом синтеза является Xilinx Vivado, модули IP в папке репозитория могут быть в формате zip-файла.

Задайте функцию списка IP

Создайте функцию MATLAB, которая задает модули IP, чтобы добавить к исходному проекту. Сохраните эту функцию в папке репозитория IP. Для имени функции используйте соглашение о присвоении имен hdlcoder_<specific_use>_iplist. Этот пример использует hdlcoder_video_iplist в качестве имени функции, потому что это предназначается для видео приложений. Используя эту функцию, задайте, хотите ли вы добавить все или некоторые модули IP в репозитории к проекту исходного проекта. Чтобы добавить все модули IP, используйте массив пустой ячейки для ipList. Этот код MATLAB показывает, как добавить все модули IP в репозитории к исходному проекту.

function [ ipList ] = hdlcoder_video_iplist(  )
% All IP modules in the repository folder.

ipList = {};

Чтобы добавить некоторые модули IP, которые находятся в папке, задайте модули IP как массив ячеек из символьных векторов. Этот код MATLAB задает IP AXI4StoHDMI и IP HDMItoAXIS как модули IP, чтобы добавить к вашему пользовательскому исходному проекту.
function [ ipList ] = hdlcoder_video_iplist(  )
% AXI4StoHDMI and HDMItoAXIS IP in the repository folder.

ipList = {'AXI4StoHDMI','HDMItoAXIS'};

Добавьте функцию списка IP в проект исходного проекта

Используя метод addIPRepository класса hdlcoder.ReferenceDesign, добавьте функцию списка IP в свой пользовательский исходный проект. Этот исходный проект в качестве примера добавляет hdlcoder_video_iplist в пользовательский исходный проект My Reference Design.

function hRD = plugin_rd()
% Reference design definition

% Construct reference design object
hRD = hdlcoder.ReferenceDesign('SynthesisTool', 'Xilinx Vivado');
hRD.ReferenceDesignName = 'My Reference Design';
hRD.BoardName = 'ZedBoard'

% Tool information
hRD.SupportedToolVersion = {'2016.2'};

%% Add custom design files
hRD.addCustomVivadoDesign( ...
    'CustomBlockDesignTcl', 'system_top.tcl', ...
    'VivadoBoardPart',      'em.avnet.com:zed:part0:1.0');

% Add IP Repository
hRD.addIPRepository(...
    'IPListFunction', 'mathworks.hdlcoder.vivado.hdlcoder_video_iplist',
		 'NotExistMessage', 'IP repository not found');

% ...
% ...

Чтобы использовать модули IP, когда генератор кода создаст проект, откройте HDL Workflow Advisor и запустите рабочий процесс IP Core Generation к задаче Create Project. После выполнения этой задачи вы видите подпапки модуля IP в репозитории, скопированном в папку ipcore проекта. CustomBlockDesignTcl может затем использовать эти модули IP.

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

|

Связанные примеры

Больше о