- PVSM.RU - https://www.pvsm.ru -
Давайте посмотрим вместе, что есть на этой плате и какие возможности предоставляет разработчикам данный отладочный набор.
Кому интересно – добро пожаловать под кат!

Для начала коснусь нетехнических особенностей данной платы. Данная отладка стоит [1] просто космических денег – около 400 тысяч рублей. Такая стоимость явно неподъёмна для простых энтузиастов и подходит лишь для профессиональной разработки или для компаний, которые готовы выделить достаточно денег на приобретение.
Но мне показалось, что эта плата даёт возможности соразмерно ее стоимости. Рассмотрим её возможные применения:
Поковыряв документацию я нашел целую кучу изображений с применением данной платы. Среди них:
– обнаружение машин:

– обнаружение людей:

– детекция огня:

– обнаружение проблем и дефектов:

– обнаружение нарушения целостности проводников на PCB:

Вот бы иметь время все эти примеры раскурить и написать статьи на тему создания подобных проектов 😀. Но идём дальше.
Рассмотрим, используя изображения с сайта продавца, комплект поставки этой платы. Отладочный комплект ALINX AXU15EG состоит из двух основных компонент: SoM и материнская плата с интерфейсами.
В качестве ключевого узла SoM выступает SoC Zynq UltraScale+ MPSoC, XCZU15EG-2FFVB1156I с классом скорости 2, который содержит в себе четырехъядерный процессор с ядрами Cortex-A53 и двухъядерный Cortex-R5F для реалтайм вычислений и ПЛИС UltraScale с 746550 System Logic Cells, 682560 Flip-Flops, 274080 CLB LUT и многим другим. В общем, прям жЫр 🙂.
В сборе это хозяйство выглядит следующим образом:

Так выглядит SoM модуль с обеих сторон:


Помимо этого в комплекте имеется JTAG отладчик Alinx AL321 на чипе FTDI FT232H, который позволяет достаточно быстро осуществлять операции отладки в отличие от достаточно медленных чипов, которые идут в Platform Cable USB, типа DLC9LP.
Выглядит он вот так и поставляется с microUSB-кабелем и кабелем подключения к отладочному разъёму:

Для питания платы используется блок питания на +12V DC на 36W (3A):

Для загрузки ПО и битстрима идет в комплекте MicroSD Flash карта, может быть поставлена и на 16 Гб и на 32 Гб. Мне повезло, и в этом комплекте была флешка на 32Гб. Хотя для работы на начальном этапе более чем достаточно и 4 Гб флешки:

Плюсом ещё докладывают Card Reader для microSD карт:

В качестве ещё одного элемента поставки можно отдельно отметить систему охлаждения основного чипа в виде 30W Fan Cooler:

В качестве приятного дополнения и защиты от случайных механических воздействий имеется в комплекте плексигласовый защитный корпус:

Обратная сторона платы, к слову, выглядит следующим образом:

Внимательные читатели увидят на шелкографии надпись AXU9EGB 1.1. Но пусть не смущает эта надпись, несущая плата, видимо, используется во многих комплектах поставки.
Помимо этого у Alinx можно приобрести разные модули, которые устанавливаются в 40-пиновый разъем GPIO:
— Dual Channel 14bit 125Msps DA BNC Analog Output Module AD9767;

— Multi-channel 16 bit 200ksps Synchronous Sampling AD Module AD7606;

— Dual-channel 65MSPS 12bit AD analog to digital signal conversion module AD9238;

— 7-inch Touch Screen Module;

— модуль для установки в MIPI-интерфейс в виде 5MP камеры на контроллере OV5640;

Также продаются разные модули для установки на FMC-разъем, среди которых:
— Alinx FH1223 FMC HPC to 4-Channel SFP Optical Fiber Interface Adapter Card;

— Alinx FL2121 4-way 1000M Gigabit Ethernet LPC;

— Alinx FMC HDMI CARD Daughter Board Input Output 1080p;

— Alinx FL1404 FMC to 4-way MIPI module LPC interface;

— Alinx FL9613 FMC LPC to 4-Channel AD 12-bit 250 MSPS;

— Alinx FH9712 16 channel GMSL2/GMSL1 autopilot camera acquisition module MAX96712;

— Alinx FL1010 FMC LPC Interface to 40-Pin Expansion Ports;

— Alinx FL0214 FMC LPC to Dual Lens MIPI 1.3 Megapixel IMX214 CMOS Camera;

— Alinx FH1226 FMC HPC to Cameralink Adapter;

…и многие другие, их можно найти на сайте Alinx или на Aliexpress. Как говорится, любой каприз за ваши деньги. Возможностей для реализации огромного спектра задач – целая уйма.
Широкими мазками опишу возможности центрального элемента данной отладки. Вот так возможности Zynq MPSoC отразили Xilinx в своих документах на данный чип:

Если рассматривать чип с точки зрения внутреннего технического устройства, то приводится следующая блок-схема:

