Обзор плат на SoC ARM+FPGA. Часть первая. Мир Xilinx

    Часть 1. Мир Xilinx
    Часть 2. Мир Intel (Altera)

    В опубликованном ранее переводе обзора 98 «хакерских» плат немалый интерес аудитории вызвали платы на базе SoC, сочетающих в себе ядра ARM и FPGA, такие, как Parallella. И это неудивительно, ведь такая комбинация даёт воистину потрясающие возможности по сравнению с «просто» процессором или «просто» FPGA. На таких SoC можно строить системы, сочетающие в себе алгоритмичски сложные задачи, поддержку сетевых стеков, GUI и прочих вещей, проще поддающихся реализации на процессоре, и задачи, требующие жесткого реального времени, обработки сигналов, обработки изображений и другие задачи, для реализации которых удобны FPGA. Разумеется, для многих задач можно использовать простые FPGA (возможно, включив в них IP-ядро процессора типа NIOS II или MicroBlaze), многие задачи можно решить на процессоре достаточной мощности, используя операционные системы реального времени (типа RTEMS), но всё же, SoC являются в настоящее время очень привлекательным вариантом для решения множества задач, как в профессиональных областях, так и для хобби.



    В настоящее время существует множество SoC, сочетающих в себе FPGA и процессорные ядра, они имеют разную стоимость, и мы из всего множества выделим два семейчтва, относительно недорогих микросхем: Cyclone V компании Intel (Altera), и Zynq-7000 компании Xilinx. Оба семейства содержат двухъядерный ARM Cortex A9 + FPGA. Zynq также бывают одноядерные Zynq-7000S и четырёхядерные UltraScale+. Все подобные микросхемы поставляются в корпусах BGA, поэтому не стоит рассчитывать на то, что вы легко и просто спаяете такую плату дома (хотя теоретически это возможно). Но многие платы имеют вид SOM (система-на-модуле), что делает их удобными для встраивания в свои изделия, единичные или серийные.

    Другими представителями SoC являются семейства Arria V, Arria 10, Stratix 10 (Intel) и Virtex 7 (Xilinx). В чипах Xilinx Virtex также встраивались процессорные ядра PowerPC до семейства Virtex 6 включительно. Однако стоимость плат на этих чипах может быть весьма высока.

    Стоит также отметить, что в среднем цены на платы с SoC такого типа гораздо выше, чем на платы типа Raspberry Pi, это плата за гораздо большие возможности, которые вы получаете. Цены на платы начинаются примерно от 100 долларов и могут достигать нескольких тысяч долларов, и последние, очевидно, выходят за рамки, приемлемые для хобби (хотя, для кого-то, возможно, и нет). Я не стал включать в обзор такие дорогие платы, ограничившись платами максимум за несколько сотен долларов.

    Итак, Cyclone V и Zynq-7000, чем они отличаются? Аппаратно это весьма близкие системы, имеющие два ядра Cortex A9 и некоторое количество ячеек FPGA. В программном обеспечении разница есть.

    Для Intel средой разработки проектов FPGA служит Quartus Prime, а средой разработки программного обеспечения — DS-5 Altera Edition. Она позволяет (в бесплатном варианте) разрабатывать приложения под Linux, однако если вы захотите разрабатывать приложения, работающие в режиме Bare Metal (без ОС), то вам понадобится коммерческая версия DS-5. И Quartus Prime, и DS-5 существуют в версиях под Windows и под Linux. Следует понимать также, что установка и настройка этих программ под Linux потребует от вас определённых скиллов и поиска решений в интернете. В Windows всё ставится «из коробки».

    Для Xilinx Zynq-7000 (и других FPGA «седьмого» поколения) средой разработки проектов FPGA является Vivado, средой разработки ПО — Xilinx Software Development Kit (SDK). Он бесплатен и не имеет многих ограничений, которые есть у DS-5 Altera Edition. Оба продукта также доступны в версиях для Linux и для Windows, однако следует знать, что Vivado для Linux устанавливается не на любую Linux. Я успешно устанавливал его в Ubuntu, но в Debian он не заработал. Под Windows проблем возникнуть не должно. Для того, чтобы начать работать со средами разработки Xilinx, можно использовать замечательные книги — «The Zynq Book» (L. Crockett, R. Elliot и др), которая содержит «теоретическую» часть и «The Zynq Book Tutorials for Zybo and ZedBoard» (тех же авторов) для «лабораторных работ». Обе книги доступны для скачивания официально и бесплатно.



    В целом, для начинающих Xilinx Zynq является (на мой субъективный взгляд) гораздо более простым вариантом в плане изучения, с меньшими трудностями, чем в случае Intel Cyclone V. Повторюсь, однако, что это мой субъективный взгляд, основанный на моём личном опыте с той и другой системой. Если вы имеете другое мнение по этому вопросу, напишите в комментариях, будет интересно узнать и об опыте других людей.

    Для обзора я выбирал платы на основе Cyclone V и Zynq-7000, имеющиеся в продаже на текущий момент. Некоторые из них являются одиночными платами, содержащими в себе всё необходимое для подключения и работы с платой, другие состоят из базовой платы и мезонинного модуля (платы, устанавливаемой на базовую плату). Во втором случае будет указана стоимость как модуля, так и базовой платы. Возможно, я пропустил какие-то платы, если вы знаете о платах, не вошедших в обзор, прошу в комментарии.

    На что следует обращать внимание при покупке платы, кроме цены?

    Во-первых, есть ли JTAG на плате. Если его нет, то вам понадобится внешний JTAG-адаптер, который нужно будет приобретать отдельно. И в этом случае вам нужно проверить, что все сигналы JTAG выведены на разъём и доступны для использования. Без JTAG теоретически тоже можно работать, но всё же лучше, чтобы он был.


    Отдельно адаптер JTAG можно купить на aliexpress от $22,5 (разумеется, не оригинальный).

    Во-вторых, разъёмы. Разъёмы на плате могут быть «стандартные» IDC, с шагом 2,54 мм или высокоскоростные разъёмы типа FMC (Xilinx) или HSMC (Altera), или другие. Для подключения чего-либо низкоскоростного (светодиодов, кнопок, разных внешних устройств) IDC удобен, но АЦП на 125 МГц, например, через него не подключить, нужен high-speed разъём. В то же время, если у вас есть плата только с high-speed соединителем, вы попадёте в затруднительное положение, если захотите подключить к нему что-либо своё, т.к. такие разъёмы дороги, и требуют для разводки скоростных сигналов многослойную плату. Имеющиеся в продаже платы переходников HSMC-IDC также пугающе дорого стоят.

    Некоторые платы имеют разъёмы для шилдов Arduino. Уж не знаю, насколько это важно для вас, но вдруг кому-то важно. Платы производства Digilent имеют разъёмы для модулей PMOD, и, соответственно, эти модули также имеются в продаже в большом количестве. Конечно, никто не запрещает вам подключать к этим разъёмам любые свои устройства.

    В-третьих, периферия. Вам нужен не голый процессор, ведь так? Нужна поддержка сети, нужен выход видео (а, возможно, и вход видео), нужны входы и выходы аудио, иная периферия. Составьте список тех устройств, которые вам нужны или могут понадобиться, и выбирайте плату, исходя из него.

    В-четвёртых. Уровень поддержки. Плата должна иметь открытую принципиальную схему, доступные для скачивания образы Linux, документацию. Желательно наличие большого сообщества, книг, статей, роликов на youtube, которые помогут вам разобраться с неизбежными проблемами. Также уточните, есть ли для платы готовые файлы BSP (board support package), так как без них вы даже не сможете собрать проект, чтобы помигать светодиодиком.

    Также следует сказать, что все цены в обзоре приведены без учёта доставки.

    На некоторые платы цены довольно высоки, однако, на ebay можно купить (если повезёт) б/у плату с большой скидкой, хотя их, возможно, придётся ловить, полагаясь на удачу.

    Большая часть плат в этом обзоре построена на базе SoC Zynq 7010 и 7020 (также обозначаемых как XC7Z010 и XC7Z020). Для понимания места этих чипов в продуктовой линейке Xilinx Zynq-7000 см. картинку ниже. Все эти SoC имеют 2 процессорных ядра, но также существуют семейства Xilinx Zynq-7000S с одним ядром и Xilinx Zynq UktraScale с 4 ядрами.



    А сейчас приступим к обзору.

    Платы Digilent


    ZedBoard




    Производитель: Digilent
    SoC: XC7Z020 (Dual-core ARM Cortex-A9 )
    RAM: 512 MB DDR3
    Flash: 256 MB Quad-SPI
    Размеры: 160х135 мм
    Ethernet: 10/100/1000
    JTAG: On-board USB-JTAG
    Другие расширения:
    • SD card
    • USB OTG 2.0 and USB-UART
    • Analog Devices ADAU1761 SigmaDSP Stereo, Low Power, 96 kHz, 24-Bit Audio Codec
    • Analog Devices ADV7511 High Performance 225 MHz HDMI Transmitter (1080p HDMI, 8-bit VGA) 128x32 OLED
    • PS & PL I/O expansion (FMC, Pmod, XADC)

    Цена: $495 (академическая цена по запросу)

    Структурная схема платы


    Одна из самых дорогих плат в обзоре, хотя ничего особенного, кажется, на ней нет.

    Из плюсов: есть JTAG, есть разъем расширения FMC для high-speed и «простые» низкоскоростные разъёмы PMOD.

    Также большим плюсом для начинающих является то, что плату можно изучать по книге «The Zynq Book Tutorials for Zybo and ZedBoard».

    Zybo




    Производитель: Digilent
    SoC: XC7Z010 (Dual-core ARM Cortex-A9 ) 667 MHz
    RAM: 512 MB x32 DDR3 w/ 1050Mbps bandwidth
    Flash: 128 Mb Serial Flash w/ QSPI interface
    Размеры: 122 * 84 мм
    Ethernet: 10/100/1000
    JTAG: On-board USB-JTAG
    Другие расширения:

    • microSD slot (supports Linux file system)
    • High-bandwith peripheral controllers: 1G Ethernet, USB 2.0, SDIO
    • Low-bandwidth peripheral controller: SPI, UART, I2C
    • HDMI вход/выход
    • VGA выход 16 бит/пискел
    • OTG USB 2.0 PHY (host и device)
    • EEPROM, содержащая уникальный 48-битный идентификатор
    • Аудиокодек, выход на наушники, вход микрофона, линейный вход
    • GPIO: 6 кнопок, 4 переключателя, 5 LEDs
    • 6 портов PMOD

    Цена: $189 (академическая цена по запросу)

    Структурная схема платы


    «Уменьшенный» вариант ZedBoard. Установлен SoC XC7Z010, и нет FMC. В остальном плата аналогична Zedboard. Интересно то, что высокоскоростные сигналы в виде 100-омных дифференциальных пар выведены на разъём PMOD (подробности см. в документации). При изучении также можно руководствоваться книжкой «The Zynq Book Tutorials» при изучении.

    Arty Z7-10, Arty Z7-20




    SoC: Arty Z7-10 — Zynq 7010, Arty Z7-20 — Zynq 7020
    RAM: 512MB DDR3 with 16-bit bus @ 1050Mbps
    Flash: 16MB Quad-SPI Flash
    Ethernet: Gigabit Ethernet PHY
    Размеры: 88 * 109 мм
    JTAG: USB-JTAG
    Цена: $149 (Arty Z7-10), $209 (Arty Z7-20)

    Другие возможности:

    • USB UART
    • USB OTG
    • 4 push-buttons
    • 2 slide switches
    • 4 LEDs
    • 2 RGB LEDs
    • Up to 49 Total FPGA I/O
    • HDMI вход и выход

    Маленькая плата с богатыми возможностями. Есть вход и выход HDMI, аудиовыход, два разъёма PMOD. В принципе, всё, что нужно для начала работы с Zynq. Очень хороший вариант для начинающих. На github доступны разные файлы примеров, BSP и прочее.

    PYNQ-Z1




    SoC: Zynq 7020
    RAM: 512MB DDR3 with 16-bit bus @ 1050Mbps
    Flash: 16MB Quad-SPI Flash
    Ethernet: Gigabit Ethernet PHY
    Размеры: 88 * 124 мм
    JTAG: USB-JTAG
    Цена: $229 (академическая цена по запросу)

    Другие возможности:

    • USB UART
    • USB OTG
    • 4 push-buttons
    • 2 slide switches
    • 4 LEDs
    • 2 RGB LEDs
    • Up to 49 Total FPGA I/O
    • HDMI вход и выход

    Плата предназначена для демонстрации возможностей проекта Pynq (Python на Zynq).

    Аппаратно плата является почти полным аналогом Arty Z7-20, отличаясь от неё только наличием микрофона и выключателя питания. К ней, соответственно, подходит всё ПО для Arty Z7-20, включая файлы BSP.

    Платы Avnet


    MicroZed




    Структурная схема платы



    Производитель: Avnet
    SoC: Zynq 7010 или Zynq 7020
    RAM: 1 GB of DDR3 SDRAM
    Flash: 128 Mb of QSPI Flash
    Ethernet: 10/100/1000
    JTAG: нет
    Размеры: 102x57 мм
    Цена: Zynq 7010 — $178, Zynq 7020 — $213 (в варианте Commertial Grade)

    Другие возможности:

    • USB-UART
    • 2x6 Digilent Pmod
    • User LED and push switch

    Эта плата является модулем для установки на базовую плату.

    Плюсом платы является то, что про неё написана целая книга: «The MicroZed Chronicles — Using the Zynq 101» (Adam Taylor), даже целых две части. Эта книга основана на материале из блога автора книги. Все эти материалы доступны в сети бесплатно, или вы можете купить книгу по $8,85 за каждую часть (Kindle edition).

    Базовых плат к MicroZed три.

    Первая — MicroZed Breakout Carrier Card



    Самая простая плата, содержит только разъёмы и цепи питания.
    Цена: $59

    Вторая — MicroZed I/O Carrier Card



    Цена: $149
    Плата большего размера, имеет разъёмы PMOD и переключатели.

    Третья — MicroZed Carrier Card Kit for Arduino



    Отличается от второй наличием разъёмов Arduino и меньшим количеством разъёмов PMOD.
    Цена: $89.00

    PicoZed




    Структурная схема


    Производитель: Avnet
    SoC: Zynq 7010, Zynq 7015, Zynq 7020, Zynq 7030
    RAM: 1 GB of DDR3 SDRAM
    Flash: 128 Mb of QSPI Flash, 4 GB eMMC
    Ethernet: 10/100/1000
    JTAG: нет
    Размеры: 102x57 мм
    Цена: Zynq 7010 — $178, Zynq 7015 — $265, Zynq 7020 — $213, Zynq 7030 — $375

    Другие возможности:

    • USB 2.0 PHY

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

    Модуль без каких-либо внешних разъемов, и без базовой платы его использовать нельзя.
    На данный момент единственной базовой платой является PicoZed FMC Carrier Card V2:



    Цена: $349

    PicoZed (SDR) Development Kit/ADRV9361




    Структурная схема


    Производитель: Avnet, Analog Devices
    SoC: Zynq 7035
    RAM: 1 GB of DDR3L DRAM
    Flash: 256 Mb of QSPI Flash
    Ethernet: 10/100/1000
    JTAG: нет
    Размеры: 100x62 мм
    SOM выпускается в вариантах 1x1 (один приемный канал и один передающий канал) и 2х2 (так называемый режим MIMO).
    Цена SOM: $549 (1x1), $1095 (2x2) (в настоящее время отсутствует в продаже, см. подробности ниже)
    Цена базовой платы ADRV1CRR-BOB: $199
    Цена базовой платы ADRV1CRR-FMC: $599

    Другие возможности:

    • USB 2.0 OTG ULPI PHY
    • Analog Devices AD9361-BBCZ Integrated RF Agile Transceiver
    • Miniature RF connectors – 4 TX, 4 RX, 2 TX monitor

    Не следует путать эту плату с PicoZed, это совершенно разные вещи. Плата PicoZed SDR предназначена для построения SDR (software defined radio) трансивера, и имеет для этого микросхему аналогового фронтенда AD9361. Сама по себе эта микросхема очень недешевая (оптовая цена производителя $175 для партии от 100 шт.), что сказалось на стоимости платы. К тому же эта плата фактически является SOM-модулем, и для неё нужна базовая плата (PicoZed SDR Breakout Carrier). Базовые платы для PicoZed SDR выпускались в двух вариантах, один из которых вы можете видеть на фотографии ниже.



    А теперь плохая новость: Оба варианта платы PicoZed SDR Breakout Carrier, как и сама PicoZed SDR, сняты с производства компанией Avnet, но компания Analog Devices предлагает эти платы под названием ADRV9361. В настоящее время плата от AD находится в состоянии Pre-Release, и купить её пока нельзя. Цена, указанная в описании, это последняя известная цена Avnet на эту плату.

    UltraZed-EG


    Всё-таки я решил включить в обзор одну плату на Zynq UltraScale.



    Структурная схема


    Производитель: Avnet
    SoC: Zynq UltraScale+ MPSoC XCZU3EG-SFVA625
    RAM: 2GB DDR4 SDRAM
    Flash: 64MB Dual QSPI Flash
    Размер: 51x89 мм
    Ethernet: 10/100/1000
    JTAG: нет
    Цена: $535

    Самая мощная плата из приведённых в обзоре, основана на четырёхядерном Zynq UltraScale+. Требует для работы установку на базовую плату.

    Базовые платы:

    UltraZed IO Carrier Card



    Цена: $499

    UltraZed PCIe Carrier Card



    Цена: $499

    MiniZed




    Структурная схема


    Производитель: Avnet
    SoC: Zynq 7Z007S
    RAM: 512 MB DDR3L
    Flash: 128 Mb QSPI flash, 8 GB eMMC
    Размеры: 71x76мм
    Ethernet: нет
    JTAG: USB JTAG на плате
    Цена: $89

    Другие возможности:

    • Wi-Fi 802.11b/g/n
    • Bluetooth 4.1 plus EDR and BLE (Bluetooth Low Energy)
    • USB 2.0 Host
    • USB UART
    • Термодатчик и акселерометр
    • 2 х PMOD

    Простая и относительно дешевая плата на одноядерном 7Z007S. Неплохой вариант за свою цену. Огорчает отсутствие Ethernet, но зато есть Wi-Fi и Bluetooth, а с ним всё становится лучше.

    Платы MYIR Tech Limited


    Теперь будут платы от компании MYIR Tech Limited (http://myirtech.com/). Эта компания производит множество плат, не только на Xilinx Zynq, и устанавливает на свою продукцию относительно невысокие цены.

    Z-turn Lite




    Структурная схема платы


    SoC: Zynq 7007S или Zynq-7010
    RAM: 512MB DDR3 SDRAM
    Flash: 4GB eMMC Flash, 16MB QSPI Flash
    Размер: 91 x 63 мм
    Ethernet: 10/100/1000M Ethernet
    USB: USB2.0 OTG
    JTAG: нет
    Цена: $69 (7007S), $75 (7010)

    Самая дешевая плата в обзоре, тем не менее, выглядит вполне достойно. Может устанавливаться на базовые платы, доступные для Z-turn Board (см. далее). Некоторым недостатком можно считать то, что большая часть пинов I/O выведена на специальный разъём снизу платы, но никаких базовых плат не предлагается.

    Z-turn Board




    Структурная схема платы



    SoC: Zynq 7010 или Zynq 7020
    RAM: 1GB DDR3 SDRAM
    Flash: 16MB QSPI Flash
    Размер: 102х63 мм
    Ethernet: 10/100/1000
    JTAG — нет, разъем доступен на плате.
    Цена: $99 (Zynq 7010), $139 (Zynq 7020)

    Другие возможности:

    • USB_UART, USB2.0 OTG, CAN, HDMI, TF, …
    • Three-axis Acceleration Sensor and Temperature Sensor

    На хабре уже был обзор этой платы.
    Недорогая плата, может использоваться самостоятельно, но лучше сразу купить базовую плату.
    Также в продаже есть LCD — дисплей к этой плате, модуль камеры, модуль Wi-Fi.
    Можно также приобрести базовую плату Z-turn IO Cape:



    Цена $35

    MYD-C7Z010/15/20 Development Board




    Структурная схема


    SoC: Zynq 7010, Zynq 7015 или Zynq 7020
    RAM: 1GB DDR3 SDRAM
    Flash: 4GB eMMC, 32MB QSPI
    Размер: 190х110 мм
    Ethernet: 10/100/1000
    JTAG: нет
    Цена: $309 (Zynq 7010), $369 (Zynq 7015), $329 (Zynq 7020)

    Другие возможности:

    • 4 x USB2.0 Host, CAN, HDMI, LCD, TF
    • 1 x XADC, 3 x PMoD, 1 x FMC
    • Optional 4.3 or 7 inch LCD/TSP

    Самая богато оснащённая из плат в обзоре. Предлагается сразу комплект из базовой платы и SoM-модуля, цена указана за комплект. Цена может показаться высокой, однако за такой набор возможностей это довольно умеренная цена. Плату стоит приобрести, если вы хотите делать серьёзные проекты, с применением FMC и большим количеством другой периферии. Но следует помнить, что на этой плате, как и на других платах этой фирмы, нет USB-JTAG.

    Trenz Electronic


    Немецкая компания Trenz Electronic (trenz-electronic.de) предлагает множество плат на Zynq-7000 и Zynq UltraScale, но явная ориентированность на рынок промышленных SOM и довольно высокие цены делают эти платы не очень привлекательными для наших целей. Однако я включил в обзор три платы от Trenz, просто для порядка.

    DIPFORTy1 «Soft Propeller»


    SoC: Zynq-7010
    Flash: 16 MByte
    RAM: нет
    JTAG: нет
    Ethernet: нет
    Цена: €59.00
    Размер: 18*51 мм

    Другие возможности:

    • RGB LED (PL I/O connected)
    • «Done» LED (inverted polarity)
    • User LED (ARM CPU MIO GPIO)
    • MicroSD Card socket (MIO, ZYNQ secondary boot media)
    • Sil1143 Proximity and ambient light sensor

    Когда-то компания Parallax выпустила «многоядерный микроконтроллер» Propeller. Компания Trenz сделала совместимую с ним плату под панель DIP-40 с чипом Zynq.



    Структурная схема


    Памяти нет, флеш 16Mb. Запустить Linux на этой плате не получится, т.к. нет памяти, и в целом, смысла в приобретении этой платы практически нет.

    ZynqBerry



    Плата на Zynq в формате Raspberry Pi

    SOC: Zynq 7007S, Zynq 7010
    RAM: 512 MByte DDR3L SDRAM
    Flash: 16 MByte
    Ethernet 10/100
    USB: 4 x USB with power switches
    HDMI: есть
    JTAG: On-board USB JTAG
    Цена: €99 (Z-7007S), €119 (Z 7010)

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

    ArduZynq




    SoC: Zynq 7007S, Zynq-7010
    RAM: 512 MByte DDR3L
    Flash: 16 MByte SPI Flash
    Ethernet: нет
    JTAG: On-board USB JTAG
    USB: USB OTG, USB UART
    HDMI: нет
    Цена: €89 (Z 7007S), €99 (Z 7010)

    Другие возможности:

    • 12 MHz MEMS Oscillator low power consumption
    • 23 FPGA I/O's available on board-to-board connectors
    • MicroSD Card socket
    • RGB LED (PL I/O connected)
    • «Done» LED (inverted polarity)

    Плата на Zynq в формате Arduino. Есть два варианта: на Zynq XC7Z007S (одноядерный) и на Zynq-7010 (два ядра). Довольно слабая плата, но и цена не высокая по сравнению с другими.

    Теперь рассмотрим платы различных других производителей.

    Parallella




    Структурная схема


    Выпускается в трёх вариантах: Parallella Microserver (P1600), Parallella Desktop (P1601), Parallella Embedded (P1602)

    SoC: Parallella Microserver — Z7010, Parallella Desktop — Z7010, Parallella Embedded — Z7020
    RAM: 1 GB DDR3
    Flash: нет
    JTAG: нет
    Ethernet: 10/100/1000
    USB: нет (Microserver), есть (Desktop, Embedded)
    HDMI: нет (Microserver), есть (Desktop, Embedded)
    Размер: 90 х 53
    Цена: Parallella Microserver — Z7010 — $126, Parallella Desktop — $149, Parallella Embedded — нет в продаже

    Другие возможности: сопроцессор Epiphany

    Эта плата уже рассматривалась в обзоре ранее. Отличительной особенностью данной платы является чип «Epiphany» компании Adapteva, 16-ядерный процессор, который может взаимодействовать с ядром ARM в SoC Zynq. Именно поэтому плату в рекламе называют 18-ядерной, т.е. 2 ядра ARM + 16 ядер Epiphany.

    Практических применений я здесь не вижу, но поиграться можно очень хорошо. Теперь немного печальных известий. Компания Adapteva планировала выпуск также 64-ядерной и 1024-ядерной версии чипа, однако основатель компании Андреас Олофсон признал, что компания не добилась коммерческого успеха, несмотря на хорошие технические характеристики чипов. Он ушёл на работу в DARPA, и продолжения истории не будет (http://www.adapteva.com/andreas-blog/adapteva-status/).

    Для того, чтобы подключать к плате какие-либо устройства, вам понадобится базовая плата Porcupine Breakout Board, вот такая:



    Цена платы: $45.
    Плата Parallella оснащена hi-speed разъёмами, на которые выведены все линии ввода-вывода. Минус такого решения в том, что подключить к ней что-то без Breakout-платы очень затруднительно.

    Встроенный адаптер JTAG на плате отсутствует, линии JTAG выведены на разъём платы. Поэтому, если вы планируете работу с платой через JTAG, сразу приобретите Breakout-плату и отдельный JTAG-адаптер.

    Snickerdoodle




    Структурная схема


    Выпускается в трёх вариантах: Snickerdoodle One, Snickerdoodle Prime LE, Snickerdoodle Black

    SoC: One — Zynq 7010, Prime LE, Black — Zynq 7020
    RAM: One, Prime LE — 512MB LPDDR2, Black — 1Gb LPDDR2
    Flash: 16 MB XIP NOR
    Размер: 51 x 89 мм
    Ethernet: на базовых платах
    JTAG: нет
    HDMI: на базовых платах
    USB: USB UART + USB Host на базовых платах
    Цена: One — $95, Prime LE — $145, Black — $195
    Другие возможности:

    • One, Prime LE — 2.4GHz 802.11n Wi-Fi
    • Black — 2.4GHz + 5GHz 802.11n 2x2 MIMO Wi-Fi, Bluetooth Classic & BLE, copperHead heat sink, free SDSoC license

    Базовые платы


    breakyBreaky



    Плата breakyBreaky. Цена — $45

    piSmasher SBC



    Плата piSmasher SBC. Цена — $195

    Болльшой плюс платы в том, что разработчики написали целую книгу для начинающих пользователей: Snickerdoodle book. Она не такая объёмная и фундаментальная, как «Zynq Book» или «MicroZed Chronicles», но многие другие производители не предоставляют никакой информации, кроме самого элементарного минимума, и это следует учитывать, особенно если вы начинающий разработчик.

    Zedboard (клон китайского производства)




    Основные характеристики и структурная схема платы такие же, как у платы Zedboard.
    Цена: $260

    Клон Zedboard, сделанный в Китае. Нет FMC разъёма, вместо него просто штыревые разъёмы. Процессор и его обвязка смонтированы на SoM-модуле, который снимается с базовой платы и может быть установлен в ваше изделие.

    Учитывая цену почти в два раза меньше оригинальной Zedboard, очень неплохой вариант.

    Red Pitaya




    SoC: Zynq-7010
    RAM: 256MB DDR3
    Flash: нет
    Ethernet: 10/100/1000
    USB: OTG, MicroUSB (console)
    JTAG: нет
    Размер: 107 x 60 мм
    Цена:
    от €199 за 10-битные ЦАП/АЦП
    от €259 за 14-битные ЦАП/АЦП
    Также есть различные варианты комплектации и скидки для студентов

    Другие возможности:

    2 канала ADC 125 MSPSx14bit или 10 bit
    2 канала DAC 125 MSPSx14bit или 10 bit
    4 канала ADC 100 kSPSx12bit
    4 канала DAC 100 kSPSx12bit

    Плата стоит несколько особняком от остальных, т.к. позиционировалась разработчиками не столько как девборда, сколько как замена целом ряду измерительных приборов: осциллографу, генератору, анализатору спектра и т.п. Конечно, полноценных профессиональных приборов (даже самого начального уровня) она не заменит, потому что приборы не состоят из одного АЦП, там нужно ещё много всякого.

    Тем не менее, плата интересная. Главный минус в том, что это closed source hardware, т.е. схемы в открытом доступе нет. Будьте внимательны.

    OZoM: Open Source Zynq on Module




    SoC: Zynq 7010
    RAM: нет
    Flash: 32Mbyte
    Ethernet: нет
    USB: нет
    JTAG: нет
    Размер: 75x40 мм
    Цена: €250 (ожидаемая цена, выпуск платы не состоялся)

    В начале статьи я написал, что, хотя собрать самому устройство на Zynq весьма сложно, тем не менее, теоретически, это возможно. Проект OZoM задумывался как Open Hardware проект такого модуля. Он выставлялся на Indiegogo, но не собрал достаточно средств. Этого можно было ожидать, впрочем, крайне маленькие возможности при сильно завышенной цене делают покупку платы бессмысленной. В настоящее время документация по нему доступна тут.

    К сожалению, высокими характеристиками плата похвастаться не может. Памяти нет, Linux запустить нельзя. Большой пользы в такой плате нет.

    В следующей части будут рассмотрены девборды на базе SoC Intel(Altera) Cyclone V.
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 33
    • 0
      Долго пытался вспомнить что такое производила Intel доступное людям, и удивлялся почему не планируется обзора на Altera, потом вспомнил что Intel купил Altera и теперь она тоже Intel.
      • +1
        Немного поправил название, чтобы не запутывать людей.
      • +1
        Жаль Xilinx не стала развивать схематик в Vivado. В ISE он был хоть и не фонтан, но я приноровился и топ уровень проекта любил рисовать в нем. И кто бы что ни говорил — это реально удобно в плане наглядности! Открываешь проект многолетней давности — и все понятно что с чем и как соединено без всякой докоментации, которая еще и не факт что актуальна.
        • +1
          Меня больше бесит, что тот же цинк сложно использовать как просто ПЛИС, т.к. он не ПЛИС с процессором, а процессор с ПЛИС.
          А в виваде они много чего ещё поубивали…
          • +3
            Самое главное, что убили в Виваде — это возможность писать код в hdl-е на уровне примитивов и назначать (там же, в hdl-коде) этим примитивам иерархические атрибуты placement-а. С этого момента КПД запихивания больших регулярных структур в кристалл трагически упал, как по занимаемым ресурсам, так и по достижимой частоте.
            Я уже не говорю про волшебный атрибут ROUTE, при помощи которого (а также низкоуровневого редактора, пива и такой-то матери) можно было в этих регулярных структурах ещё и развести руками критические локальные цепи у блоков нижнего уровня и не ждать потом часами, пока роутер пытается сделать то же самое (безуспешно, причём).
            • 0
              Да я смотрю не только у нас на работе на неё плюются все кому не лень. Зато в виваде сколько няшек стало: при синтезе или разводке и в верхнем углу что-то крутится, и внизу, и прогресс-бар переливается — ну прямо красота сплошная! А если открыть дебаггер, то вообще попадаешь в пульт управления космическим кораблём — куда уж тут старому и дряхлому чипскопу ;)

              Нет, плюсы-то тоже есть. TCL полноценный. В HLC можно из Си сделать HDL описание — не сказать что бы оно хорошо, но когда надо сделать быстро, то, например, фильтры делаются довольно быстро и даже работают. Правда если нужна скорость, я чую, всё равно руками придётся всё описывать. Но как-то… всё равно создаётся ощущения что писали САПР индусы для менеджеров, а инженеров, как всегда, спросить забыли)
        • 0
          Можете рассказать о примерах практического использования подобных плат, именно в использовании fpga-части?
          • 0
            Например, на fpga делается обработка сигналов в осциллографах и других приборах.
            • 0
              Реализация сложной математики — это будет не очень интересно. Есть квадратурный аналоговый сигнал на входе. Его надо принят с АЦП, отфильтровать, фазовую подстройку сделать если надо, демодулировать, накопить и скореллировать для выделения какого-нибудь синхросигнала. Всё это реально можно слелать именно в ПЛИСе на хороших скоростях. Для разработки и оценки вполне может пригодиться какая-то макетная плата.

              Для новичков есть интересный проект — марсоход. Там в блоге много чего доступно расписано. У меня статья есть, где я с этой платкой поигрался немного — вот простой и понятный практический пример именно ПЛИСовой части.
              • 0

                Во-первых это платы, предназначенные для обучения, т.е. практического применения от них ожидать некорректно, но сделать можно многое, лишь бы позволяла периферия. Во-вторых, если речь о самих системах на чипе, ардуинщику-любителю такие девайсы не актуальны. Чуть более актуальны для радиолюбителей, которые хотят собрать свой SDR-трансивер (тысячи их, уже готовых и продающихся). Для каких еще "домашних" хобби это может понадобиться я не знаю. На работе занимаюсь парой проектов на ПЛИС, там и SDR и демодуляторы. До SoC пока не докатились, хотя отладочная плата с цинком есть, и, похоже, все к ним и движется. Ну и еще одно — для вашего домашнего использования может оказаться оправданным использование отдельных микроконтроллера и ПЛИС, это сделает проект дешевле, проще в сборке и снизит временные затраты на изучение всего этого барахла.

              • +5
                Что то я совсем перестал понимать аудиторию ГТ. Эта публикация «весит» всего 7мб, но автор не поленился поставить предупреждение про трафик.
                Публикация же про 4G интернет в тьмутаракани весит в три раза больше и никаких предупреждений нет, но стоило этим возмутится, как меня дружно заминусовали, причем даже карму загадить не поленились.
                Люди что с вами не так?
                • +2
                  Несправедливость. Но вместо жалоб стоит не полениться и написать годную статью на ресурс — и плюсы подтянутся, и минусы будут реже раздавать.
                • +1
                  Спасибо! Цены порадовали. По другому стал смотреть на Zynq. Остался только вопрос — на многих платах нет JTAG. А как без него прошивку в FPGA заливать? Через ARM?
                  • +1
                    Имеется в виду, что там нет моста USB-JTAG. Физические линии JTAG есть везде.
                    Но можно и через ARM. Можно даже поднять ftp, и кидать файл прошивки туда.
                    • 0
                      кстати, а какие накладные расходы по заливки кода FPGA? есть ли какие то лимиты? возможно ли обновление на лету только части?
                      • +1
                        Не понял вопрос. В каком смысле накладные расходы?
                        Я не уверен насчёт части, может быть, и можно. Я не пробовал. Заливка прошивки полностью делается довольно просто.
                        • 0
                          Может быть количество перепрошивок ограничено?
                          Или процесс прошивки очень длинный?
                          • +1
                            нет, не оганичено, и не длинный
                            • 0
                              Быстро, длинно — это не ответ, все же относительно.

                              Cкажем так, возможна технология, по аналогией с jit компиляцией, на лету, оптимизирующая куски кода в виде fpga прошивки? имеет ли она смысл?
                              • 0
                                Я не слышал про такие технологии, и не думаю, что это имеет смысл.
                                • +2

                                  Есть OpenCL для генерации FPGA (активно рекламируется, но далеко не любой код будет преобразован в эффективную схему). Основная проблема для использования "на лету" — очень высокая длительность синтеза схемы (также требуется очень много памяти и у вендоров обычно нет полного комплекта PAR утилит, работающих на ARM).
                                  https://www.altera.com/en_US/pdfs/literature/wp/wp-01173-opencl.pdf
                                  Пример JIT на Zynq 7020:
                                  https://arxiv.org/pdf/1705.02730.pdf Resource-Aware Just-in-Time OpenCL Compiler for Coarse-Grained FPGA Overlays


                                  Most vendor OpenCL tools simply generate intermediate RTL that must still be mapped through the FPGA backend flow. Unfortunately, the size and fine granularity of modern FPGA fabrics means that PAR (place and route) times are very long, thereby preventing runtime compilation of OpenCL kernels.
                                  The first (blue) bar shows the PAR time using Vivado 2014.2 running on a HP Z420 workstation with an Intel Xeon E5-1650 v2 CPU running at 3.5 GHz with 16 GB of RAM, targeting the Zynq FPGA fabric.
                                  • 0
                                    Спасибо, это интересно.
                                  • +3
                                    Заливка прошивки происходит непосредственно в FPGA по аналогии с RAM — там нет ограничений на запись (время сильно меньше секунды). Частичная запись тоже возможна (Partial Reconfiguration). Насколько я знаю при этом часть прошивки которая не меняется продолжает работать.
                            • +1
                              Из-под Linux, работающий на ARM, заливается на ура. Я тоже не занимался прошивкой по частям: FPGA маленькая, чтобы таким заниматься.
                              P.S. Из интересных особенностей (если про них вопрос). Можно ресетить FPGA или прошивать FPGA только когда нет передачи данных (и нет неотвеченных запросов) по AXI-шине (внутренние шины от ARM к FPGA и обратно), а то может нарушиться протокол AXI и ARM зависнет.
                        • 0
                          Спасибо за отличный обзор! Последние дня 4 как раз искал devkit: adc+fpga+arm (заказал red pitaya).
                          • 0
                            1) Наверное, стоило бы добавить в обзор и Xilinx ZC702 Evaluation Kit, хотя он и стоит заметно дороже.
                            2) SDK работает у меня на Debian с XFCE отлично, если перед запуском сказать export SWT_GTK3=0.
                            3) Хотелось бы еще увидеть в статье ссылки на ресурсы (кроме сайтов самих плат). Например, мне очень помог www.wiki.xilinx.com.
                            • 0
                              Спасибо за ваш комментарий.
                              Я смотрел информацию по Xilinx ZC702 Evaluation Kit, и решил не добавлять, т.к. эта плата ничем особым не лучше, чем, например, Zedboard, при большей цене.
                              Ресурсы, согласен, надо добавить. Добавлю во вторую часть обзора. В качестве ресурса также рекомендую Adam Taylor’s MicroZed Chronicles (https://forums.xilinx.com/t5/Xcell-Daily-Blog/bg-p/Xcell/label-name/zynq).
                            • +1
                              Отличный обзор!
                              Как скоро ожидать Часть 2. Мир Intel (Altera)?
                              • +1
                                Спасибо!
                                На следующей неделе, более точно пока не могу сказать.
                              • 0
                                Фотографии piSmasher SBC и breakyBreaky малость перепутаны.
                                piSmasher SBC
                                image
                                breakyBreaky
                                image
                                • 0
                                  Спасибо, исправил.
                                  Также хочу напомнить, что о замеченных ошибках, опечатках и т.п. здесь принято писать в личку.
                                • +1

                                  Как раз задумывался о том чтобы побаловать себя платой производства Digilent (типа Arty Z7-10), но внезапно у них на сайте обнаружил, что регистрация аккаунта со страной проживания "россия" невозможна, а в условиях экспорта сказано что россиянам нужно дополнительно согласовывать возможность покупки (что вряд ли возможно, если аккаунт не создать). Неужели всё настолько плохо, и достать их по разумной цене в россии невозможно?

                                  • 0
                                    Я покупал аналогичные платы на ebay. Даже если продавец не отправляет посылку в Россию (хотя многие отправляют), можно воспользоваться услугами компании-форвардера. Т.е. у вас будет почтовый адрес в США, а они уже отправят к нам за дополнительную плату. Я пользуюсь компанией Shipito, но сейчас есть и другие, они постоянно рекламируются на гиктаймсе. Те же компании могут сделать покупку за вас в любом магазине, в т.ч. и у digilent.
                                    Так что всё реально.

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