Что такое Zynq? Краткий обзор

В далеком 2011 году компания Xilinx представила свои первые микросхемы SoC (System On Chip) — Zynq-7000. SoC Zynq сочетает в себе программируемую логику, процессорный модуль и некоторую периферию. Статья не является максимально полным описанием SoC Zynq, а лишь отражает те или иные характеристики, с которыми пришлось столкнуться при разработке устройств на базе SoC Zynq.

Содержание


1 Общие сведения
2 Порты
2.1 MIO
2.2 EMIO
2.3 GP
2.4 HP
2.5 ACP
3 Периферия
3.1 Static Memory Controller
3.2 Quad-SPI Flash Controller
3.3 SD/SDIO Controller
3.4 General Purpose I/O (GPIO)
3.5 USB Host, Device, and OTG Controller
3.6 Gigabit Ethernet Controller
3.7 SPI Controller
3.8 CAN Controller
3.9 UART Controller
3.10 I2C Controller
3.11 XADC Interface
4 Процессорный модуль
5 Программируемая логика
6 Производительность
6.1 Теоретическая
6.2 Практическая
6.2.1 Обработка сетевых пакетов
6.2.2 Производительность порта HP
7 Передача данных между процессорным модулем и программируемой логикой
8 Загрузка SoC
9 Проблемы
10 Создание файла конфигурации
11 Заключение
12 Используемые источники

1 Общие сведения


vbl_otagie2jqpe47q_dax7eang.png
Структурная схема Zynq.

Каждый Zynq состоит из одного или двух ядер ARM Cortex-A9 (ARM v7), кэш L1 у каждого ядра свой, кэш L2 общий. Поддерживаемая оперативная память имеет стандарты DDR3, DDR3L, DDR2, LPDDR-2. Максимальный объем оперативной памяти равен 1 Гбайт (2 микросхемы по 4 Гбит). Максимальная тактовая частота оперативной памяти 525 МГц. Операционные системы: Standalone (bare-metal) и Petalinux. Процессорный модуль общается с внешним миром и программируемой логикой с помощью портов, объединенных в группы:

  • MIO (multiplexed I/O);
  • EMIO (extended multiplexed I/O);
  • GP (General-Purpose Ports);
  • HP (High-Performance Ports);
  • ACP (Accelerator coherency port).


mkw_az6o1ivawx4er02estlccje.png
Схема интерфейсов Zynq.
Буквы S и M у порта обозначают соответственно Slave и Master.

Так как, в одном корпусе Zynq реализованы и процессорный модуль и программируемая логика, есть выводы, которые относятся к процессорному модулю и выводы, которые относятся к программируемой логике.

2 Порты


2.1 MIO


Порты MIO подключены к выводам процессора. С помощью MIO могут быть подключены следующие периферийные устройства процессорного модуля:

  • USB-контроллер — 2 шт;
  • Gigabit Ethernet контроллер — 2 шт;
  • SD/SDIO контроллер — 2 шт;
  • UART — 2 шт;
  • CAN — 2 шт;
  • I2C — 2 шт;
  • SPI — 2 шт;
  • GPIO. Все выводы можно использовать как выводы общего назначения.


Так же, к MIO могут быть подключены следующие устройства памяти процессорного модуля:

  • QSPI контроллер;
  • ONFI контроллер;
  • SRAM/NOR контроллер.


Количество MIO портов равно 54 (за исключением некоторых микросхем в корпусе CLG225, там еще меньше). Поэтому все сразу включить не удастся. Для решения этой проблемы существует группа портов EMIO.

2.2 EMIO


EMIO представляет собой проброс периферийного устройства из процессорного модуля в программируемую логику и подключение периферийного устройства к выводам программируемой логики. Однако не все периферийные устройства можно перенести через EMIO, какие-то не переносятся совсем (USB), какие-то с изменением функциональности (Ethernet через EMIO имеет интерфейс GMII для подключения внешней микросхемы физического уровня). Между процессорным модулем и программируемой логикой по порту EMIO можно подключить 192 сигнала (64 входа и 128 выходов).

2.3 GP


Порты GP используют протокол Axi-Lite. Протокол подразумевает работу с данными шириной до 32 бит. За одну транзакцию осуществляется передача/прием данных, размером не больше 32 бит. Используется, как правило, для управления блоками в программируемой логике или при низкоскоростном обмене. Существует 2 порта Master и 2 порта Slave.

2.4 HP