Рассмотрим подробнее встроенный четырехъядерный ARM-процессор, и я приведу несколько его отличительных особенностей:
Отдельной фишкой данного SoC является наличие двухъядерного процессора Cortex-R5F с Real-Time Processing Unit (RPU):
Помимо этого присутствует On-Chip Memory:
Для графики на чипе есть отдельный GPU ARM Mali-400 MP2 с частотой до 600 MHz:
Контроллеры памяти:
Также на борту имеется поддержка последовательных трансиверов:
Очень богат данный чип на выделенные периферийные устройства ввода-вывода и интерфейсы:
Для реализации интерконнекта используется ARM AMBA AXI4-based контроллер. Ну и многое другое.
Тут тоже очень богато. Перечислю доступные ресурсы, предоставляемые ПЛИС:
И многое другое, что можно очень долго перечислять…
Теперь настало время препарировать схематик SoM-а и подробнее посмотреть, что на нём есть и какие компоненты установлены. Начнем с того, что он состоит из 4-ёх 120 пиновых коннекторов, которые установлены так, чтобы SoM было невозможно воткнуть на плату в неправильном положении. Освежим в воспоминаниях картинку:

Теперь подробнее рассмотрим верхнюю часть SoM-а:

Для того, чтобы сформировать набор разных напряжений, на SoMе установлен PMIC-котроллер TPS6508640RSKR в связке с большим количеством обвязки в виде линейных, синхронных, импульсных преобразователей и большого числа пассивных компонентов:

В целом всё достаточно просто, потом можете посмотреть самостоятельно схематик и сделать свои выводы.
На SoM установлен основной осциллятор 33.3333 MHz и низкочастотный генератор 32.768 kHz для RTC:

И дополнительно на SoM имеется генератор дифференциального тактового сигнала в 200MHz:

В целом достаточно стандартно и под стать всей периферии и сложности самой платы.
На SoM-е установлено 6 чипов DDR4, часть из которых подключена к PS-части, а другая часть к PL. Если быть несколько конкретнее то:
Максимальная рабочая скорость DDR4, подключенной к PS, может достигать 1200 МГц со скоростью передачи данных в 2400 Мбит/с. Подключается эта память к интерфейсу памяти BANK504 PS.
Максимальная скорость DDR4 SDRAM, подключенная к PL, также может достигать 1200 МГц с такой же скоростью передачи данных. И подключается эта память к BANK64 в PL.
Если рассматривать постоянную память, на SoM установлено следующее:
Как я уже упоминал выше, плата состоит из двух основных компонентов – SoM c Zynq и несущей платой, которая предоставляет возможность подключения периферийных устройств и сетевых подключений.
Перечислю все основные возможности, которые предоставляет несущая плата:
Помимо этого на плате имеется служебный переключатель для выбора источника загрузки:

Фото переключателя на плате:

А также имеется 6 SMA интерфейсов для подключения GTH-трансивера.
Проанализировав состав платы, я накидал схему, отображающую всё, что есть на плате:

По порядку рассмотрим каждый из пунктов чуть подробнее.
Плата запитывается от 12В через самый обычный штыревой разъём, подойдёт любой качественный блок питания с выходным напряжением 12В и мощностью 36W.

Помимо этого на плате имеется несколько преобразователей из 12V в целевые напряжения. Из 12V в 5V:

Из 12V в 3.3V:

И из 12V в 1.8V:

Плюсом к этому на плате имеются и тест-поинты для контроля качества питания.
Очень интересным компонентом на плате является программируемый источник тактовой частоты Si5332BD11025-GM2, который позволяет генерировать весь необходимый спектр тактовых частот для всей необходимой периферии:

Для отладочных целей на плате имеется стандартный для всех отладок JTAG-интерфейс для подключения отладчика:

Данная плата также предоставляет обширные возможности для реализации сетевых сценариев. В первую очередь обратим внимание на два медных Ethernet-разъема. Первый – подключен к PS-части Zynq. Линии MDIO из раъема идут к PHY Ethernet от Realtek RTL8211F. От PHY к PS идёт подключение через интерфейс RGMII:

Второй подключен к программируемой логике по тому же принципу с тем же PHY Ethernet-контроллером:

Помимо этого на плате установлен разъём для подключения 2-ух SFP/SFP+ модулей. Оба SFP-разъема подключаются к PL-логике устройства:

Помимо этого имеется ещё генератор дифференциального тактового сигнала для работы трансиверов SiT9121AI-2B1-33E125.000000 с выходной тактовой частотой в 125МГц:

Помимо вполне стандартных сетевых интерфейсов на плате имеется подключение через SMA-разъемы к GTH-интерфейсам с возможностью передачи данных до 100 Гбит/с:

На плате имеется FMC-разъем для подключения большого количества различных модулей, которые я перечислил в начале статьи. Схематик ввиду большого его размера – прикладывать тут не буду. Приведу лишь фото интерфейса:

