Введение в ПЛИС: Материальное обеспечение курса

в 6:15, , рубрики: Alinx, AntMiner, fpga, xilinx, ПЛИС

В рамках подготовки курса "Введение в ПЛИС" были отобраны несколько относительно недорогих, но функционально разносторонних плат. Здесь я бы хотел рассмотреть возможности, которые они дают в плане обучения студентов.

Введение в ПЛИС: Материальное обеспечение курса - 1

Основой для выполнения проектных заданий выступит плата AX7A035B от Alinx и набор плат расширения: AN9767(2-канальный ЦАП (14 бит, 125MSPS)), AN9238(2-канальный АЦП (12 бит, 65MSPS)), AN706(8-канальный АЦП (16 бит, 200kSPS)), AN5642(бинокулярная камера), AN430(дисплей). С остальными модулями расширения можно ознакомиться на сайте производителя. Будем считать, что на группу из 12 человек мы имеем 3 базовые платы AX7A035B и по одной плате расширения. Для дальнейшего изучения систем на кристалле будем использовать плату управления Antminer S9 на базе ZYNQ7010. Также нам потребуется программатор, источник питания и, само собой, ЭВМ с релевантным софтом.

AX7A035B

На сайте производителя плата AX7A035B стоит $211, в реальной рознице стоимость будет чуть выше. Для отдельного студента, конечно, даже это уже существенная сумма, но для образовательного учреждения, либо предприятия, которое занимается обучением своих практикантов, деньги уже вполне сносные. Рассмотрим, что же мы за них получим. Здесь и далее изображения взяты с сайта либо документации Alinx.
Вид на плату AX7A035B с двух сторон:

Введение в ПЛИС: Материальное обеспечение курса - 2
Введение в ПЛИС: Материальное обеспечение курса - 3

Несущая плата оснащена вычислительным модулем SoM AC7A035, интерфейсом PCIE2.0, Gigabit Ethernet RJ-45 с преобразователем JLSemi JL2121-N040I Ethernet PHY, двумя разъемами HDMI для ввода и вывода данных с преобразователями SIL9013/9011 и SIL9134 соответственно. Возможна установка двух полнодуплексных SFP-модулей, которые подключаются к высокоскоростным трансиверам ПЛИС. В наличии также разъем micro USB, с помощью которого посредством микросхемы Silicon Labs CP2102GM организуется UART интерфейс, разъем для программирования и отладки JTAG, набор светодиодов и кнопок, разъем для microSD-карты и два разъема для плат расширения. По единому I2C-интерфейсу на ПЛИС подключаются элемент памяти EEPROM 24LC04 и температурный датчик LM75. В комплект поставки также включены: программатор Alinx AL321 с кабелями-переходниками, небольшой радиатор для охлаждения ПЛИС и блок питания (БП оснащен китайской вилкой и чтобы его включить в европейскую розетку потребуется переходник).

SoM AC7A035 оснащен ПЛИС XILINX ARTIX-7 XC7A35T-2FGG484I, двумя микросхемами памяти DDR3 MICRON MT41J256M16HA-125 суммарным объемом 1 Гбайт и модулем QSPI FLASH N25Q128 объемом 16Мбайт.
Вид на SoM AC7A035 с двух сторон:

Введение в ПЛИС: Материальное обеспечение курса - 4
Введение в ПЛИС: Материальное обеспечение курса - 5

ARTIX-7 XC7A35T-2FGG484I включает в себя:

Элемент

Количество

Logic Cells

33,280

Slices

5,200

CLB flip-flops

41,600

Block RAM (kb)

1,80

DSP Slices

90

PCIe Gen2

1

XADC

1 XADC, 12bit, 1Mbps AD

GTP Transceiver

4 GTP, 6.6Gb/s max

Speed Grade

-2

Temperature Grade

Industrial

Безусловно, ПЛИС ограничена в своих возможностях, однако, для базовых вещей должно хватить. Кроме того, для студентов весьма полезно будет получить навыки оптимизации своих решений, чтобы они сразу при разработке проектов учитывали ограниченность аппаратных ресурсов.

На ПЛИС заводится два тактовых дифференциальных сигнала: 200МГц на логику и 125МГц - опорный тактовый сигнал высокоскоростных приемопередатчиков. Светодиод PWR LED показывает наличие питающего напряжения, DONE LED - загрузку прошивки, LED1 - может быть запрограммирован пользователем. Для работы с вычислительным модулем отдельно от несущей платы на модуле присутствуют контакты для подключения разъемов JTAG и питания +5 В. Вычислительный модуль подключается к несущему посредством 4х 80-пиновых разъемов Panasonic AXK580137Y (AXK680337YG - на несущем).

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

На основе вышесказанного построим следующую схему:

Введение в ПЛИС: Материальное обеспечение курса - 6