Порты HP используют протокол AXI4. Протокол подразумевает работу с данными шириной 32 или 64 бита. Протокол поддерживает boost транзакции. За одну транзакцию осуществляется передача/прием произвольного размера данных. Используется, как правило, для организации высокоскоростного обмена данными между процессорным модулем и программируемой логикой. Существует 4 порта Slave.
j3nrn7veabski3bolthuv3qjes0.png
Путь передачи данных с помощью порта HP

2.5 ACP


Порт ACP использует протокол AXI4. Протокол подразумевает работу с данными 64 бита. Протокол поддерживает boost транзакции. За одну транзакцию осуществляется передача/прием произвольного размера данных. Используется, как правило, для организации высокоскоростного обмена данными между процессорным модулем и программируемой логикой, причем данные дополнительно помещаются в L2 кэш. Существует один порт Slave.
qlb3nncaqygizumdukp4zt4jwhw.png
Путь передачи данных с помощью порта ACP

3 Периферия


3.1 Static Memory Controller


SMC используется как контроллер памяти с технологией NAND или как контроллер памяти с параллельным интерфейсом. Поддерживает следующие типы памяти:

  • NAND flash;
  • NOR flash;
  • асинхронная SRAM.


Контроллер памяти с технологией NAND характеризуется следующими пунктами:

  • поддержка спецификации ONFI 1.0;
  • поддержка микросхем памяти емкостью до 1 Гбайт;
  • 1 бит ECC, считаемый аппаратно (используется в случае, если микросхема Flash-памяти не поддерживает ECC).
  • 8 или 16 линий обмена данными и одна линия выбора микросхемы (Chip Select);
  • асинхронный режим работы.


Контроллер памяти с параллельным интерфейсом характеризуется следующими пунктами:

  • 8 линий обмена данными;
  • 2 линии выбора микросхемы (Chip Select);
  • 25 линий адреса;
  • Асинхронный режим работы.


zi6lktjhu5zlkkprzi5tpkjhk80.png
Подключение микросхемы NOR Flash с параллельным интерфейсом

eavbn8osudvblkfef40cehsn99q.png
Подключение микросхемы SRAM с параллельным интерфейсом

uqntchojy0qope-rbduin72toym.png
Подключение микросхемы NAND Flash

3.2 Quad-SPI Flash Controller


Реализует контроллер SPI для подключения внешних микросхем памяти по технологии NOR. Основные характеристики:

  • поддержка Flash-памяти от Micron и Spansion;
  • настраиваемая ширина шины (1x, 2x, 4x, 8x);
  • тактовая частота до 100 МГц


Возможные режимы работы:

  • один сигнал выбора микросхемы (Chip Select / Slave Select), 4 двунаправленных линии для данных;
  • два сигнала выбора микросхемы (Chip Select / Slave Select), 8 двунаправленных линий для данных (параллельное включение);
  • два сигнала выбора микросхемы (Chip Select / Slave Select), двунаправленных 4 линии для данных (общее включение);
  • один сигнал выбора микросхемы (Chip Select / Slave Select), одна линия для передачи, одна линия для приема.


image
Одна микросхема, 4 двунаправленные линии для обмена данными

image
Две микросхемы, 8 двунаправленных линий обмена данными

image
Две микросхемы, 4 двунаправленные линии

image
Одна микросхема, каждая линия однонаправленная

3.3 SD/SDIO Controller


Заявлена поддержка устройств eMMC, но без гарантии, что все будет работать корректно (The Zynq-7000 SoC is expected to work with eMMC devices because the protocol is the same as SD, but this has not been extensively verified). Основные характеристики:

  • поддержка спецификации SD Host Controller 2.0;
  • поддержка карт стандартов SDHS и SDHC;
  • поддержка стандарта MMC3.31;
  • режим только Host;
  • максимальная тактовая частота 50 МГц;
  • режим SPI не поддерживается.


image
Подключение SD карты

3.4 General Purpose I/O (GPIO)


Каждый из портов можно использовать в следующе режиме:

  • вход;
  • выход;
  • выход с третьим состоянием;
  • вход, изменение данных на котором, генерирует прерывание.


Каждый порт можно перенастроить отдельно от других.
image
Структура блока GPIO

3.5 USB Host, Device, and OTG Controller


Требует внешнюю микросхему физического уровня с интерфейсом ULPI. Основные характеристики:

  • поддержка интерфейса 2.0;
  • до 12 конечных точек/ Endpoint (одна управляющая и 11 настраиваемых);
  • OTG 1.3;
  • все типы транзакций (Control, Bulk, Interrupt, Isochronous);
  • поддерживаются режимы OTG, USB host, USB device.


