exponenta event banner

Определение и добавление 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 и запустите IP Core Generation workflow-процесс к задаче «Создать проект». После выполнения этой задачи можно просмотреть вложенные папки IP-модулей в репозитории, скопированные в ipcore папку проекта. CustomBlockDesignTcl затем можно использовать эти IP-модули.

См. также

|

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

Подробнее