IP-кэширование для более быстрого синтеза исходного проекта

Для целевых платформ, поддерживающих IP Core Generation рабочий процесс с Xilinx® Vivado®можно использовать кэширование IP. IP-кэширование сокращает время синтеза исходных проектов, которые имеют много IP-модулей или имеют IP-модули со значительным временем синтеза запуска. Когда вы включаете кэширование IP, проект Vivado использует вне контекста (OOC) рабочий процесс. Этот рабочий процесс синтезирует IP-адрес в исходный проект вне контекста из проекта верхнего уровня. Рабочий процесс OOC ускоряет запуски проекта, поскольку инструмент синтеза повторно использует кэш и не должен повторно синтезировать 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 Core Instance (XCI), файлов Design Checkpoint (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.

Примечание

The 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 папка как первый раз, когда вы запускали рабочий процесс. Когда эта задача будет успешно запущена, чтобы увидеть, повторно ли ваш рабочий процесс использовал кэш, откройте 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-файл.

Чтобы создать IP- кэша zip файла:

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

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

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

  4. В папке кэша удалите файлы ядра 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 задачу.

См. также

|

Похожие темы