image
Подключение контроллера USB

3.6 Gigabit Ethernet Controller


Требует внешнюю микросхему физического уровня с интерфейсом RGMII. Основные характеристики:

  • поддержка работы со скоростями 10/100/1000 Мбит/с;
  • поддержка режимов Full duplex и half duplex;
  • подсчет контрольной суммы для IP, TCP, UDP в версиях протокола IPv4 и IPv6;
  • Jumbo Frames не поддерживаются;
  • Gigabit Half Duplex не поддерживается;
  • поддержка VLAN;
  • поддержка Wake-on-LAN.


У каждого контроллера есть свой интерфейс MDIO. Однако при использовании двух контроллеров нельзя использовать два MDIO интерфейса, поскольку они занимают одинаковые выводы MIO 52 и MIO 53. Возможно использование одного интерфейса, подключенного через MIO, а второго через EMIO.
image
Подключение сетевого контроллера.

3.7 SPI Controller


Основные характеристики:

  • работа в режиме Master, Slave, Multi-Master;
  • поддержка работы с тремя устройствами в режиме Master, по 3 линии SS (Slave Select);
  • поддержка одновременной передачи и приема;
  • тактовый сигнал до 50МГц при использовании MIO, до 25МГц при использовании EMIO;
  • настраиваемые режимы фазы тактового сигнала и его полярности (CPHA, CPOL).


image
Фазы тактового сигнала и полярность

image
Подключение контроллера SPI в режиме Master

image
Подключение контроллера SPI в режиме Slave

3.8 CAN Controller


Основные характеристики:

  • поддержка стандартов CAN 2.0A, and CAN 2.0B;
  • поддержка кадров с длиной идентификатора в 11 и 29 бит;
  • скорость до 1 Мбит/с.


Требует внешней микросхемы физического уровня.

3.9 UART Controller


Основные характеристики:

  • настраиваемая скорость передачи;
  • настраиваемое количество бит данных — 6, 7, 8;
  • настраиваемое количество стоп бит — 1, 1.5, 2;
  • контроль четности;
  • передача данных в режимах Normal, Automatic Echo, Local Loopback, Remote Loopback.


image
Режимы работы контроллера UART

3.10 I2C Controller


Основные характеристики:

  • скорость обмена до 400 Кбит/с;
  • поддержка спецификации версии 2;
  • работа в режиме Master и Slave.

3.11 XADC Interface


The Xilinx analog mixed signal module. Аналого-цифровой преобразователь. Имеет в своем составе 2 двенадцатиразрядных АЦП с частотой дискретизации 1 MSPS, аналоговый мультиплексор (до 17 внешних аналоговых каналов), и встроенные датчики температуры и напряжения микросхемы Zynq. Аналоговые входы поддерживают полосу пропускания сигнала до 500кГц при частоте дискретизации в 1 MSPS.

4 Процессорный модуль


Каждый Zynq, как уже было сказано выше, содержит в своем составе одно или два процессорных ядра. Максимальная тактовая частота ядер зависит от класса скорости микросхемы (Speed Grade) [1]. Возможно 5 классов скорости: -1, -1L, -2, -2L, -3. Классы с индексом L характеризуются пониженным напряжением питания.

Количество ядер и зависимость максимальной частоты от класса скорости микросхемы


5 Программируемая логика


Программируемая логика, используемая в Zynq основа на двух семействах FPGA: Artix-7 и Kintex-7. Artix позиционируется как менее производительное и с меньшим потреблением. Соответственно Kintex более производительно и с большим потреблением. На практике они различаются количеством доступных ресурсов и типом высокоскоростных приемопередатчиков (GTP со скоростью до 6,25 Гбит/с в Artix и GTX со скоростью до 12,5 Гбит/с в Kintex) [2].

Характеристики программируемой логики


LUT (Look-Up Tables) — используются для реализации логических функций.
BRAM (Block RAM) -используются для хранения данных. Размер одного BRAM = 36Кбит.
Примечание. Количество доступных GTP/GTX так же зависит от используемого корпуса. В таблице указано максимальное значение.

6 Производительность


6.1 Теоретическая


