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

Когда вы создаете свой пользовательский исходный проект, вам могут потребоваться пользовательские IP-модули, которые не поставляются с Altera® Qsys или Xilinx® Vivado®. Чтобы использовать пользовательские IP-модули, создайте собственную папку репозитория IP, которая содержит подпапки IP-модулей. The 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 файла.

Определите функцию списка

Создайте функцию 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 папка проекта. The CustomBlockDesignTcl затем можно использовать эти IP-модули.

См. также

|

Похожие примеры

Подробнее о