FPGA или микроконтроллер: что же выбрать?

холивар, Микроконтроллеры, FPGA

Автор: KeisN13

Дата: 19.01.2021 08:22

Категория:Познавательное

877

0

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

Микроконтроллер же имея фиксированную архитектуру и фиксированный набор команд (Instruction Set Architecture (ISA)) - не может обрабатывать данные за пределами архитектуры или набора команд. Однако, ПЛИС благодаря своей гибкой архитектуре могут обрабатывать данные и выполнять вычисления за пределами своих возможностей из-за наличия гибкой программируемости, которая может управлять аппаратными ресурсами, что делает ПЛИС уникальной платформой для выполнения встроенных системных задач.

Мы обсудим сходства и различия между ПЛИС и микроконтроллером.

Архитектура

Первое существенное различие между ПЛИС и микроконтроллером связано с его аппаратной архитектурой. Микроконтроллер имеет традиционную архитектуру, основанную на архитектуре набора команд (ISA), как показано на Рис.1. ISA фиксирована для каждого микроконтроллера, программист не может инициировать какую-либо команду не из ISA. Центральный процессор микроконтроллера-это типичный процессор, задача которого состоит в последовательном выполнении инструкций. Микроконтроллеры поддерживают GPIO вместе с таймерами и элементами памяти, например RAM/ROM. Современные микроконтроллеры также оснащены интерфейсами USB, PCI-интерфейсами для внешней передачи данных.

Рис. 1: структурная схема микроконтроллера (источник: Renesas)

Архитектура ПЛИС отличается от микроконтроллеров.Даже архитектура ПЛИС сама по себе является большой областью. Она включает в себя  Look-up-Tables (LUT) -таблицы истинности или поиска , конфигурируемые логические блоки (CLBs), элементы маршрутизации, матрицу переключения между CLB и блоки ввода-вывода, как показано на Рис. 2. Исследователи работают над архитектурой FPGA, чтобы сделать ее более энергоэффективной и увеличить ее вычислительные возможности.

Рисунок 2: архитектура ПЛИС

Центральным вычислительным элементом ПЛИС является LUT, который сконструирован таким образом, что реализует любые фундаментальные (базовые) комбинационные логические элементы, например NAND, NOR, OR, AND. Все эти основные логические элементы могут быть реализованы с помощью LUT. Будучи связанным с проектированием цифровых устройств, вы должны знать, что если вы можете реализовать любой базовый логический элемент (nand, nor и т. д.), то можете реализовать любую комбинационную схему. Затем с помощью триггера LUT можно использовать и для реализации любой последовательной логики.

Здесь следует отметить, что все, что вы реализуете на ПЛИС, будет преобразовано в базовые логические элементы (nor, and, xor и тд), любая функция, любой дизайн преобразуются в базовые логические элементы  с помощью инструментов разработки на ПЛИС, например  Vivado или Quartus II. В ПЛИС также хорошо поддерживаются внешние интерфейсы, GPIO, память, а современные ПЛИС оснащены секциями DSP, PCIe и многим другим.

Стоимость

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

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

Технологический процесс

Микроконтроллер содержит одно или несколько процессорных ядер (CPU) вместе с  ОЗУ, а также флэш-память, содержащую программную память, которая также называется машинным кодом (. hex-файл), каждый машинный код представляет собой инструкцию, выполняемую на процессоре.

Однако, программирование ПЛИС зависит от технологии памяти. Существуют различные технологии  построения ПЛИС, например на основе SRAM или флэш-памяти и однократно программируемые ПЛИС. Ячейка памяти хранит конфигурацию ПЛИС, которая написана на языках RTL, и с помощью среды разработки преобразуется код в файл .bit, который используется для конфигурирования ПЛИС.

Энергопотребление

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

Микроконтроллеры имеют скорость обработки всего несколько МГц и потребляют гораздо меньше энергии по сравнению с ПЛИС. Вы также можете найти режимы холостого хода или энергосбережения на микроконтроллерах, что делает их подходящим выбором во многих случаях. Некоторые из них имеют токи сна менее 1 мкА.

На рынке очень мало ПЛИС с такими низким энергопотреблением, сравнимыми по этому параметру с микроконтроллерами.

Приложения

