DE0-Nano-SoC ещё один миникомпьютер для творчесва

Сейчас на рынке присутствует достаточно много разнообразных миникомпьютеров. Самые распространенные из них это Raspberry Pi, Orange Pi, Odroid. И есть очень популярная платформа Arduino. Но иногда случается, так что не хватает этих распространённых платформ.

Например, хочется какой нибудь миникомпьютер с не очень распространённым CAN, хочется десять UART, а может просто надо два десятка быстрых GPIO ног. Как же быть?

FPGA+CPU или в данном случае Cyclone V SoC

Один из вариантов решения проблемы может быть DevKit DE0-Nano-Soc. Данное решение построено на базе чипа Altera Cyclone V SE, а именно 5CSEMA4U23C6N. Который в свою очередь является комбинацией аппаратного ядра ARM Cortex A9 в данном случае двуядерным, и FPGA Cyclone V. Зачем может понадобиться такой тандем? А нужен он достаточно часто: FPGA хорошо подходит для быстрой обработки сигналов, обычные IO пины спокойно могут работать на сотнях мегагерц, а в моделях с аппаратными трансиверами и до шести гигагерц. А также для параллельной, конвейерной обработки поступающих сигналов. Однако описывать всё на языках вроде Verilog или VHDL достаточно сложно, медленно и неудобно. Поэтому достаточно часто была практика ставить в дизайн на FPGA реализацию процессора: специализированных NIOS II для Altera, MicroBlaze для Xilinx, варианты AVR ядер написанных энтузиазитстами и тому подобное. Из плюсов такого решения это простота, добавил в дизайн процессор и периферию и пиши себе программу на C/C++ для них, к минусам можно отнести то, что они во первых занимают ресурсы FPGA (логические ячейки, блоки памяти, PLL), во вторых достаточно медленны. Ну и в третьих несмотря на разнообразную периферию, она обычно достаточно проста, то есть поддержки DMA для UART в базовом наборе вы вряд ли найдёте, можно конечно написать своё, но это долго и достаточно сложно. С полными характеристиками чипа можно ознакомится здесь. Но рассмотрим детальней наш devkit.

DE0-Nano-SoC

Основной чип: Altera Cyclone V SE 5CSEMA4U23C6N
Часть аппаратного ядра(HPS):

  • 1GB DDR3 SDRAM (32-bit data bus)
  • 1 Gigabit Ethernet
  • USB OTG Port, USB Micro-AB(работает как в режиме хоста так и девайса)
  • Micro SD
  • UART to USB, USB Mini-B connector
  • Accelerometer (I2C interface + interrupt)
  • Кнопки: cold reset, warm reset, user button
  • Светодиод
  • LTC разём расширения

Часть FPGA:

  • EPCS128 для хранения конфигурации FPGA
  • Две кнопки
  • Четыре переключателя
  • Восемь светодиодов
  • Два 40пиновых разъёма(36 GPIO+2GND+5V Pin+3V Pin) стандарный для плат от Terasic.
  • Разъём расширения совместимый с Arduino Uno R3
  • Аналого цифровой преобразователь 8ми канальный

Выводы

Плата достаточно мощная, имеет гибкую конфигурацию, может быть использована в домашних разработках, если нужна высокая скорость или нестандартные интерфейсы, которые можно реализовать на FPGA стороне. Отлично подойдёт для повышения скила как в разработке для FPGA, так и в программировании ARM. Однако, для начального обучения FPGA я бы её не посоветовал из-за малого количества установленной периферии. Она всё же больше плата для использования, в каком либо устройстве, как готового блока управления. Ну и немного подводя итоги:

Плюсы:

  • ARM Cortex A9
  • FPGA часть на базе Cyclon V(на данный момент самый современный чип семейства Cyclone)
  • Гибкая конфигурация: FPGA часть может использовать большую часть пинов HPS части, а в свою очередь HPS часть может направлять сигналы с периферии(UART/SPi/I2C/CAN) «внутрь» FPGA а не только на заданные ноги.
  • 72 GPIO выведенных с FPGA части.
  • 8 каналов ADC
  • 1 Gb Ethernert
  • USB OTG порт

Минусы:

  • Цена: 99$ что достаточно дорого на фоне Raspberry Pi и её аналогов
  • Сложность: придётся работать как с FPGA так и с ARM частью
  • документация: документация на сам devkit очень подробна, а вот с документацией на сам чип местами всё достаточно плохо, если FPGA часть описана хорошо, то вот с HPS не так всё радужно, некоторые моменты описаны совсем не интуитивно и можно сказать поверхностно, хотя основные моменты всё же описаны хорошо.
  • Сообщество: его можно сказать нет

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

Источник

cyclone v soc, de0-nano-soc, devkit, FPGA, soc, terasic

Читайте также