При создании пользовательского эталонного проекта могут потребоваться пользовательские 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. Папка также содержит 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-модулей относительно их расположения.
function [ipList, rootDir] = hdlcoder_video_iplist( ) % All IP modules with a root directory. ipList = {};
AXI4StoHDMI IP и HDMItoAXIS IP в качестве 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 и запустите IP Core Generation workflow-процесс к задаче «Создать проект». После выполнения этой задачи можно просмотреть вложенные папки IP-модулей в репозитории, скопированные в ipcore папку проекта. CustomBlockDesignTcl затем можно использовать эти IP-модули.
hdlcoder.Board | hdlcoder.ReferenceDesign