Задайте и добавьте репозиторий 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. Папка также содержит hdlcoder_video_iplist Функция MATLAB. Используя эту функцию, задайте модули 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 не должны быть расположены в пути относительно функции списка IP. Репозиторий IP может также быть расположен вне пути MATLAB.

Если вы не задаете корневой каталог, функция ищет модули IP относительно своего местоположения.

function [ipList, rootDir] = hdlcoder_video_iplist( )
% All IP modules with a root directory.

ipList = {};

Чтобы добавить некоторые модули IP, которые находятся в папке, задайте модули IP как массив ячеек из символьных векторов. Этот код MATLAB задает AXI4StoHDMI IP и HDMItoAXIS IP как модули 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.

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

|

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

Больше о