Платы расширения

Теперь рассмотрим платы расширения, которые есть у нас в наличии.

AN9767(2-канальный ЦАП (14 бит, 125MSPS)), AN9238(2-канальный АЦП (12 бит, 65MSPS)), AN706(8-канальный АЦП (16 бит, 200kSPS)), AN5642(бинокулярная камера), AN430(дисплей)

AN9767(2-канальный ЦАП (14 бит, 125MSPS))

Введение в ПЛИС: Материальное обеспечение курса - 7
Введение в ПЛИС: Материальное обеспечение курса - 8
Введение в ПЛИС: Материальное обеспечение курса - 9

Параметры двухпортового модуля ЦАП AN9767:

  • Чип ЦАП: AD9767 от Analog Devices

  • Каналы: 2-канальный

  • Разрядность ЦАП: 14 бит

  • Частота дискретизации ЦАП: 125 MSPS

  • Диапазон выходного напряжения: -5В ~ +5В

  • Количество слоёв модуля PCB: 4 слоя, отдельные слои для питания и земли

  • Интерфейс модуля: 40-контактный разъём с шагом 0,1 дюйма, направление загрузки

  • Температура окружающей среды (при поданном питании): -40°~85°, все чипы на модуле соответствуют промышленным требованиям

  • Выходной интерфейс: 2-портовый аналоговый BNC-выход (подключение к осциллографу через BNC-кабель напрямую) Мощность выходного сигнала может регулироваться двумя подстроечными резисторами. Загрузка данных в микросхему ЦАП осуществляется в параллельном виде, дополнительная настройка микросхемы не требуется.

AN9238(2-канальный АЦП (12 бит, 65MSPS))

Введение в ПЛИС: Материальное обеспечение курса - 10
Введение в ПЛИС: Материальное обеспечение курса - 11
Введение в ПЛИС: Материальное обеспечение курса - 12

Параметры модуля АЦП AN9238:

  • Чип АЦП: AD9238 от Analog Devices

  • Каналы АЦП: 2 канала

  • Частота выборки АЦП: 65 MSPS

  • Разрядность данных выборки АЦП: 12 бит

  • Стандарт уровней цифрового интерфейса: +3,3 В, уровень CMOS

  • Диапазон входного аналогового сигнала АЦП: -5В ~ +5В

  • Интерфейс входа аналогового сигнала: разъём SMA

  • Точность измерений: около 10 мВ

  • Рабочая температура: -40° ~ 85° Выгрузка данных из микросхемы АЦП осуществляется в параллельном виде, дополнительная настройка микросхемы не требуется.

AN706(8-канальный АЦП (16 бит, 200kSPS))

Введение в ПЛИС: Материальное обеспечение курса - 13
Введение в ПЛИС: Материальное обеспечение курса - 14
Введение в ПЛИС: Материальное обеспечение курса - 15

Параметры модуля АЦП AN706:

  • Чип АЦП: AD7606

  • Каналы АЦП: 8 каналов

  • Разрядность АЦП: 16 бит

  • Максимальная частота выборки: 200 KSPS

  • Диапазон входного напряжения: -5В ~ +5В

  • Количество слоёв PCB: 4 слоя, отдельные слои для питания и земли

  • Интерфейс модуля: 40-контактный разъём с шагом 2,54 мм

  • Температура окружающей среды (при поданном питании): -40° ~ 85°, все чипы на модуле соответствуют промышленным требованиям

  • Входной интерфейс: 8 разъёмов SMA и 16-контактные разъёмы с шагом 2,54 мм (каждый канал имеет два контакта для положительного и отрицательного входов)

  • Точность измерений: в пределах 0,5 мВ Данные могут передаваться с микросхемы как в параллельном, так и в последовательном виде.

AN5642(бинокулярная камера)

Введение в ПЛИС: Материальное обеспечение курса - 16
Введение в ПЛИС: Материальное обеспечение курса - 17
Введение в ПЛИС: Материальное обеспечение курса - 18
Введение в ПЛИС: Материальное обеспечение курса - 19