В таблицу ниже сведена теоретическая пропуская способность между процессорным модулем и программируемой логикой, а так же пропускная способность памяти. Следует понимать, производительность получена умножением тактового сигнала на ширину интерфейса и не отражает реальную картину передачи данных.
Теоретическая пропускная способность между процессорным модулем и программируемой логикой
Теоретическая пропускная способность каналов DMA в процессорном модуле
Теоретическая пропускная способность интерконнектов в процессорном модуле
Из таблицы следует вывод: память DDR или OCM не может быть полностью загружена одним устройством, исключая случаи использования низкой тактовой частоты для DDR. Пропускная способность чтения DDR ограничена на скорости 2840 Мбайт/с из-за использования Memory Interconnect[3].

6.2 Практическая


Производительность на практике, конечно, оказывается ниже, чем теоретическая. При разработке устройств на базе Zynq нас интересовала производительность обработки сетевых пакетов и производительность порта HP.

6.2.1 Обработка сетевых пакетов


Производительность обработки сетевых пакетов
При использовании схемы включения PL Ethernet, используется контроллер, реализованный в программируемой логике. Подключение приведено на схеме ниже. Подсчет контрольных сумм для протоколов IP, TCP, UDP выполняется ядром Axi Ethernet. Процессор используется для генерации и обработки сетевых пакетов. Для теста использовалась операционная система Petalinux с версией ядра 4.19. Замер выполнялся на плате ZC706, на которой установлена микросхема Z-7045 с классом скорости -2. Согласно таблице выше, процессорный модуль содержит 2 ядра и работает на тактовой частоте до 800МГц [4].

image
Подключение PL Ethernet

При использовании схемы включения PS EMIO, используется контроллер Ethernet, реализованный в процессорном модуле. Подключение приведено на схеме ниже. Подсчет контрольных сумм для протоколов IP, TCP, UDP выполняется ядром в процессорном модуле. Программируемая логика используется с целью преобразования интерфейсов для подключения внешней микросхемы физического уровня. Для теста использовалась операционная система Petalinux с версией ядра 4.6. Замер выполнялся на плате ZC706, на которой установлена микросхема Z-7045 с классом скорости -2. Согласно таблице выше, процессорный модуль содержит 2 ядра и работает на тактовой частоте до 800МГц [5].

image
Подключение PS EMIO

При использовании схемы включения PS MIO, используется контроллер Ethernet, реализованный в процессорном модуле. Подключение приведено на схеме ниже. Подсчет контрольных сумм для протоколов IP, TCP, UDP выполняется ядром в процессорном модуле. Подсчет контрольных сумм для протоколов IP, TCP, UDP выполняется ядром в процессорном модуле. Для теста использовалась операционная система Petalinux с версией ядра 4.0. Замер выполнялся на плате Zybo, на которой установлена микросхема Z-7010 с классом скорости -1. Согласно таблице выше, процессорный модуль содержит 2 ядра и работает на тактовой частоте до 667МГц.
image
Подключение PS MIO

Производительность сетевого контроллера в режиме Rx+Tx

Для теста использовалась операционная система Petalinux с версией ядра 4.14. Замер выполнялся на плате ZC706, на которой установлена микросхема Z-7045 с классом скорости -2. Согласно таблице выше, процессорный модуль содержит 2 ядра и работает на тактовой частоте до 800МГц [6].

Итого: если необходимо обеспечить обработку сетевых пакетов со скоростью 1Гбит/с, то Zynq не подходит для этой задачи.

6.2.2 Производительность порта HP


Теоретическая пропускная способность порта HP составляет 9,6Гбит/с. Для проверки пропускной способности использовалась плата Mini-ITX, на которой установлена микросхема Z-7100 с классом скорости -2. Согласно таблице выше, процессорный модуль содержит 2 ядра и работает на тактовой частоте до 800МГц. Операционная система Petalinux с версией ядра 3.19. Подключение приведено на схеме ниже.

image
Схема подключения для оценки скорости порта HP

Root Complex PCI-Express был реализован в программируемой логике с помощью ядра Axi PCIE. Процессорный модуль используется для обработки полученных пакетов. При таком подключении скорость чтения данных с флешки составляла чуть больше 100Мбайт/с.
При использовании порта HP для соединения двух микросхем Zynq по схеме ниже, скорость передачи данных скорость передачи достигает 2,5Гбит/с (ограничение блока Interface).

image
Схема соединения двух Zynq

Итого: порт HP позволяет организовать высокоскоростную передачу данных из процессорного модуля в программируемую логику и обратно.

7 Передача данных между процессорным модулем и программируемой логикой


Методы передачи данных
На диаграммах ниже серым цветом выделены блоки, которые участвуют в передаче данных.

image
Путь передачи данных через Master GP (CPU Programmed I/O)

image
Путь передачи данных через Master GP (PS DMAC)