В части USB-подключений плата также предоставляет целую кучу возможностей. На плате установлен USB3.1 хаб GL3523T-QFN76, который подключен к соответствующей части PS-части Zynq MPSoC:

К хабу подключены 2 USB3.0 и 2 USB2.0 разъема. Правда, на схеме все 4 почему-то обозначены как USB3.0-разъема:

Помимо этого на плате установлен USB2.0 PHY контроллер USB3320C-EZK-TR, который подключен к USB-хабу:

На плате имеется SD-разъём для подключения внешнего накопителя данных или источника загрузки. Разъём на плате подключается к Zynq, осуществляется через расширитель портов SDIO с преобразователем уровня логического сигнала 1TXS02612RTWR:

Ещё одна интересная возможность, которая предоставляется платой – это возможность подключить до 2-х SATA устройств, будь то SSD или HDD:


Приятная особенность платы – наличие M.2 разъёма с ключом М. Сюда возможно подключить любое подходящее PCI-e устройство, например, SSD-диск подходящего форм-фактора:

Для подключения внешнего дисплея вместо HDMI на плате использован интерфейс Display Port:




Для подключения внешних мультимедиа-устройств, будь то дисплей или камера – на плате предусмотрен интерфейс MIPI:

В случае, если плата разрабатывается под какие-либо automotive-применения, – выведен интерфейс CAN с подключением в клеммный разъем HT3.96-4P к контроллеру SN65HVD232 через преобразователь логических уровней TXS0102DCU. Сигнальные линии подключаются к PS-части Zynq:

Для промышленных применений на плате реализован вывод интерфейса RS-485 через приемопередатчик MAX3485ESA. Подключается к PL-части Zynq:


Для случаев, когда потребуется мониторинг внешней температуры, – на плате имеется I2C температурный сенсор LM75DM-33R2, который подключается к PS-части Zynq:

На плате имеется батарейный держатель, который снабжает соответствующий банк питания в PS-части:

Помимо всего прочего на плате имеется I2C EEPROM 24LC04 объёмом 4 Кбит, которая подключена к PS-части устройства:

Для коммуникации с внешними устройствами и работы с консолью Zynq – на плате имеется два интерфейса UART: первый подключен к PS-части устройства, второй подключен к PL-части устройства. В обоих случаях подключение осуществляется с использованием USB-to-UART конвертера CP2102N-A01-GQFN28R по miniUSB-порту:

К PS-части UART-интерфейс подключается через преобразователь логических уровней 3.3V-to-1.8V TXS0102DCU:

В дополнение к широчайшим возможностям отладки – на плате имеется стандартная 40-пиновая гребенка с GPIO-пинами:

Для того, чтобы реализовать простую индикацию и базовое взаимодействие с пользователем – на плате имеется несколько LED-индикаторов и кнопок.
Первый – индикатор питания 3.3V и второй LED подключен к PS-части:

Имеется второй LED-индикатор, который подключен к PS-части:

Третий LED-индикатор подключен к PL-части:

Четвёртый, служебный, индикатор используется для того, чтобы обозначить, что загрузка bitstream в FPGA прошла успешно:

Плюсом к этому на плате расположено несколько кнопок. Первая – используется для включения питания платы, вторая – подключена к PL-части, а третья – подключена к PS-части:



В общем, достаточно стандартный набор. Теперь перейдём к рассмотрению того, что поставляется с платой в части примеров и SDK для работы с платой.
В комплекте с платой идёт архив размером 7.2 Гбайт, в котором представлено самое подробное описание отладки:
Если просто перечислить набор примеров, то получится примерно следующий список.
Примеры для работы с периферией из ПЛИС и baremetal-приложений в PS-части:
В комплекте также множество примеров работы с периферией из Linux:
В теории по каждому из этих примером можно было бы написать целую книгу или цикл статей. Данный BSP я выложил в своем телеграм-канале по Zynq [2].
Долго думал, чем завершить данный обзор. Плата, конечно, стоит очень дорого и обычному энтузиасту недоступна, но объём возможностей и ресурсов, которые она предоставляет в итоге, – точно соответствует её цене. Мне показалось интересным заглянуть за пределы доступного, поковырять что-то недоступное и предоставить это общественности. Возможно, чуть позже напишу статью по теме сборки Linux под Ultrascale+ потому что там своих граблей оказалось навалено невероятно много и всё оказалось не настолько тривиально, как в Zynq-7000. И есть пара кейсов на рассмотрение, связанных с PL Ethernet и AXI ENET, но это уже предмет отдельного разговора.
Спасибо, что дочитали до конца. До встречи в следующих статьях! 🙂
Автор: Андрей
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/timeweb_stat-i/391929
Ссылки в тексте:
[1] стоит: https://aliexpress.ru/item/1005005035623382.html
[2] своем телеграм-канале по Zynq: https://t.me/zynq7000
[3] Источник: https://habr.com/ru/companies/timeweb/articles/819029/?utm_source=habrahabr&utm_medium=rss&utm_campaign=819029
Нажмите здесь для печати.