Параметры модуля AN5642:

  • Интерфейс модуля: 40-контактный разъём с шагом 2,54 мм, 2-камерная конфигурация с отдельными интерфейсами DVP

  • Расстояние: Расстояние между двумя камерами составляет 40 мм

  • Поддерживаемое разрешение изображений: 5 мегапикселей

  • Светочувствительный чип: 2 шт. OV5640 от OmniVision

  • Оптический размер: 1/4"

  • Состав модуля: Цепь питания для OV5640 и генератор тактовой частоты

  • Функции автоматического контроля изображения: Ручная фокусировка, автоматический контроль экспозиции (AEC), автоматический баланс белого (AWB)

  • Поддерживаемые форматы вывода: RAW RGB, RGB565/555/444, CCIR656, YUV422/420, YCbCr422 и сжатие

  • Максимальная скорость передачи изображения:

    • QSXGA (2592x1944): 15 fps

    • 1080p: 30 fps

    • 1280x960: 45 fps

    • 720p: 60 fps

    • VGA (640x480): 90 fps

    • QVGA (320x240): 120 fps

  • Рабочая температура: -30 ~ 70°C, стабильная рабочая температура — 0 ~ 50°C Модуль реализует специальную процедуру подачи питания на элементы OV5640. Настройка OV5640 производится по отдельным интерфейсам I2C для каждого элемента. С процессом настройки можно ознакомиться в документации к плате AN5642 и более подробно в документации к элементам OV5640.

AN430(дисплей)

Введение в ПЛИС: Материальное обеспечение курса - 20
Введение в ПЛИС: Материальное обеспечение курса - 21
Введение в ПЛИС: Материальное обеспечение курса - 22

Параметры модуля AN430:

  • Формат данных: RGB888, 24 бита

  • Разрешение дисплея: 480 (RGB) * 272

  • Область отображения: 95,04 мм x 53,86 мм

  • Интерфейс модуля: 40-контактный разъём с шагом 2,54 мм

  • Рабочая температура: -20 ~ 70 ℃

  • Габариты: 120 x 24 мм

Теперь стало более-менее понятно чем мы располагаем. Давайте прикинем, что мы можем из этого сделать в привязке к нашему курсу. Первые три занятия подразумевают изучение теории и работу с ПО и системами симуляции. На четвертом занятии уже начинается работа с документацией аппаратных модулей. Глава 5 уже предусматривает работу непосредственно с платами. От нас потребуется прошить ПЛИС проектом с мигающим светодиодом и вывести линии в логический анализатор. Соответственно нам потребуется запитать плату AX7A035B и подключить к разъему JTAG программатор. Из элементов платы на данном этапе нас могут интересовать: встроенное ПЗУ (если реализуем постоянную прошивку), тактовый генератор на 200 МГц, светодиоды и ключи. Главы 6-8 сконцентрированы на внутренней архитектуре проектов и не затрагивают периферийные устройства. Глава 6 рассматривает вопросы генерации различных тактовых сигналов (из сигнала 200 МГц в нашем случае), 7 - потоковые внутрисистемные интерфейсы, 8 - адресные внутрисистемные интерфейсы. Глава 8 рассматривает периферийные последовательные интерфейсы, для отработки навыков их использования можно обратить внимание на канал USB-UART, либо на линию интерфейса I2C, подключенную к температурному датчику и элементу памяти EEPROM. Также опыт работы с I2C нам пригодится для конфигурирования бинокулярной камеры AN5642. Глава 10 завершает первую часть курса. Она направлена на изучение особенностей аналого-цифрового преобразования. После ее разбора можно переходить к реализации проектных заданий.

Наш набор предоставляет довольно широкий выбор возможностей. Внутри ПЛИС можно реализовать различные алгоритмы обработки сигнала. Передачу и прием сигнала в аналоговом виде можно организовать при помощи модулей ЦАП и АЦП соответственно. Еще больше возможностей появится, если получится обеспечить перенос сигналов в высокочастотную область и из нее. Тогда можно будет говорить о прототипах СВЧ-приемников и передатчиков сигнала. Модуль восьмиканального АЦП, к сожалению, обладает достаточно низкой частотой дискретизации, что ограничивает полосу сигнала, но зато, благодаря восьми каналам, можно рассмотреть возможность реализации прототипа цифровой ФАР. В рамках нашего курса мы не касаемся вопросов работы с изображениями и видеопотоком, однако это также является важной и динамично развивающейся областью, поэтому предусмотрена возможность реализации такого рода проектов. Для них нам может пригодиться бинокулярная камера AN5642, дисплей AN430, входной и выходной интерфейсы HDMI базовой платы.

Вторая часть курса начинается с разбора встроенных систем интеграции (11), софт-процессоров (12) и особенностей разработки ПО для них (13). Главы 14 и 15 сконцентрированы на разборе работы элементов памяти DDR и DMA. Здесь нам придётся плотно работать с чипами DDR3 базовой платы. Глава 16 посвящена особенностям работы с высокоскоростными трансиверами, здесь мы будем реализовывать интерфейс передачи данных по протоколу Aurora и SFP-трансиверам. Глава 17 знакомит с интерфейсом PCI-e и для закрепления материала, попробуем передать данные через разъем PCIE2 на ЭВМ. В главе 18 разбирается сетевое взаимодействие, отработка будет включать передачу данных по линии Ethernet - RJ45. Глава 19 продолжает рассматривать вопросы цифровой обработки сигналов и заканчивает основной курс, работа с которым требует рассмотренных выше плат. В главе 20 мы быстро пробежимся по основам работы с системами на кристалле, а в качестве основного рабочего модуля будет выступать уже плата управления Antminer S9 на базе ZYNQ7010. В главе 21 мы рассмотрим особенности верификации проектов и отдельного аппаратного обеспечения для этого нам не потребуется.

