IP, кэширующийся для более быстрого синтеза исходного проекта

Для целевых платформ, которые поддерживают рабочий процесс IP Core Generation с Xilinx® Vivado®, можно использовать кэширование IP. Кэширование IP уменьшает время синтеза исходных проектов, которые имеют много модулей IP или которые имеют модули IP со значительным временем выполнения синтеза. Когда вы включаете кэширование IP, проект Vivado использует рабочий процесс из контекста (OOC). Этот рабочий процесс синтезирует IP в исходном проекте из контекста из проекта верхнего уровня. Рабочий процесс OOC ускоряет выполнения проекта, потому что инструмент синтеза снова использует кэш IP и не должен повторно синтезировать IP, когда вы запускаете рабочий процесс.

Если вы не включаете кэширование IP, по умолчанию, проект Vivado использует глобальный поток синтеза. Этот поток синтезирует модули IP в исходном проекте наряду с проектом верхнего уровня. В последующих выполнениях проекта этот рабочий процесс повторно синтезирует модули IP в исходном проекте.

Требования для Использования кэширования IP

  • Target workflow:

    • IP Core Generation

    • Simulink Real-Time FPGA I/O для плат Speedgoat то использование Xilinx Vivado

  • Synthesis tool: Xilinx Vivado

Что такое кэш IP?

Кэш IP является папкой, которая состоит из подпапок, соответствующих модулям IP в исходном проекте. Каждая подпапка организована индексом хеша, который соответствует имени файла. Для каждого модуля IP подпапка состоит из файлов Экземпляра ядра Xilinx (XCI), Контрольная точка Проекта (DCP) файлы и файлы журнала синтеза. DCP является контейнерным файлом, который содержит синтезируемые списки соединений, файлы тупика HDL черного квадрата и выходные ограничения часов.

Чтобы снова использовать кэш IP, когда вы запускаете рабочий процесс, синтез IP должен совпадать с индексом хеша в кэше IP. Индексное соответствие хеша соответствует хиту в кэше IP. Чтобы поразить кэш IP в последующих выполнениях, используйте то же самое:

  • Часть, язык и настройки целевой платформы

  • Версия исходного проекта

  • Целевая частота

  • Папка hdl_prj, когда вы создали кэш IP

Как работы кэширования IP

Когда вы включаете кэширование IP, проект Xilinx Vivado использует рабочий процесс из контекста (OOC). Процесс проектирования OOC является восходящим рабочим процессом что:

  1. Синтезирует модули IP в исходном проекте отдельно из проекта верхнего уровня. Синтез вывод является Контрольной точкой Проекта (DCP) файл.

  2. Синтезирует ваш проект верхнего уровня при обработке IP в исходном проекте как черный квадрат при помощи файлов тупика HDL, которым предоставляют DCP.

  3. Реализует ваш проект на целевом устройстве путем соединения списков соединений от файлов контрольной точки проекта IP со списком соединений верхнего уровня.

Для больших исходных проектов поток OOC улучшает время выполнения синтеза, потому что вы не должны повторно синтезировать IP, когда вы изменяете свой проект и запускаете рабочий процесс. Чтобы узнать больше о рабочем процессе OOC и опциях синтеза IP, обратитесь к документации Xilinx.

Включите кэширование IP

Прежде чем вы включите кэширование IP, зададите IP Core Generation как целевой рабочий процесс, и затем зададите настройки целевой платформы. Включить кэширование IP:

  • От HDL Workflow Advisor, в задаче Create Project, устанавливают флажок Enable IP caching.

  • Из командной строки используйте свойство EnableIPCaching класса hdlcoder.WorkflowConfig. Чтобы использовать это свойство, создайте объект класса hdlcoder.WorkflowConfig или экспортируйте настройки HDL Workflow Advisor в скрипт.

    hWC = hdlcoder.WorkflowConfig('SynthesisTool','Xilinx Vivado','TargetWorkflow','IP Core Generation');
    % ...
    % ...
    hWC.EnableIPCaching = true;
    
    

IP, кэширующийся в исходных проектах HDL Coder

Используйте IP, кэширующийся для больших исходных проектов, которые имеют значительное время синтеза. Например, исходный проект HDL Coder™ Default video system (requires HDMI FMC module) является потенциальным кандидатом на кэширование IP.

Примечание

