Когда вы создаете свой пользовательский исходный проект, вы можете потребовать пользовательских модулей IP, которые не идут с Altera® Qsys или Xilinx® Vivado®. Чтобы использовать пользовательские модули IP, создайте свою собственную папку репозитория IP, которая содержит подпапки модуля IP. Рабочий процесс IP Core Generation
затем использует эти пользовательские модули 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-файла.
Создайте функцию 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 = {};
AXI4StoHDMI
и IP HDMItoAXIS
как модули IP, чтобы добавить к вашему пользовательскому исходному проекту.function [ ipList ] = hdlcoder_video_iplist( ) % AXI4StoHDMI and HDMItoAXIS IP in the repository folder. ipList = {'AXI4StoHDMI','HDMItoAXIS'};
Используя метод 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.
hdlcoder.Board
| hdlcoder.ReferenceDesign