Antminer

Теперь подробнее рассмотрим плату управления Antminer S9. Согласно обозначениям на плате, ее наименование - Antminer Control Board C41 XC7Z010 V1.3. Плата довольно распространена из-за ее экстремальной дешевизны. Изначально, что понятно из названия, это были платы управления майнингом. После потери необходимости использовать их по прямому назначению (не будем здесь рассматривать причины) они в больших количествах поступили на рынок. Многие люди начали использовать их в качестве отладочных плат. Например, в статье "Отладочная плата с жирной ПЛИС за 500р или что делать со старым антмайнером — как я делаю собственную платформу / Хабр" рассматривается такая возможность. К слову, в ней сделан анонс целого цикла статей об использовании данной платы, и если автор найдет возможность продолжить свое дело, это будет неплохим подспорьем для обучения. Из этой статьи мы позаимствуем изображение платы с некоторыми полезными заметками:

Введение в ПЛИС: Материальное обеспечение курса - 23

Что же у нас есть "на борту"? В первую очередь сама ПЛИС Xilinx xc7z010clg400_10, два элемента DDR-памяти Micron MT41K256M16HA-125:E, интерфейс JTAG, набор светодиодов, несколько тактовых генераторов, NAND Flash-память MT29F2G08AACWP, разъем для MicroSD карты, интерфейс UART, интерфейс Ethernet и пользовательские линии ввода-вывода.
Если говорить более точно, то Xilinx xc7z010 - это уже не совсем ПЛИС, это система на кристалле, которая объединяет ПЛИС с двумя процессорными ядрами ARM. Ее характеристики:

SoC

xc7z010

Processing System (PS) Процессорная система

Процессорное ядро

Dual-Core ARM Cortex-A9 MPCore Up to 866MHz

Processing System (PS) Процессорная система

Processor Extensions

NEON™ SIMDEngine and Single/Double Precision Floating Point Unit perprocessor

Processing System (PS) Процессорная система

L1 Cache

32KB Instruction, 32KB Data per processor

Processing System (PS) Процессорная система

L2 Cache

512KB

Processing System (PS) Процессорная система

On-Chip Memory

256KB

Processing System (PS) Процессорная система

External Memory Support

DDR3, DDR3L, DDR2, LPDDR2

Processing System (PS) Процессорная система

External Static Memory Support

2x Quad-SPI, NAND, NOR

Processing System (PS) Процессорная система

DMA Channels

8 (4 dedicated to PL)

Processing System (PS) Процессорная система

Peripherals

2x UART, 2x CAN 2.0B, 2x I2C, 2x SPI, 4x 32b GPIO

Processing System (PS) Процессорная система

Peripherals w/ built-in DMA

2x USB 2.0 (OTG), 2x Tri-mode Gigabit Ethernet, 2x SD/SDIO

Processing System (PS) Процессорная система

Security

RSA Authentication of First Stage Boot Loader, AES and SHA 256b Decryption and Authentication for Secure Boot

Processing System to Programmable Logic Interface Ports (Primary Interfaces & Interrupts Only) Интерфейс взаимодействия PS и PL

2x AXI 32b Master, 2x AXI 32b Slave 4x AXI 64b/32b Memory AXI 64b ACP 16 Interrupts

Programmable Logic (PL) Программируемая логика

7 Series PL Equivalent

Artix-7

Programmable Logic (PL) Программируемая логика

Logic Cells

28K

Programmable Logic (PL) Программируемая логика

Look-Up Tables (LUTs)

17,600

Programmable Logic (PL) Программируемая логика

Flip-Flops

35,200

Programmable Logic (PL) Программируемая логика

TotalBlock RAM (#36Kb Blocks)

2.1Mb (60)

Programmable Logic (PL) Программируемая логика

DSP Slices

80

Programmable Logic (PL) Программируемая логика

PCI Express

Programmable Logic (PL) Программируемая логика

Analog Mixed Signal (AMS) / XADC

2x 12 bit, MSPS ADCs with up to 17 Differential Inputs

Programmable Logic (PL) Программируемая логика

Security

AES & SHA 256b Decryption & Authentication for Secure Programmable Logic Config

Производитель представляет общую структуру семейства систем на кристалле AMD Zynq 7000 SoCs в виде следующей схемы:

Введение в ПЛИС: Материальное обеспечение курса - 24

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

Введение в ПЛИС: Материальное обеспечение курса - 25

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

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

Автор: az013

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js