Плата Speedgoat IO333-325K, которую вы используете с рабочим процессом Simulink Real-Time FPGA I/O, идет с кэшем IP. Первый раз, когда вы запускаете рабочий процесс, генератор кода, снова использует этот кэш IP, который улучшает время синтеза исходного проекта.

Чтобы включить кэширование IP, в HDL Workflow Advisor, задают IP Core Generation как целевой рабочий процесс, и затем задают настройки целевой платформы. Прежде чем вы запустите рабочий процесс впервые:

  1. В задаче Create Project установите флажок Enable IP caching.

    Когда вы запускаете эту задачу, рабочий процесс создает пустую папку кэша IP. Вы видите папку ipcache в пути hdl_prj/vivado_ip_prj.

  2. Запустите задачу Build FPGA Bitstream.

    Эта задача заполняет папку кэша IP с журналами синтеза и файлами контрольной точки проекта, сгенерированными для ядра IP HDL и других блоков IP в исходном проекте. Когда эта задача запустилась успешно, вы видите сгенерированные файлы в папке ipcache.

Когда вы запускаете рабочий процесс IP Core Generation во второй раз в задаче Build FPGA Bitstream, вы видите улучшение во время выполнения задачи. Убедитесь, что вы используете те же настройки IP и папку hdl_prj как первый раз, когда вы запустили рабочий процесс. Когда эта задача запустилась успешно, чтобы видеть, снова использовал ли ваш рабочий процесс кэш IP, откройте файл workflow_task_buildFPGABitstream.log.

Этот фрагмент кода показывает, что проект Vivado запускает максимальное количество заданий, чтобы синтезировать проект и снова использовать модули IP в папке кэша IP. Вы видите, что cacheID модулей IP совпадает с именами файлов подпапок в папке ipcache.

...
# reset_run impl_1
# reset_run synth_1
# launch_runs -jobs 4 synth_1
...
...
...
INFO: [IP_Flow 19-4760] Using cached IP synthesis design for IP system_top_RGBtoYCbCr_0_0, cacheID = 3575924730488800
INFO: [IP_Flow 19-4760] Using cached IP synthesis design for IP system_top_YCbCrtoRGB_0_0, cacheID = e71459f41e26e141
INFO: [IP_Flow 19-4760] Using cached IP synthesis design for IP system_top_xbar_0, cacheID = d0f0971cb77bcaed
INFO: [IP_Flow 19-4760] Using cached IP synthesis design for IP system_top_axis2hdmi_0_0, cacheID = 7601a322f9fd0ec4
...

IP, кэширующийся в пользовательских исходных проектах

Если вы используете свой собственный исходный проект, кэширование IP может ускорить синтез исходного проекта, когда вы запускаете рабочий процесс впервые. Чтобы снова использовать кэш IP, создайте zip-файл кэша IP, и затем убедитесь, что файл определения исходного проекта указывает на этот zip-файл.

Создать zip-файл кэша IP:

  1. Откройте HDL Workflow Advisor для любой модели Simulink®, которая имеет подсистему DUT, и затем запустите рабочий процесс IP Core Generation к задаче Generate RTL Code and IP Core.

  2. В задаче Create Project установите флажок Enable IP caching, и затем нажмите Run This Task. Эта задача создает пустую папку кэша IP.

  3. Запустите рабочий процесс к задаче Build FPGA Bitstream. Эта задача заполняет кэш IP с ядром IP HDL и модулями IP исходного проекта.

  4. В папке кэша IP удалите файлы ядра IP, сгенерированные для DUT. Извлеките остающиеся файлы от этой папки в zip-файл, назовите ее ipcache.zip, и затем сохраните файл в папке исходного проекта.

Чтобы снова использовать кэш IP, в файле определения исходного проекта plugin_rd.m, используют свойство IPCacheZipFile класса hdlcoder.ReferenceDesign. При помощи того свойства вы добавляете файл ipcache.zip в проект Xilinx Vivado.

function hRD = plugin_rd()
% Reference design definition

hRD = hdlcoder.ReferenceDesign('SynthesisTool', 'Xilinx Vivado');
% ...
% ...
hRD.IPCacheZipFile = 'ipcache.zip';

Когда вы используете рабочий процесс, чтобы предназначаться для вашего пользовательского исходного проекта, генератор кода устанавливает флажок Enable IP caching. Чтобы видеть улучшение во время синтеза, запустите задачу Build FPGA Bitstream.

Смотрите также

|

Похожие темы