В этом примере показано, как моделировать логику предварительной обработки, которая принимает входной сигнал камеры. Вы реализуете его на плате Zynq ® Ultrascale+™ MPSoC ZCU102, используя пользовательский эталонный дизайн видео, который имеет интегрированное ядро IP процессора глубокого обучения для классификации объектов. В этом примере используется поток операций совместного проектирования HDL Coder™ HW/SW. Для этого примера необходимо:
Глубокое обучение HDL Toolbox™
Пакет поддержки панели инструментов глубокого обучения HDL для устройств Xilinx FPGA и SoC
Глубокое обучение Toolbox™
Coder™ ЛПВП
Simulink™
В этом примере выполняется следующее:
Моделирование логики предварительной обработки, которая обрабатывает ввод с камеры в реальном времени для IP-ядра процессора глубокого обучения. Обработанный видеокадр передается во внешнюю память DDR на плате FPGA.
Моделирование модели в Simulink ® для проверки функциональности алгоритма.
Реализуйте логику предварительной обработки на плате ZCU102, используя пользовательский эталонный дизайн видео, который включает сформированное ядро IP процессора глубокого обучения.
Индивидуальная проверка логики предварительной обработки на плате FPGA.
Индивидуальная проверка функциональности IP-ядра процессора глубокого обучения с помощью процесса создания прототипов Toolbox™ HDL для глубокого обучения.
Развертывание и проверка всей системы на плате ZCU102.
Этот рисунок представляет собой высокоуровневую архитектурную схему системы. Результат предсказания сети глубокого обучения посылается в процессор ARM. Процессор ARM аннотирует предсказание сети глубокого обучения на выходной видеокадр.

Цель этой системы состоит в том, чтобы получать входной сигнал камеры в режиме реального времени через вход HDMI дочерней платы FMC на плате ZCU102. Логика предварительной обработки в Simulink ® позволяет выбрать и изменить размер области, представляющей интерес (ROI). Затем обработанный кадр изображения передается на IP-ядро процессора глубокого обучения для выполнения классификации изображений с использованием сети глубокого обучения.
Моделирование логики предварительной обработки для обработки ввода с камеры в реальном времени для сети глубокого обучения и передачи видеокадра во внешнюю память DDR на плате FPGA. Эта логика моделируется в подсистеме DUT:
Логика выбора кадра изображения, позволяющая использовать курсор для выбора ROI из кадра входящей камеры. Выбранный ROI является входом в сеть глубокого обучения.
Логика изменения размера изображения, которая изменяет размер изображения ROI в соответствии с размером входного изображения сети глубокого обучения.
AXI4 Логика главного интерфейса, которая отправляет кадр изображения с измененным размером во внешнюю память DDR, где IP-ядро процессора глубокого обучения считывает входные данные. Для моделирования главного интерфейса AXI4 см. Проект модели для создания главного интерфейса AXI4 (кодер HDL).
На этом рисунке показана модель Simulink ® для логики предварительной обработки DUT.

Чтобы осуществить модель логики предварительной обработки на правлении ZCU102 SoC, создайте справочный дизайн HDL Coder™ в Vivado™, который получает живой вход камеры и передает обработанные видео данные к глубокому ядру процессора IP изучения. Сведения о создании пользовательского эталонного дизайна видео, интегрирующего IP-ядро процессора глубокого обучения, см. в разделе Разработка эталонного дизайна для интеграции камеры в реальном времени с IP-ядром процессора глубокого обучения.
Запустите мастер рабочего процесса HDL Coder HDL и используйте рабочий процесс совместного проектирования аппаратного и программного обеспечения Zynq для развертывания логической модели предварительной обработки на оборудовании Zynq. Этот поток операций является стандартным потоком операций кодера HDL. В этом примере единственное отличие состоит в том, что эта эталонная конструкция содержит сформированное IP-ядро процессора глубокого обучения. Дополнительные сведения см. в примере Начало работы с платформой Targeting Xilinx Zynq (кодер HDL).
1. Запустите помощник по рабочим процессам HDL из модели, щелкнув правой кнопкой мыши значок DLPreProcess Подсистема DUT и выбор рабочего процесса HDL Advisor.
В задаче 1.1 генерация ядра IP выбирается для целевого рабочего процесса, а ZCU102-FMC-HDMI-CAM - для целевой платформы.

В задаче 1.2 для эталонного проектирования выбран HDMI RGB с процессором DL.

