Преимущества ПЛИС относительно микроконтроллеров

Автор: Джей Аггарвал

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

 Полезно сравнить и сопоставить некоторые ключевые различия между ПЛИС (Программируемые Логические Интегральные Схемы) или FPGA (Field Programmable Gate Arrays) и их основными конкурентами - микроконтроллерами (MCU).

Ключевые преимущества ПЛИС

Главное преимущество ПЛИС заключается в программируемой матрице, которую можно быстро программировать и перепрограммировать для выполнения практически любых логических функций. Структуру программируемой матрицы можно представить в виде множества маленьких программируемых логических блоков «островков» среди «моря» коммутируемых линий соединений. Каждый такой блок может выполнять запрограммированную логическую функцию нескольких переменных. Коммутируемые межсоединения используются для подключения ячеек ввода/вывода ПЛИС к входам и выходам выбранных логических блоков, а также для соединения логических блоков друг с другом. Ячейки ввода/вывода могут настраиваться для поддержки различных электрических сигналов, изменять своё входное сопротивление и скорость нарастания фронтов выходных сигналов (slew rates).

На рисунке выше представлена топология кристалла FPGA, где Logic block – программируемый логический блок, GPIO bank – ячейки ввода/вывода, Programmable interconnect – коммутируемые линии соединений.

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

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

Ограничения при использовании микроконтроллеров

MCU работают иначе. После того, как микросхема произведена, её функциональность невозможно изменить, и эстафета передаётся программистам, которые с помощью языков программирования, например C или C ++, создают программное обеспечение. Исходный код C/C++ с помощью компилятора преобразуется в машинный код, который исполняется на MCU.

Микроконтроллеры широко используются для реализации алгоритмов управления с большим количеством условных переходов, но архитектура фон Неймана (исполняемый код и данные хранятся в общей памяти), лежащая в основе большинства микроконтроллеров, неэффективна при выполнении многих алгоритмов обработки данных. Это связано с тем, что нужно извлечь инструкцию из памяти, декодировать её,  при необходимости извлечь данные, выполнить операцию и при необходимости сохранить результат. Конечно, это очень упрощенное описание. В результате MCU выполняет операции последовательно одну за другой. Выполнение огромного количества операций, необходимых для реализации алгоритмов цифровой обработки сигналов (DSP), на микроконтроллере требует высокой тактовой частоты, что увеличивает его потребляемую мощность.

В архитектурах более старых систем использовались преимущества, как микроконтроллеров, так и FPGA схем за счет их объединения. При этом микроконтроллер выполнял алгоритмы управления с условными переходами, а FPGA схема выполняла интенсивные вычисления при обработке данных. Сейчас благодаря гибкости и производительности ПЛИС можно реализовать эти алгоритмы в одной микросхеме, что, как правило, приводит к уменьшению габаритов и снижению энергопотребления устройства. Для этого используются синтезируемые в  программируемой матрице микроконтроллеры, обычно в виде IP ядер. Современные FPGA, как правило, содержат различные аппаратные блоки, реализованные непосредственно на кремнии, включая SRAM, энергонезависимую память, DSP, PLL, блоки управления тактовыми сигналами и скоростные последовательные приемопередатчики (SERDES).

Создание проекта для ПЛИС

Для реализации проекта на FPGA обычно используются языки описания оборудования (HDL), такие как Verilog или VHDL, для описания проекта на, так называемом, уровне регистровых передач (RTL). Этот исходный RTL код затем передается “синтезатору”, который генерирует файл конфигурации, используемый для программирования FPGA. Для тех, кто не знаком с HDL, существуют средства проектирования с графическим интерфейсом, например Lattice Propel ™, которые позволяют создавать процессорные системы с помощью интерфейса “захвата и перетаскивания” (drag-and-drop). В этом случае одно или несколько процессорных ядер и связанные с ними периферийные блоки выбираются и подключаются с помощью графического интерфейса, система проектирования автоматически генерирует RTL код для “синтезатора”.

Для тех, кто хочет начать работать или поэкспериментировать с микросхемами программируемой логики, Lattice предлагает высокопроизводительные ПЛИС в небольших корпусах с низким энергопотреблением. Платформа Lattice Nexus ™, разработанная на базе технологического процесса 28-нм “кремний на изоляторе” (FD-SOI), потребляет на 75% меньше энергии и обеспечивает в 100 раз меньшую частоту сбоев при воздействии ионизирующих излучений по сравнению с аналогичными FPGA конкурентов. Платформа Nexus использовалась для создания семейств FPGA CrossLink ™ -NX, Certus ™ -NX, CertusPro ™ -NX и Mach ™ -NX, предоставляя широкий выбор оптимизированных для различных приложений ПЛИС.

Также Lattice предлагает набор средств проектирования, включая САПР Diamond® и Radiant®, которые дополняются средой разработки процессорных систем Propel. С их помощью можно создавать и отлаживать процессорные системы на основе FPGA, причем как аппаратную часть, так и программное обеспечение для них.

Чтобы упростить разработку приложений с использованием ПЛИС, Lattice предлагает, так называемые, “стеки решений”, которые включают отладочные платы, демонстрационные примеры, готовые проекты, IP-ядра, средства разработки и услуги по проектированию. Эти стеки упрощают и ускоряют разработку приложений на основе FPGA для фокусных рынков Lattice,  включая Lattice sensAI ™ для приложений AI/ML на конечных устройствах, mVision ™ для встроенного машинного зрения, Automate ™ для систем промышленной автоматизации и Sentry ™ для обеспечения безопасности оборудования.

Чтобы дополнить все вышеперечисленное, Lattice предлагает LEC2 (Lattice Education Competence Center) тренинги, во время которых можно получить всю необходимую информацию для создания приложений от первоначальной концепции до реальной физической реализации, используя знания высококвалифицированной команды, имеющей опыт реализации проектов в самых разных областях.  

Если вы только начинаете работать с FPGA и хотите узнать больше, прослушайте веб-семинар «С чего начать работу с FPGA».