Возможность параллельной обработки на ПЛИС даёт более высокие вычислительные возможности. Её способность выполнять несколько команд за один такт делает её целевым устройством для цифровой обработки сигналов, поскольку разработчик может выполнять действия сразу с несколькими потоками данных. В то время как разработчик для микроконтроллеров должен был бы учитывать продолжительность времени, необходимого для выполнения инструкций. Благодаря возможности параллельной обработки FPGA может использоваться в следующих приложениях:

  • Дата-Центр
  • Аэрокосмическая И Оборонная Промышленность
  • Прототипирование ASIC
  • Автомобильный сегмент
  • Broadcast & Pro AV
  • Обработка Видео и изображений
  • Проводная и беспроводная связь

Микроконтроллер может быть использован в небольших приложениях:

  • Бытовая Электроника
  • Медиа-Приложения
  • Промышленное Применение
  • Автомобильной Промышленности

Таблица сравнения ПЛИС и микроконтроллеров

Критерий FPGA/ПЛИС Микроконтроллер
1 Программирование требуются специализированные знания Легко программируется
2 Аппаратный Дизайн Сложный Простой
3 Архитектура LUT based Processor based
4 Среды разработки Могут быть дорогостоящими и вендернозависимыми, и так же open source
5 Стоимость Высокая Низкая
6 Потребление / скорость Высокое Низкое
7 Обработка Параллельная Последовательная

Преимущества микроконтроллеров

  • Микроконтроллеры легко программируются
  • Микроконтроллеры лучше всего подходят для простых проектов
  • Микроконтроллеры дешевле ПЛИС

Недостатки микроконтроллеров

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

Преимущества ПЛИС

  • Реконфигурируема
  • FPGA не имеет фиксированного набора команд
  • Процессные функции ПЛИС при параллельной обработке

Недостатки ПЛИС

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

 

Оригинал статьи Поддержать перевод Поддержать сообщество

 

Всего комментариев : 0
avatar

Последние статьи нашего сообщества

Xilinx FPGA

ZYNQ HW: EBAZ4205: часть 2

Подробнее

Xilinx FPGA

ZYNQ HW: EBAZ4205: Часть 1

Подробнее

SystemVerilog

UVM тест таблицы sin/cos

Подробнее

Познавательное

FPGA или микроконтроллер: что же выбрать?

Подробнее

Познавательное

Обзор научных работ, связанных с FPGA

Подробнее

Аналитика и обзоры

Пролог: Исследование Функциональной Верификации Исследовательской Группы Уилсона 2020 Года

Подробнее

High Level Synthesis

Основы AXI часть 7 - Подключение к PS с помощью AXI4-Lite и Vitis HLS

Подробнее

Xilinx Vivado

Vivado Quality of Result (Перевод статьи MicroZed Chronicles)

Подробнее

High Level Synthesis

Основы AXI часть 6 – Введение в AXI4-Lite в Vitis HLS (часть 1)

Подробнее

High Level Synthesis

Сможет ли HLS код побить HDL по производительности?

Подробнее
Все статьи

Календарь актуальных событий и мероприятий

Вебинар (состоится 25-02-2021)

Быстрый старт с симулятором ПЛИС Riviera-PRO. Часть 1 - Ввод проекта и моделирование

Подробнее

Вебинар (состоится 24-02-2021)

Вебинар PLC2: Машинное зрение в реальном времени с низким потреблением и системы с искусственным интеллектом

Подробнее

Вебинар (состоится 17-02-2021)

Воркшоп Libero SoC Flash-FPGA

Подробнее

Вебинар (состоится )

Вебинар: все что нужно знать о массивах в SystemVerilog

Подробнее

Вебинар (состоится on-demand)

Три вебинара по Intel Agilex FPGA

Подробнее

Вебинар (состоится 03-02-2021)

Повышение производительности систем на базе FPGA за счёт оптимизации архитектуры памяти

Подробнее

Вебинар (состоится 29-01-2021)

Xilinx Versal ACAP - от ПЛИС к платформе

Подробнее

Мероприятия (состоится 20-01-2021)

Intel FPGA Technology Day EMEA

Подробнее

Мероприятия (состоится )

QuickSilicon зимний хакатон

Подробнее

Вебинар (состоится 14-01-2021)

Microchip PolarFire® SoC FPGA - часть 4

Подробнее
Все предстоящие события

FPGA-Systems – это живое, постоянно обновляемое и растущее сообщество.
Хочешь быть в курсе всех новостей и актуальных событий в области?
Подпишись на рассылку