Расширение семейства программируемых систем на кристалле Zynq-7000 AP SoC
Общая характеристика и особенности
Особенности кристаллов расширяемых процессорных платформ семейства Zynq-7000 AP SoC обусловлены, прежде всего, эффективным сочетанием функциональных возможностей микропроцессоров с архитектурой ARM Cortex-A9 и преимуществ ПЛИС FPGA (Field Programmable Gate Array) последнего поколения, выпускаемых по High-K Metal Gate (HKMG) технологии 28 нм [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. Такое сочетание создает необходимые предпосылки для оптимального распределения функций проектируемых встраиваемых систем между аппаратной и программной частью для достижения требуемой производительности. При этом периферия процессорной системы обеспечивает поддержку наиболее востребованных интерфейсов, а ресурсы программируемой логики предоставляют возможность организации параллельного выполнения операций.
Наиболее существенными отличиями программируемых систем на кристалле (СнК) семейства Zynq-7000 AP SoC, характеризующими их функциональные возможности, являются:
- Наличие двухъядерного процессорного блока, функционирующего с тактовой частотой, максимальное значение которой может достигать 1 ГГц (в зависимости от типа кристалла).
- Присутствие контроллера внешней динамической оперативной памяти, поддерживающего элементы высокоскоростных синхронных ОЗУ SDRAM с интерфейсами DDR3, DDR3L, DDR2, LPDDR2.
- Поддержка интерфейса статической памяти, обеспечивающего возможность использования внешних запоминающих устройств SRAM, Parallel NOR Flash, NAND Flash и SPI/Quad-SPI Serial NOR Flash.
- Наличие широкого спектра периферийных устройств ввода/вывода, сопряженных с процессорным блоком, который включает в себя по два экземпляра контроллеров интерфейсов UART, CAN0B, I2C, SPI, USB 2.0, Tri-mode Gigabit Ethernet, SD/SDIO.
- Использование различных вариантов широкополосного интерфейса AXI для организации взаимодействия процессорного блока и аппаратной части разрабатываемых встраиваемых систем, реализуемой на базе ресурсов конфигурируемой логики.
- Гибкая схема конфигурирования расширяемой процессорной платформы, предоставляющая возможность загрузки конфигурационной последовательности и ПО в кристалл из различных источников.
- Поддержка отладки аппаратной части и ПО реализуемых встраиваемых микропроцессорных систем через порт JTAG-интерфейса с помощью стандартного загрузочного кабеля.
- Возможность снижения уровня потребляемой мощности, обеспечиваемая как применением соответствующих технологических решений при производстве кристаллов, так и специальными методиками проектирования разрабатываемых систем.
- Единая система формирования внутренних тактовых сигналов, вырабатывающая из одного внешнего сигнала синхронизации необходимую совокупность сигналов тактирования как процессорной системы, так и программируемой логики.
- Усовершенствованная комплексная система распределения тактовых сигналов внутри кристалла, включающая совокупность различных типов линий и соответствующих буферных элементов и обеспечивающая минимизацию задержек распространения сигналов синхронизации.
- Внедрение модернизированных блоков управления синхронизацией (Clock Management Tile, CMT), включающих в себя комбинированный модуль управления синхронизацией Mixed-Mode Clock Managers (MMCM)и систему ФАПЧ (Phase-Locked Loop, PLL), предоставляет дополнительные возможности формирования тактовых сигналов для программируемой логики и повышения их стабильности.
- Применение интегрированных аппаратных модулей интерфейса PCI Express, соответствующих спецификации PCI Express Base Specification Revision1 (Gen 2), которые могут конфигурироваться как конечное устройство (Endpoint) или как корневой порт (Root Port).
- Поддержка расширенного спектра однополюсных и дифференциальных цифровых стандартов ввода/вывода с уровнями сигналов от 1,2 до 3,3 В, являющаяся результатом дальнейшей модернизации технологии SelectI/O, включающей в себя модули цифрового управления импедансом (Digitally Controlled Impedance, DCI) и интерфейсные блоки ChipSync.
- Применение усовершенствованных блоков ввода/вывода, поддерживающих режим энергосбережения.
- Наличие аналого-цифрового блока XADC, предоставляющего возможность преобразования в цифровую форму 17 внешних аналоговых сигналов, а также контроля значений уровней напряжений питания и температуры ПЛИС.
- Применение высокоскоростных последовательных приемопередатчиков RocketIO GTP или GTX с максимальной скоростью приема и передачи данных, достигающей до 12,5 Гбит/с, обеспечивающих возможность реализации широкого спектра интерфейсов вычислительных и телекоммуникационных систем, включая PCI Express, SATA/SAS, DisplayPort, Ethernet, SONET/OTU, Interlaken, Aurora.
- Поддержка новых низковольтных (1,2 и 1,35 В) высокоскоростных интерфейсов памяти различного типа.
- Использование усовершенствованных аппаратных секций цифровой обработки сигналов (ЦОС) DSP48E1, обеспечивающих оптимальную реализацию высокопроизводительных устройств ЦОС и в первую очередь — симметричных фильтров с конечной импульсной характеристикой (КИХ-фильтров).
- Новый расширенный ряд корпусного исполнения, включающий компактные варианты корпусов, минимизирующих площадь печатной платы, занимаемой кристаллом расширяемой процессорной платформы.
- Поддержка прикладного ПО, функционирующего как автономно, так и под управлением различных операционных систем (ОС).
- Возможность использования широкого ряда операционных систем, включающего в себя Open Source Linux, PetaLinux, WR Linux 5, Android, Windows Embedded, VxWorks, в том числе и ОС реального времени, в частности,
- Полная поддержка средствами проектирования Xilinx ISE (Integrated Software Environment /Integrated Synthesis Environment) Design Suite [11, 12], начиная с четырнадцатой версии, и САПР нового поколения Vivado Design Suite, начиная с версии 2013.2.
Состав и основные характеристики
Предполагается выпуск шести типов кристаллов расширяемых процессорных платформ семейства Zynq-7000 AP SoC, различающихся быстродействием процессорного блока, объемом конфигурируемых логических ресурсов, а также количеством специализированных аппаратных модулей [13, 14, 15]. Подробная информация об основных функциональных возможностях программируемых систем на кристалле семейства Zynq-7000 AP SoCпредставлена в таблице 1, которая содержит данные об объеме доступных ресурсов различного типа.
Тип ресурсов расширяемых процессорных платформ |
Тип кристалла |
||||||
XC7Z010 |
XC7Z015 |
XC7Z020 |
XC7Z030 |
XC7Z045 |
XC7Z100 |
||
Процессорная система |
Процессорный блок |
Dual ARM Cortex-A9 MPCore |
|||||
Расширение процессорных ядер |
NEON & Single / Double Precision Floating Point |
||||||
Максимальная тактовая частота процессорных ядер |
667 МГц (–1); 766 МГц (–2); 866 МГц (–3) |
667 МГц (–1); 800 МГц (–2); 1 ГГц (–3) |
667 МГц (–1); 800 МГц (–2) |
||||
Объем кэш-памяти первого уровня L1 |
32 кбайт команд и 32 кбайт данных для каждого процессорного ядра |
||||||
Объем кэш-памяти второго уровня L2 |
512 кбайт |
||||||
Объем внутрикристальной памяти процессорной системы |
256 кбайт |
||||||
Поддержка внешней динамической памяти |
DDR3, DDR3L, DDR2, LPDDR2 |
||||||
Поддержка внешней статической памяти |
Quad-SPI, NAND, NOR |
||||||
Количество каналов прямого доступа к памяти (DMA) |
8 (4 выделено для программируемой логики) |
||||||
Периферия |
2×UART, 2×CAN 2.0B, 2×I2C, 2×SPI, 4×32b GPIO |
||||||
Периферия со встроенным прямым доступом к памяти |
2×USB 2.0 (OTG), 2×Tri-mode Gigabit Ethernet, 2×SD/SDIO |
||||||
Безопасность |
RSA-идентификация, AES и SHA 256-разрядное шифрование |
||||||
Интерфейс взаимодействия процессорной системы и программируемой логики |
Порты AXI 32b Master иAXI 32b Slave |
2 |
|||||
Порты AXI 64b/32b Memory |
4 |
||||||
Порт AXI 64b ACP |
1 |
||||||
Линии прерываний |
16 |
||||||
Программируемая логика |
Эквивалентное семейство ПЛИС |
Artix-7 |
Artix-7 |
Artix-7 |
Kintex-7 |
Kintex-7 |
Kintex-7 |
Число логических ячеек |
28 672 |
75 776 |
87 040 |
128 000 |
358 400 |
454 656 |
|
Количество таблиц преобразования (LUT) |
17 600 |
46 200 |
53 200 |
78 600 |
218 600 |
277 400 |
|
Число триггеров |
35 200 |
92 400 |
106 400 |
157 200 |
437 200 |
554 800 |
|
Количество модулей блочной памяти емкостью 36 кбит |
60 |
95 |
140 |
265 |
545 |
755 |
|
Объем блочной памяти, кбайт |
240 |
380 |
560 |
1060 |
2180 |
3020 |
|
Количество модулей ФАПЧ (PLL) |
2 |
3 |
4 |
5 |
8 |
8 |
|
Число модулей управления синхронизацией (MMCM) |
2 |
3 |
4 |
5 |
8 |
8 |
|
Число аппаратных секций цифровой обработки сигналов DSP48E1 |
80 |
160 |
220 |
400 |
900 |
2 020 |
|
Максимальная производительность устройств ЦОС (симметричный КИХ-фильтр) |
100 GMAC |
200 GMAC |
276 GMAC |
593 GMAC |
1334 GMAC |
2622 GMAC |
|
Число аппаратных модулей PCI Express |
— |
Gen2 ×4 |
— |
Gen2 ×4 |
Gen2 ×8 |
Gen2 ×8 |
|
Максимальное число высокоскоростных последовательных приемопередатчиков GTPили GTX |
— |
4 |
— |
4 |
16 |
16 |
|
Количество аналого-цифровых блоков XADC |
1 |
1 |
1 |
1 |
1 |
1 |
|
Варианты быстродействия для коммерческого исполнения (C), при 0… +85 °C |
–1 |
||||||
Варианты быстродействия для расширенного исполнения (E), при 0… +100 °C |
–2, –3 |
||||||
|
Варианты быстродействия для промышленного исполнения (I), при –40… +100 °C |
–1, –2 |
|||||
Безопасность |
AES и SHA 256-разрядное шифрование |
В рассматриваемом семействе можно выделить две группы кристаллов расширяемых процессорных платформ. К первой группе относятся кристаллы XC7Z010 и XC7Z020, которые не содержат высокоскоростных последовательных приемопередатчиков и аппаратных блоков интерфейса PCI Express. Вторая группа включает в себя четыре типа программируемых систем на кристалле — XC7Z015, XC7Z030, XC7Z045 и XC7Z100, в состав которых входят высокоскоростные последовательные приемопередатчики RocketIO типа GTP или GTX, поддерживающие максимальную скорость приема и передачи данных от 6,25 до 12,5 Гбит/с, а также аппаратный блок интерфейса PCI Express, соответствующий спецификации PCI Express Base 2.1 (Gen2).
Подробные сведения о корпусном исполнении каждого типа кристаллов расширяемых процессорных платформ семейства Zynq-7000 AP SoC, с указанием количества доступных высокоскоростных последовательных приемопередатчиков и пользовательских входов/выходов приведены в таблице 2. Судя по данным этой таблицы, в составе кристаллов XC7Z010, XC7Z015и XC7Z020 представлены пользовательские входы/выходы только типа High Range I/O, поддерживающие цифровые сигнальные стандарты с уровнями сигналов от 1,2 до 3,3 В. В программируемых системах на кристалле XC7Z030, XC7Z045 и XC7Z100 кроме пользовательских выводов High Range I/O доступны также высокопроизводительные пользовательские входы/выходы типа High Performance I/O, которые поддерживают только низковольтные цифровые сигнальные стандарты с уровнем сигналов от 1,2 до 1,8 В.
Тип Кристалла | XC7Z010 | XC7Z015 | XC7Z020 | XC7Z030 | XC7Z045 | XC7Z100 | ||||
Тип корпуса | CLG225 | 13×13 мм | Количество пользовательских выводов процессорной системы PS I/O | 86 | ||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 54 | ||||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | – | |||||||||
CLG400 | 17×17 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | 130 | ||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 100 | 125 | |||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | – | – | ||||||||
CLG484 | 19×19 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | |||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 200 | ||||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | – | |||||||||
CLG485 | 19×19 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | |||||||
Количество высокоскоростных приемопередатчиков GTР | 4 | |||||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 150 | ||||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | – | |||||||||
SBG485 | 19×19 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | |||||||
Количество высокоскоростных приемопередатчиков GTX | 4 | |||||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 50 | ||||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | 100 | |||||||||
FBG484 | 23×23 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | |||||||
Количество высокоскоростных приемопередатчиков GTX | 4 | |||||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 100 | ||||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | 63 | |||||||||
FBG676 | 27×27 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | 130 | ||||||
Количество высокоскоростных приемопередатчиков GTX | 4 | 8 | ||||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 100 | 100 | |||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | 150 | 150 | ||||||||
FFG676 | 27×27 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | 130 | ||||||
Количество высокоскоростных приемопередатчиков GTX | 4 | 8 | ||||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 100 | 100 | |||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | 150 | 150 | ||||||||
FFG900 | 31×31 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | 130 | ||||||
Количество высокоскоростных приемопередатчиков GTX | 16 | 16 | ||||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 212 | 212 | |||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | 150 | 150 | ||||||||
FFG1156 | 35×35 мм | Количество пользовательских выводов процессорной системы PS I/O | 130 | |||||||
Количество высокоскоростных приемопередатчиков GTX | 16 | |||||||||
Пользовательские выводы программируемой логики SelectIO | Число пользовательских выводов, поддерживающих уровни от 1,2 до 3,3 В | 250 | ||||||||
Число пользовательских выводов, поддерживающих уровни от 1,2 до 1,8 В | 150 |
Архитектура кристаллов расширяемых процессорных платформ семейства Zynq-7000 AP SoC
Обобщенная архитектура программируемых систем на кристалле семейства Zynq-7000 AP SoC показана на рис. 1. Блоки, которые представлены не во всех кристаллах этого семейства, изображены пунктиром.
Структурно представленная архитектура расширяемых вычислительных платформ семейства Zynq-7000 AP SoC состоит из двух основных частей — процессорной системы и ресурсов программируемой логики. Для организации взаимодействия между этими частями предусмотрено несколько модификаций портов интерфейса AXI (Advanced eXtensible Interface).
В состав процессорной системы PS входят следующие основные функциональные модули:
- двухъядерный процессорный блок (Application Processor Unit, APU);
- контроллер интерфейса внешней оперативной синхронной динамической памяти DMC (DDRxMemory Controller);
- контроллер интерфейса внешней статической памяти SMC (Static Memory Controller);
- периферийные устройства ввода/вывода;
- блок формирования тактовых сигналов;
- схема сброса процессорной системы.
Ресурсы программируемой логики PL в общем случае включают в себя:
- конфигурируемые логические блоки (Configurable Logic Block, CLB);
- модули блочной памяти Block RAM;
- аппаратные секции цифровой обработки сигналов DSP48E1;
- аппаратные модули PCI Express;
- аналого-цифровой блок XADC;
- блоки управления синхронизацией CMT;
- высокоскоростные последовательные приемопередатчики GTP или GTX.
Для сопряжения процессорной системы PS и программируемой логики PL используются следующие разновидности портов интерфейса AXI:
- один порт, выделенный для подключения аппаратного ускорителя AXI_ACP, (S_AXI_ACP);
- четыре широкополосных высокопроизводительных порта AXI_HP (S_AXI_HP0 – S_AXI_HP4);
- четыре порта общего назначения AXI_GP (S_AXI_GP0, S_AXI_GP1, M_AXI_GP0, M_AXI_GP1).
Архитектура аппаратного процессорного блока APU
Аппаратный процессорный блок APU является основой архитектуры процессорной системы PSкристаллов семейства Zynq-7000 AP SoC. Этот блок включает в себя:
- два микропроцессорных ядра ARM Cortex-A9 MPCore (ЦПУ 0 и ЦПУ 1) с кэш-памятью первого уровня;
- два сопроцессора NEON;
- кэш-память второго уровня;
- устройство согласования кэш-памяти первого и второго уровня (контроллер когерентности) (Snoop Control Unit, SCU);
- порт аппаратного ускорителя (Accelerator Coherency Port ACP, ACP);
- модуль внутрикристальной памяти (On-Chip Memory, OCM);
- контроллер прямого доступа к памяти (Direct Memory Access, DMA);
- контроллер прерываний;
- таймеры;
- совокупность регистров управления системного уровня (System-Level Control Registers, SLCR);
- компоненты, реализующие инфраструктуру технологии отладки и трассировки CoreSight.
Микропроцессорные ядра, представленные в составе аппаратного блока APU, выполнены на основе архитектуры ARMv7-A. Эти ядра полностью поддерживают механизм виртуальной памяти, систему 32-разрядных команд ARM, 16- и 32-разрядные инструкции Thumb, а также восьмиразрядный код Java. Архитектура этих микропроцессорных ядер предоставляет возможность использования технологии TrustZone. Эта технология позволяет формировать безопасную среду для запуска приложений и защиты их кода и данных.
Для каждого микропроцессорного ядра в составе аппаратного блока APU предусмотрен отдельный сопроцессор NEON, который обеспечивает дополнительную поддержку наборов инструкций SIMD (SingleInstruction Multiple Data) и VFPv3 (Vector Floating Point v3). Эти наборы инструкций эффективно используются при реализации систем цифровой обработки сигналов, мультимедийных устройств, систем обработки видеоизображения и трехмерной графики. Сопроцессоры NEON осуществляют выполнение векторных и скалярных операций с одинарной и двойной точностью, а также вычислений с плавающей запятой.
Каждое микропроцессорное ядро располагает собственной кэш-памятью первого уровня (L1), которая включает в себя две области объемом 32 кбайт каждая. Одна из этих областей представляет собой кэш-память команд, а вторая — кэш-память данных. В кэш-памяти предусмотрена возможность использования контроля по четности. Кэш-память первого уровня поддерживает страницы виртуальной памяти с информационной емкостью 4 и 64 кбайт, 1 и 16 Мбайт.
Кэш-память второго уровня (L2) является общей для двух микропроцессорных ядер ARM Cortex-A9 MPCore (ЦПУ 0 и ЦПУ 1). В ее состав входит контроллер кэш-памяти и собственно массив памяти информационной емкостью 512 кбайт. Контроллер кэш-памяти второго уровня базируется на архитектуре ARM PL310. Этот контроллер реализует несколько линейных буферов объемом 256 бит каждый, которые существенно повышают эффективность кэш-памяти второго уровня. Кроме того, этот контроллер перенаправляет исключающие запросы от кэш-памяти первого уровня к внутрикристальной памяти OCM или внешней DDR-памяти. Кэш-память второго уровня поддерживает возможность применения контроля по четности.
Для согласования функционирования кэш-памяти различных уровней в составе процессорного блока APUприменяется модуль SCU. Этот модуль обеспечивает когерентность кэш-памяти данных первого уровня двух микропроцессорных ядер (ЦПУ 0 и ЦПУ 1). Через модуль SCU осуществляется высокоскоростной доступ к кэш-памяти второго уровня и внутрикристальной памяти OCM. Кроме того, рассматриваемый модуль обеспечивает поддержку порта ACP, предназначенного для сопряжения с аппаратным ускорителем, реализуемым на базе ресурсов программируемой логики PL. Он представляет собой порт высокоскоростного 64-разрядного интерфейса AXI. При подключении аппаратного ускорителя к порту ACP он получает прямой доступ к кэш-памяти процессорного блока APU. Взаимодействие микропроцессорных ядер с кэш-памятью, внутрикристальной памятью OCM и портом аппаратного ускорителя ACP наглядно поясняет структурная схема, изображенная на рис. 2.
Модуль внутрикристальной памяти OCM включает в себя ППЗУ Boot ROM объемом 128 кбайт и ОЗУ с информационной емкостью 256 кбайт. Этот модуль поддерживает два порта высокоскоростного 64-разрядного интерфейса AXI. Один из этих портов предоставляет выделенный доступ к микропроцессорным ядрам ЦПУ0 и ЦПУ1, а также к порту подключения аппаратного ускорителя через устройство согласования кэш-памяти SCU. Второй порт интерфейса AXI модуля внутрикристальной памяти OCM может использоваться другими блоками процессорной системы PS и устройствами, реализуемыми на базе программируемой логики. ППЗУ Boot ROM применяется в процессе загрузки кристалла расширяемой вычислительной платформы и недоступно для пользователя. ОЗУ модуля OCM может выполнять функции высокоскоростной оперативной памяти для процессорного блока, аппаратного ускорителя и других устройств.
Для организации эффективной передачи данных между периферийными устройствами и системной памятью в составе архитектуры процессорного блока предусмотрен модуль прямого доступа к памяти DMA. Основу этого модуля образует контроллер прямого доступа к памяти, осуществляющий реализацию высокоскоростных транзакций между различными ячейками памяти, а также между периферийными блоками и памятью. Структурная схема контроллера прямого доступа к памяти DMA представлена на рис. 3.
Контроллер DMA позволяет не только оптимизировать взаимодействие периферийных устройств и системной памяти, но и осуществлять высокоскоростной обмен данными между различными областями памяти. Контроллер прямого доступа к памяти поддерживает восемь независимых каналов, которые предоставляют возможность реализации параллельной многопоточной обработки данных. Контроллером DMA может осуществляться передача 32- и 64-разрядных данных.
В процессорном блоке APU реализована гибкая система прерываний различного вида, которая показана на рис. 4.
По типу источника, формирующего запрос прерывания, можно выделить три группы:
- прерывания, генерируемые программными средствами (Software Generated Interrupts, SGI);
- прерывания, запрашиваемые периферией процессорной системы PS;
- прерывания, вырабатываемые устройствами, конфигурируемыми на базе ресурсов программируемой логики PL.
В зависимости от способа обслуживания прерывания подразделяются на индивидуальные (Private) и разделяемые (Shared). Индивидуальные прерывания предназначены для конкретного микропроцессорного ядра ЦПУ 0 или ЦПУ 1. Разделяемые прерывания могут обслуживаться любым микропроцессорным ядром.
Каждое ЦПУ процессорного блока поддерживает 16 прерываний, формируемых программными средствами. Кроме того, для микропроцессорных ядер ЦПУ 0 и ЦПУ 1 предусмотрено по пять индивидуальных прерываний периферийных модулей (Private Peripheral Interrupts, PPI). Группа разделяемых прерываний (SharedPeripheral Interrupts, SPI) включает в себя приблизительно 60 прерываний, которые могут формироваться различными блоками процессорной системы PS и устройствами, реализуемыми на основе ресурсов программируемой логики PL.
Управление прерываниями всех типов осуществляется контроллером прерываний (Generic InterruptController, GIC). Этот контроллер выполняет функции разрешения, запрета, маскирования и установки приоритетов прерываний, а также их распределение к соответствующим микропроцессорным ядрам ЦПУ 0 или/и ЦПУ 1. Структура GIC базируется на архитектуре ARM Generic Interrupt Controller Architecture версии 1.0.
Для организации периодических прерываний и отсчета необходимых временных интервалов в процессорном блоке предусмотрено несколько видов таймеров, каждый из которых предназначен для выполнения определенных функций. На рис. 5 приведена структурная схема, поясняющая организацию таймеров процессорного блока APU.
Каждое микропроцессорное ядро ЦПУ 0 и ЦПУ 1 располагает индивидуальными 32-разрядным таймером CPU Private Timer и сторожевым 32-разрядным таймером CPU Private Watchdog Timer. Эти таймеры могут использоваться только одним соответствующим микропроцессорным ядром. Кроме индивидуальных таймеров имеется глобальный 64-разрядный таймер, который доступен всем микропроцессорным ядрам. Для сигнализации о катастрофических сбоях системы используется системный 24-разрядный сторожевой таймер (System WatchdogTimer, SWDT). Применение нескольких видов сторожевых таймеров позволяет на различных уровнях повысить надежность функционирования разрабатываемых встраиваемых систем.
Помимо перечисленных таймеров в составе процессорного блока представлены два тройных таймера/счетчика (Triple Timer Counters, TTC). Каждый из этих таймеров (TTC0 и TTC1) включает в себя три независимых реверсивных 16-разрядных счетчика. Эти таймеры/счетчики можно применять для различных целей и, прежде всего, для формирования импульсных сигналов с требуемой длительностью. Таймеры/счетчики TTC0 и TTC1 широко используются, в частности, при реализации систем широтно-импульсной модуляции (ШИМ).
Установка требуемых режимов процессорной системы PS и их контроль осуществляется с помощью набора регистров управления системного уровня SLCR. Эти регистры разделены на группы в соответствии с их функциональным назначением (управление тактовыми сигналами, схемой сброса, процессорным блоком, контроллером динамической памяти, периферией ввода/вывода, конфигурацией мультиплексируемых входов/выходов, внутрикристальной памятью, системой отладки и другими устройствами). Каждой группе регистров SLCR отведено соответствующее адресное пространство [16]. Доступ к регистрам управления системного уровня может осуществляться с помощью программных средств при использовании соответствующих библиотек [16–18].
Компоненты, образующие инфраструктуру технологии CoreSight, предоставляют возможность управления процессами отладки и трассировки через порт Debug Access Port (DAP). Доступ к этому порту может осуществляться через стандартный интерфейс JTAG или посредством интерфейса APB.
Структура контроллеров интерфейсов внешней памяти
Контроллер интерфейса внешней оперативной синхронной динамической памяти позволяет использовать элементы ОЗУ с интерфейсами DDR2, LPDDR2 и DDR3. Структурная схема этого контроллера изображена на рис. 6.
Основу этой схемы образуют три блока:
- интерфейс DDR;
- ядро контроллера DDR-интерфейса;
- физический уровень DDR-интерфейса.
Блок интерфейса DDR предоставляет доступ процессорной системе к контроллеру внешней оперативной синхронной динамической памяти через AXI-интерфейс и выполняет функции арбитра запросов записи и чтения данных. В состав этого блока входят четыре порта 64-разрядного синхронного интерфейса AXI, каждый из которых располагает выделенным FIFO-буфером транзакций. Ядро контроллера DDR-интерфейса осуществляет упорядочивание информации для оптимизации пропускной способности канала передачи данных и эффективное планирование транзакций. Кроме того, это ядро выполняет операции обнаружения и разрешения конфликтов адресов записи и чтения данных с целью предотвращения искажения информации. Физический уровень DDR-интерфейса обеспечивает совместимость входов и выходов контроллера внешней оперативной синхронной динамической памяти с уровнями сигналов, предусмотренными спецификациями LPDDR2 1.2V, DDR2 1.8V, DDR3 1.5V и DDR3L 1.35V.
Контроллер интерфейса внешней статической памяти SMC предназначен для организации взаимодействия аппаратного процессорного блока с элементами Flash ППЗУ. В его состав входят контроллеры интерфейсов NAND Flash и SRAM/NOR. Структурная схема контроллера интерфейса внешней статической памяти SMCприведена на рис. 7.
Контроллер интерфейса NAND Flash поддерживает подключение внешних элементов ППЗУ с информационной емкостью до 1 Гбайт и 8- или 16-разрядной шиной данных. Контроллер интерфейса SRAM/NORпозволяет использовать внешние запоминающие устройства с восьмиразрядной шиной данных и объемом адресного пространства до 64 Мбайт.
Структура периферийных устройств ввода/вывода процессорной системы
Набор периферийных устройств ввода/вывода процессорной системы PS включает в себя контроллер интерфейса Quad-SPI, по два экземпляра контроллеров интерфейсов SD/SDIO, USB 2.0, Tri-mode Gigabit Ethernet, SPI, UART, I2C, CAN 2.0B, а также порты ввода/вывода общего назначения GPIO (General Purpose I/O).
Контроллер интерфейса Quad-SPI обеспечивает возможность взаимодействия процессорной системы и внешних элементов Flash-памяти с одноименным интерфейсом. Указанные элементы Flash ППЗУ могут использоваться в качестве загрузочного устройства для программируемых систем на кристалле семейства Zynq-7000 AP SoC. Контроллер интерфейса Quad-SPI поддерживает три режима функционирования — ×1, ×2 и ×4 и позволяет выполнять процесс конфигурирования кристалла расширяемой процессорной платформы с частотой 100 МГц. Структурная схема контроллера интерфейса Quad-SPI представлена на рис. 8.
Контроллер интерфейса Quad-SPI поддерживает три режима функционирования:
- режим линейной адресации Linear Addressing Mode;
- режим ввода/вывода I/O Mode;
- режим обычного интерфейса SPI.
В режиме линейной адресации взаимодействие процессорного блока с Flash ППЗУ осуществляется через 32-разрядный AXI-интерфейс, а в режиме I/O Mode — через 32-разрядный APB-интерфейс.
Контроллер интерфейса Quad-SPI предоставляет возможность использования одного или двух элементов Flash-памяти. Объем адресного пространства, поддерживаемого этим контроллером, составляет 16 Мбайт для одного элемента и 32 Мбайт для двух Flash ППЗУ. Типовой вариант подключения одного элемента Flash-памяти к контроллеру интерфейса Quad-SPI показан на рис. 9.
При одновременном использовании двух Flash ППЗУ возможны различные варианты организации их взаимодействия с контроллером интерфейса Quad-SPI. Вариант подключения двух элементов Flash-памяти с использованием двух четырехразрядных шин ввода/вывода демонстрирует рис. 10а.
Вариант сопряжения двух Flash ППЗУ с контроллером интерфейса Quad-SPI через одну четырехразрядную шину ввода/вывода поясняет рис. 10б.
Контроллер интерфейса Quad-SPI позволяет организовать обмен данными с внешней Flash-памятью посредством обычного интерфейса SPI, как показано на рис. 11. В этом случае контроллер выполняет функцию ведущего (master) устройства интерфейса SPI, а Flash ППЗУ — ведомого (slave).
Контроллеры интерфейса SD/SDIO (Secure Digital Input/Output) предоставляют возможность поддержки карт памяти стандарта SD, которые могут содержать загрузочный код операционной системы и исполняемый код прикладного ПО. Эти контроллеры полностью совместимы со спецификацией стандарта SD Host Controller Specification версии 2.0. Контроллеры интерфейсов SD/SDIO поддерживают высокоскоростные карты памятиSDHS (SD High-Speed) и карты большой емкости SDHC (SD High Capacity), осуществляя передачу данных в низкоскоростном (Low-speed) или полноскоростном (Full-speed) режиме. В режиме Full-speed максимальная скорость передачи может достигать 25 Мбайт/с. Структурная схема контроллера интерфейса SD/SDIOизображена на рис. 12.
Следует учитывать, что уровни сигналов на входах и выходах контроллера интерфейса SD/SDIO могут не соответствовать стандарту ввода/вывода, поддерживаемому картами памяти формата SD. В таких случаях для согласования входов и выходов кристалла расширяемой процессорной платформы и карт памяти стандарта SDнеобходим дополнительный двунаправленный преобразователь уровней сигналов. Примеры практической реализации интерфейса SD/SDIO в программируемых системах на кристалле семейства Zynq-7000 AP SoC рассмотрены в [20–22].
Контроллеры интерфейса USB 2.0 предоставляют возможность выбора одного из трех режимов функционирования: Host mode, Device mode или On-the-Go (OTG) mode. Каждый контроллер может конфигурироваться независимо друг от друга.
Контроллеры интерфейса USB 2.0 поддерживают три варианта режимов передачи данных:
- высокоскоростной High-speed USB 2.0 с максимальной скоростью 480 Мбит/с;
- полноскоростной Full-speed USB 1.1 с максимальной скоростью 12 Мбит/с;
- низкоскоростной Low-speed USB 1.0 с максимальной скоростью 1,5 Мбит/с.
Структурная схема контроллера интерфейса USB 2.0 представлена на рис. 13. Совокупность внешних выводов этого контроллера соответствует протоколу ULPI (UTMI + Low Pin Interface). Поэтому для реализации физического уровня интерфейса USB 2.0, как правило, необходима дополнительная микросхема. Примеры различных вариантов практической реализации физического уровня интерфейса USB 2.0 приведены в [20–22].
Контроллеры Tri-mode Gigabit Ethernet Controller осуществляют реализацию функций MAC-уровня интерфейса 10/100/1000 Ethernet в соответствии со спецификацией стандарта IEEE 802.3-2008. Эти контроллеры поддерживают дуплексный и полудуплексный режимы передачи данных. Внешние выводы контроллеров Tri-modeGigabit Ethernet Controller, предназначенные для сопряжения с физическим уровнем, соответствуют интерфейсу RGMII (Reduced Gigabit Media Independent Interface). Взаимодействие с программируемой логикой PL кристалла расширяемой процессорной платформы осуществляется через интерфейсы GMII/MII. На рис. 14 представлена структурная схема контроллера интерфейса Tri-mode Gigabit Ethernet.
Для организации прямого доступа рассматриваемого контроллера к памяти применяется 32-разрядный интерфейс AHB. Доступ к регистрам управления и состояния контроллера Tri-mode Gigabit Ethernet Controllerосуществляется по 32-разрядной шине APB. Физический уровень интерфейса 10/100/1000 Ethernet реализуется с помощью соответствующих дополнительных микросхем различных производителей. Примеры вариантов реализации физического уровня интерфейса 10/100/1000 Ethernet для программируемых систем на кристалле семейства Zynq-7000 AP SoC представлены в [20–22].
Контроллеры интерфейса SPI предоставляют возможность организации обмена данными процессорной системы с различными внешними периферийными устройствами. Каждый из этих контроллеров поддерживает два основных режима функционирования — ведущий и ведомый. Кроме того, эти контроллеры позволяют реализовать интерфейс SPI с несколькими ведущими устройствами. Контроллеры интерфейса SPI обеспечивают возможность передачи данных в дуплексном режиме. При этом максимальная частота тактового сигнала может достигать 50 МГц.
Структурная схема контроллера интерфейса SPI изображена на рис. 15. Взаимодействие контроллера с процессорным блоком осуществляется через 32-разрядную шину APB-интерфейса. Для подключения внешних периферийных устройств используются четыре стандартных сигнала: MOSI, MISO, SCLK и SS. В контроллере интерфейса SPI предусмотрена возможность программирования фазы и полярности тактового сигнала.
Основу контроллеров интерфейса UART образуют асинхронные последовательные приемопередатчики, поддерживающие широкий диапазон скоростей передачи данных и различные протоколы, а также механизм прерываний. Эти контроллеры позволяют реализовать последовательный асинхронный интерфейс как в простейшем варианте с использованием только двух сигналов принимаемых и передаваемых данных RxD и TxD, так и в полном объеме с применением дополнительных управляющих сигналов CTS, RTS, DSR, DTR, RI и DCD. При этом поддерживаются протоколы обмена данными, в которых может использоваться 6, 7 или 8 бит данных, 1, 1,5 или 2 стоповых бита, контроль по четности или нечетности.
Структурная схема контроллера интерфейса UART приведена на рис. 16. Обмен данными с контроллером и установка требуемых режимов его работы осуществляется посредством интерфейса APB. В составе этого контроллера используются 64-разрядные FIFO-буферы принимаемых и передаваемых данных (Rx FIFO и Tx FIFOсоответственно). Кроме того, предусмотрен программируемый генератор, определяющий скорость приема и передачи данных. Максимальное значение скорости приема и передачи информации может достигать 1,5 Мбит/с при использовании для шины APB тактового сигнала с частотой 100 МГц. Контроллеры интерфейса UART можно соединять друг с другом. При этом входы сигналов RxD и CTS одного контроллера подключаются соответственно к выходам сигналов TxD и RTS другого контроллера.
Контроллеры интерфейса I2C поддерживают спецификацию одноименной шины версии 2. Эти контроллеры позволяют осуществлять прием и передачу данных с быстрой (400 кбит/с), стандартной (100 кбит/с) и низкой скоростью (10 кбит/с). Каждый контроллер может функционировать в ведущем и ведомом режиме. Кроме того, контроллеры интерфейса I2C могут выполнять функцию арбитража в системе с несколькими ведущими устройствами. Рассматриваемые контроллеры поддерживают возможность программирования режима адресации — стандартного (семиразрядного) или расширенного (десятиразрядного).
Структурная схема контроллера интерфейса I2C представлена на рис. 17. Взаимодействие контроллера с процессорным блоком осуществляется через интерфейс APB. Кроме того, в контроллерах интерфейса I2Cпредусмотрена возможность генерации прерываний. В трактах приема и передачи данных используются 16-разрядные FIFO-буферы (Rx FIFO и Tx FIFO соответственно).
Контроллеры интерфейса CAN полностью соответствуют спецификациям стандартов ISO 11898-1, CAN 2.0A и CAN 2.0B. Эти контроллеры позволяют осуществлять прием и передачу данных с максимальной скоростью, достигающей 1 Мбит/с.
Контроллеры CAN-интерфейса поддерживают пять режимов функционирования:
- конфигурационный;
- нормальный;
- «спящий»;
- закольцованный;
- режим мониторинга.
Конфигурационный режим предназначен для установки требуемых коммуникационных параметров. Нормальный режим используется для приема и передачи пакетов информационных данных. «Спящий» режим применяется для сокращения энергопотребления во время простоя. Последние два режима являются диагностическими и предназначены для тестирования и отладки.
Структурная схема контроллера интерфейса CAN показана на рис. 18. В ее состав входят элементы буферной памяти, функционирующие по принципу FIFO, информационная емкость каждого из которых составляет 64 сообщения. Один из этих элементов (RxFIFO) используется для буферизации принимаемых сообщений, а второй (TxFIFO) — передаваемых пакетов. В приемном тракте контроллера CAN-интерфейса предусмотрены четыре фильтра сообщений, которые позволяют заблокировать запись ненужных сообщений в буферную память принимаемых пакетов RxFIFO. Для организации интерфейса CAN в полном объеме необходимы дополнительные микросхемы, реализующие физический уровень этого интерфейса. Пример практической реализации физического уровня CAN-интерфейса приведен в [20].
Порты ввода/вывода общего назначения GPIO скомпонованы в виде четырех банков Bank 0–Bank 3, каждый из которых содержит 32 входных/выходных канала. На рис. 19 поясняется организация портов GPIO.
Порты ввода/вывода общего назначения, входящие в состав банков Bank 0 и Bank 1, подключаются через мультиплексируемые линии ввода/вывода MIO (Multiplexed I/O) к выводам кристалла расширяемой процессорной платформы. При этом следует обратить внимание на то, что банк Bank 1 ограничен 22 каналами, поэтому доступными являются только 54 внешних порта ввода/вывода общего назначения. Порты GPIO, относящиеся к Bank 2 и Bank 3, подключаются через интерфейс EMIO (Extended Multiplexed I/O) к периферийным блокам, реализуемым на базе ресурсов программируемой логики PL. Каждый порт ввода/вывода общего назначения может быть динамически запрограммирован как входной или выходной. Структурная схема одного порта GPIO представлена на рис. 20.
Каждый порт ввода/вывода общего назначения имеет индивидуальную схему генерации прерываний с возможностью выбора активного уровня или фронта сигнала.
Структура блока формирования тактовых сигналов процессорной системы
Блок формирования тактовых сигналов вырабатывает совокупность сигналов синхронизации для всех архитектурных модулей программируемой системы на кристалле. Для генерации этой совокупности используется один внешний тактовый сигнал. Структурная схема блока формирования тактовых сигналов изображена на рис. 21.
Исходный внешний сигнал синхронизации подается на специальный выделенный вывод кристалла расширяемой процессорной платформы семейства Zynq-7000 AP SoC — PS_CLK. С этого вывода входной тактовый сигнал поступает на три модуля фазовой автоподстройки частоты (ФАПЧ): ARM PLL, I/O PLL и DDR PLL. Модуль ФАПЧ ARM PLL формирует тактовый сигнал, который затем используется в качестве исходного для генерации сетки сигналов синхронизации процессорного блока. Модуль ФАПЧ I/O PLL вырабатывает тактовый сигнал, на основе которого генерируется набор сигналов синхронизации для периферийных устройств ввода/вывода. Модуль ФАПЧ DDR PLL предназначен, прежде всего, для формирования тактового сигнала, который используется в качестве исходного при генерации сигналов синхронизации интерфейса внешней оперативной динамической памяти DDR. Тактовые сигналы, вырабатываемые перечисленными модулями ФАПЧ, через специальные мультиплексоры подаются на входы программируемых шестиразрядных делителей частоты. Выходные сигналы этих делителей используются для тактирования интерфейса внешней оперативной динамической памяти и периферийных устройств ввода/вывода процессорной системы, а также в качестве исходных для генерации сигналов синхронизации процессорного блока. Кроме того, программируемые делители формируют четыре тактовых сигнала FCLKCLK0–FCLKCLK3, которые можно применять для синхронизации устройств, конфигурируемых на базе ресурсов программируемой логики PL. Процесс формирования этих тактовых сигналов поясняет рис. 22.
Окончание следует
- Зотов В. Особенности архитектуры нового поколения ПЛИС с архитектурой FPGA фирмы Xilinx // Компоненты и технологии. № 12’10.
- 7 Series FPGAs SelectIO Resources User Guide. Xilinx, 2012.
- 7 Series FPGAs Clocking Resources User Guide. Xilinx, 2013.
- 7 Series FPGAs Memory Resources User Guide. Xilinx, 2013.
- 7 Series FPGAs Configurable Logic Block User Guide. Xilinx, 2012.
- 7 Series FPGAs GTP Transceivers User Guide. Xilinx, 2013.
- 7 Series FPGAs GTX/GTР Transceivers User Guide. Xilinx, 2013.
- 7 Series FPGAs Integrated Block for PCIe User Guide. Xilinx, 2012.
- 7 Series DSP48E1 Slice User Guide. Xilinx, 2013.
- 7 Series FPGAs and Zynq-7000 All Programmable SoC XADC Dual 12-Bit 1 MSPS Analog-to-Digital Converter User Guide. Xilinx, 2012.
- Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия – Телеком, 2003.
- Зотов В. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. М.: Горячая линия – Телеком, 2006.
- Zynq-7000 All Programmable SoC Overview. Advance Product Specification. Xilinx, 2013.
- Zynq-7000 All Programmable SoC (XC7Z010, XC7Z015, and XC7Z020): DC and AC Switching Characteristics. Xilinx, 2013.
- Zynq-7000 All Programmable SoC (XC7Z030, XC7Z045, and XC7Z100): DC and AC Switching Characteristics. Xilinx, 2013.
- Zynq-7000 All Programmable SoC Technical Reference Manual. Xilinx, 2013.
- Zynq-7000 All Programmable SoC: Concepts, Tools, and Techniques (CTT) A Hands-On Guide to Effective Embedded System Design. Xilinx, 2013.
- Zynq-7000 All Programmable SoC Software Developers Guide. Xilinx, 2013.
- Zynq-7000 All Programmable SoC PCB Design and Pin Planning Guide. Xilinx, 2013.
- Зотов В. Аппаратные средства разработки и отладки встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx семейства Zynq-7000 AP SoC // Компоненты и технологии. 2013. № 1.
- Зотов В. ZedBoard — эффективный инструмент разработки и отладки встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx семейства Zynq-7000 AP SoC // Компоненты и технологии. 2013. № 6.
- Зотов В. MicroZed — семейство унифицированных модулей, предназначенных для отладки и реализации встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx серии Zynq-7000 AP SoC// Компоненты и технологии. 2013. № 11.