В задаче 1.3 загружается таблица интерфейса целевой платформы, как показано на следующем снимке экрана. Здесь можно сопоставить порты подсистемы DUT с интерфейсами в эталонном проекте.

2. Щелкните правой кнопкой мыши задачу 3.2, создайте код RTL и ядро IP, а затем выберите Выполнить до выбранной задачи. Сопоставление адресов регистров и другую документацию по IP-ядру можно найти в созданном отчете по IP-ядру.
В помощнике по рабочим процессам HDL выполните задачи интеграции встроенных систем для развертывания созданного IP-ядра HDL на оборудовании Zynq.
1. Запустите задачу 4.1 «Создание проекта». Эта задача вставляет сгенерированное ядро IP в RGB HDMI с эталонной конструкцией процессора DL. Чтобы создать эталонный дизайн, который интегрирует IP-ядро процессора глубокого обучения, см. раздел Разработка эталонного дизайна для интеграции Live Camera с IP-ядром процессора глубокого обучения.
2. Щелкните ссылку на панели «Результат», чтобы открыть созданный проект Vivado. В инструменте Vivado нажмите Open Block Design, чтобы просмотреть схему проектирования Zynq, которая включает в себя сгенерированное ядро HDL IP предварительной обработки, ядро IP процессора глубокого обучения и процессор Zynq.

3. В помощнике по рабочим процессам HDL выполните остальные задачи для создания модели интерфейса программного обеспечения, а также создайте и загрузите битовый поток FPGA.
Для проверки интегрированной эталонной конструкции, включающей сгенерированное IP-ядро логики предварительной обработки, IP-ядро процессора глубокого обучения и процессор Zynq:
Индивидуальная проверка логики предварительной обработки на плате FPGA.
Индивидуальная проверка функциональности IP-ядра процессора глубокого обучения с помощью процесса создания прототипов Toolbox™ HDL для глубокого обучения.
Развертывание и проверка всей системы на плате ZCU102.
Развертывание всей системы в виде исполняемого файла на карте SD на плате ZCU102.
1. Используя стандартный рабочий процесс совместного проектирования оборудования/программного обеспечения HDL Coder, можно проверить, что логика предварительной обработки работает так, как ожидалось в FPGA. Помощник по рабочим процессам HDL генерирует подсистему интерфейса программного обеспечения во время задачи 4.2 Создание модели интерфейса программного обеспечения, которую можно использовать в модели программного обеспечения для взаимодействия с логикой FPGA. На основе модели программного обеспечения можно настроить и проверить конструкцию FPGA на оборудовании с помощью Simulink External Mode. Поручите логике предварительной обработки FPGA захватить входной кадр и отправить его во внешнюю память DDR.
Затем можно использовать fpga объект для создания соединения MATLAB с платой ZCU102 и считывания содержимого внешней памяти DDR в MATLAB для проверки. для использования fpga см. раздел Создание сценария интерфейса программного обеспечения для управления и быстрого прототипа IP-ядра HDL (кодера HDL).

2. Сформированное ядро IP процессора глубокого обучения имеет интерфейсы Ethernet и JTAG для связи в сгенерированном битовом потоке. Вы можете отдельно проверить IP-ядро процессора глубокого обучения с помощью dlhdl.Workflow объект.
3. После индивидуальной проверки логического IP-ядра предварительной обработки и IP-ядра процессора глубокого обучения можно выполнить прототип всей интегрированной системы на плате FPGA. Используя режим Simulink External, проинструктируйте логику предварительной обработки FPGA отправить обработанный кадр входного изображения в буфер DDR, проинструктировать IP-ядро процессора глубокого обучения считывать из того же буфера DDR и выполнить предсказание.
IP-ядро процессора глубокого обучения отправляет результат обратно во внешнюю память DDR. Программная модель, выполняемая на ARM процессоре, извлекает результат прогнозирования и аннотирует прогноз на выходном видеопотоке. Этот снимок экрана показывает, что вы можете прочитать результат прогнозирования процессора ARM с помощью последовательного соединения.

На этом снимке экрана показан кадр, захваченный из выходного видеопотока, который включает в себя выбор окупаемости инвестиций и аннотированный результат прогнозирования.

4. После выполнения всех шагов проверки вручную разверните весь эталонный дизайн в качестве исполняемого файла на карте SD на плате ZCU102 с помощью процессора ARM. После завершения ручного развертывания подключение MATLAB к плате FPGA не требуется для управления эталонной конструкцией.