image
Путь передачи данных через HP (PL AXI_HP DMA)

image

Путь передачи данных для ACP (PL AXI_ACP DMA)

Из всех возможных методов передачи данных между процессорным модулем и программируемой логикой, мы используем только 2: CPU Programmed I/O и PL AXI_HP DMA о которых будет рассказано в отдельной статье.

8 Загрузка SoC


После снятия сигнала сброса (PS_POR_B), процессорный модуль считывает со специальных входов режим загрузки и запускает на выполнение код BootROM. BootROM предназначен для начальной настройки системы, копирования следующего загрузчика в OCM (On Chip Memory) и передачи управления следующему загрузчику.

Возможные режимы загрузки:

  • Quad-SPI;
  • SD Memory Card;
  • NAND;
  • NOR;
  • JTAG.


Хорошая статья от Xilinx, в которой перечислены виды загрузки и протестированные варианты www.xilinx.com/support/answers/50991.html

Если режим загрузки не JTAG, то BootROM ищет на устройстве загрузки следующий загрузчик — FSBL (First State Boot Loader). FSBL используется для дальнейшей настройки системы (инициализация DDR, инициализация MIO). Также, FSBL используется для загрузки файла конфигурации в программируемую логику, если это необходимо. Файл конфигурации считывается с устройства загрузки и через специальный интерфейс (PCAP) в режиме DMA передается в программируемую логику. После загрузки программируемой логики, FSBL ищет следующее приложение для передачи управления. Возможны несколько вариантов:

  • следующего приложения нет, FSBL останавливается;
  • следующее приложение — приложение пользователя (Bare Metal). Оно вычитывается в DDR, и ему передается управление;
  • следующее приложение — U-BOOT. U-BOOT вычитывается в DDR и ему передается управление.


Таким образом, без процессорного модуля нельзя загрузить файл конфигурации в программируемую логику за исключением случая использования JTAG.

image
Временная шкала включения Zynq

Время выполнения BootROM сильно зависит от пропускной способности интерфейса устройства, на котором хранится файл конфигурации.
Сигнал INIT_B используется для указания, что начато конфигурирование программируемой логики (загрузка файла конфигурации).
Сигнал DONE используется для указания, что конфигурирование программируемой логики завершено.

image
Загрузка конфигурации в программируемую логику

9 Проблемы


При разработке устройств на базе Zynq столкнулись с несколькими проблемами. Возможно, в этом виновато плохое чтение документации.

  1. При работе с контроллером Ethernet, реализованном в процессорном модуле, напряжение питания банка должно быть +1,8В или +2,5В.
  2. При использовании Petalinux возможна загрузка только с использованием SD-карты.
  3. Не только Zynq, а вся седьмая серия от Xilinx (Artix, Kintex). Невозможно сформировать дифференциальный сигнал в банке с напряжением питания +3,3В.


10 Создание файла конфигурации


