Когда вы создаете свой пользовательский исходный проект, вам могут потребоваться пользовательские IP-модули, которые не поставляются с Altera® Qsys или Xilinx® Vivado®. Чтобы использовать пользовательские IP-модули, создайте собственную папку репозитория IP, которая содержит подпапки IP-модулей. The 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 Workflow Advisor и запустите IP Core Generation
рабочий процесс к Create Project задаче. После выполнения этой задачи в репозитории можно увидеть подпапки IP-модулей, скопированные в ipcore
папка проекта. The CustomBlockDesignTcl
затем можно использовать эти IP-модули.
hdlcoder.Board
| hdlcoder.ReferenceDesign