Как создать прошивку для Zynq? Для этого потребуется два инструмента от Xilinx: Vivado и Vitis. Так же добавим bare-metal приложение, которое передаст привет миру.

  1. Запустить Vivado. Создать проект для выбранной микросхемы. В примере будет использоваться плата Zybo, на которой установлена микросхема XC7Z010–1CLG400C.
  2. В меню слева (если его нет, то включить можно в View => Show Flow Navigator) выбрать Create Block Design => ввести имя файла => OK.

    image

  3. В открывшемся окне Diagram нажать на »+» или воспользоваться сочетанием клавиш Ctrl + I. В появившимся окне выбрать блок Zynq7 Processing System.

    image

  4. Вверху окна нажать на «Run Block Automation», появившимся окне нажать OK.
  5. Двойной клик на Zynq7 Processing System (или правой кнопкой и пункт Customize Block). Если создается прошивка для покупной платы, то в комплекте с ней есть xml или tcl файл с настройками процессорного модуля. Его можно загрузить через пункт Import XPS Settings и указав путь к файлу. Иначе, необходимо по принципиальной схеме на устройство выяснить, какие MIO используются и куда подключены, какой тип памяти DDR и выставить соответствующие настройки во вкладках Peripheral I/O Pins, MIO Configuration, Clock Configuration и DDR Configuration.

    image

  6. В принципе, этого достаточно. Но если сейчас запустить синтез, Vivado выдаст критическую ошибку о неподключенном входе. Потому что по умолчанию включен вход GP0. Снова двойной клик на Zynq7 Processing System => PS-PL Configuration => Axi Non Secure Enablement => GP Master AXI Interface => снять галку с M AXI GP0 Interface => OK.
  7. File => Save Block Design. Вкладку можно закрыть.
  8. В вкладке Sources выбрать созданный файл, правый клик, Create HDL Wrapper. В окне выбрать нужный пункт (включить автообновление файла или нет, неважно), OK.

    image

  9. В меню слева выбрать Generate Bitstream => Yes => OK.
  10. После некоторого времени появится окно «Bitstream Generation Completed», которое нужно закрыть.
  11. Необходимо создать каталог, в котором будут храниться FSBL и bare-metal приложение. Можно хранить их в папке с проектом или в другом месте.
  12. В Vivado File => Export => Export Hardware. Указать путь к созданному каталогу, галку Include bitsteam ставить не обязательно. В созданном каталоге появится файл .xsa
  13. Запустить Vitis (можно из Vivado => Tools => Launch Vitis), указать путь к каталогу с .xsa файлом.

    image

  14. В Vitis File => New => Application Project. В поле Project Name задать, например, Zybo_fsbl, нажать Next, выбрать вкладку Create a new platform form hardware (XSA), нажать »+», указать путь к файлу .xsa, в поле Platform name ввести название, чтобы потом можно было отличить созданную платформу от платформ по-умолчанию, например ProcessingSystem_wrapper_hw, Next, снять галку Generate boot components => Next => в списке шаблонов выбрать Zynq FSBL => Finish.
  15. В окне слева (Explorer) развернуть каталог src, открыть файл main.c. Можно добавить define, чтобы видеть, что процессорный модуль запустился.
    #define FSBL_DEBUG
    
    #include "fsbl.h"
    #include "qspi.h"
    
  16. Выбрать файл Zybo_fsbl, меню Project => Build Project.

    image

  17. FSBL создан. Теперь приложение. File => New => Application Project. В поле Project Name задать, например, Zybo_hello, Next, во вкладке Select a platform from repository выбрать созданную ранее платформу ProcessingSystem_wrapper_hw, Next, Next, в списке шаблонов выбрать Hello World, Finish.
  18. Выбрать файл Zybo_hello, меню Project => Build Project.
  19. Приложение создано. Теперь необходимо собрать итоговый файл. В Vitis выбрать меню Xilinx => Create Boot Image. Оставить переключатель в положении Create new BIF file. В поле Output BIF file path с помощью кнопки Browse указать место хранение файла и имя файла.
  20. Выбрать выходной формат файла, mcs или bin и путь для хранения файла
  21. Нажать кнопку Add и указать путь к файлу Zybo_fsbl.elf (исполняемый файл FSBL). Он расположен в папке с проектом Zybo_fsbl, каталог Debug, остальные поля оставить без изменений.
  22. Нажать кнопку Add и указать путь к файлу bit. Если была установлена галка Include bitsteam, то bit файл можно найти в каталоге с файлом .xsa, далее каталог с названием платформы, далее каталог bitstream. Если галки не было, то bit файл расположен в каталоге проекта, каталог .runs, каталог impl_1. Остальные поля оставить без изменений.
  23. Нажать кнопку Add и указать путь к файлу Zybo_hello.elf, который расположен по аналогии с FSBL в каталоге Debug. Остальные поля оставить без изменений.
  24. Нажать кнопку Create Image. Файл конфигурации создан.

    image


Если полученный файл конфигурации прошить в плату, подключиться монитором com-порта к отладочном порту Zynq, то в мониторе com-порта можно увидеть следующее:

Xilinx First Stage Boot Loader
Release 2019.2 Jun 26 2020-09:16:22
Silicon Version 3.1
Boot mode is QSPI
SUCCESSFUL_HANDOFF
FSBL Status = 0x1
Hello World

11 Заключение


Вывод: SoC Zynq подходит для решения задач, которые не требуют высокой производительности от процессорного модуля. Идеальный случай, когда алгоритм обработки данных реализован в программируемой логике, а процессорный модуль используется для загрузки данных, или обработки исключительных ситуаций, реализация которых трудоемка в программируемой логике.

12 Используемые источники


  1. www.xilinx.com/support/documentation/data_sheets/ds190-Zynq-7000-Overview.pdf
  2. www.xilinx.com/support/documentation/selection-guides/zynq-7000-product-selection-guide.pdf
  3. www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
  4. xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842485/Linux+AXI+Ethernet+driver
  5. xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841613/XAPP1082+2017.4+Performance
  6. www.xilinx.com/support/answers/73065.html

© Habrahabr.ru