FPGA против микроконтроллеров — другой подход к проектированию встраиваемых систем

fpgaБольшинство инженеров начинают свой большой путь во встраиваемых системах с микроконтроллеров. С микроконтроллерами можно получить полноценную миниатюрную вычислительную систему на одной интегральной схеме. ЦП, ОЗУ, ПЗУ и периферийные устройства ввода/вывода — все на одном SoC размером с большой палец. Этот очень популярный подход, к обучению проектированию и разработке встраиваемых систем, на самом деле является лишь одной стороной полной картины. Работа с микроконтроллерами (и микропроцессорами) связана с программным проектированием встраиваемых систем. Микроконтроллеры имеют свой собственный набор команд, который остается фиксированным по работе. При работе с микроконтроллерами, инженер использует один и тот же набор инструкций, с помощью языка ассемблера или встроенного C, для решения определенных вычислительных задач в реальном применении.

Работать с микроконтроллерами довольно просто. Популярные микроконтроллеры, такие как AVR, 8051, PIC, ARM и т.д., хорошо знакомят инженера с аспектом разработки программного обеспечения для встраиваемых систем. Но есть и другой подход к разработке встраиваемых систем — проектирование встраиваемых систем на основе аппаратного обеспечения. К сожалению, у микроконтроллеров нет возможности познакомить инженера с этим аспектом разработки встраиваемых систем. Но, пора переходить к ПЛИС.

Программируемые логические интегральные схемы (FPGA) были изобретены в 1984 году компанией Xilinx. Это интегральные схемы, содержащие миллионы логических вентилей (вентиль – это своего рода атом, из которого состоят электронные узлы ЭВМ), которые могут быть электрически сконфигурированы (т.е. вентили программируются пользователем) для выполнения определенных задач. Любой компьютер, такой как микроконтроллер, микропроцессор, графический процессор или специализированная интегральная схема (ASIC), в основном представляет собой цифровую электронную схему, которая может выполнять определенные задачи на основе набора инструкций. Набор инструкций содержит машинные коды, которые могут быть реализованы цифровой схемой компьютера для некоторых данных, где данные хранятся и обрабатываются в регистрах или микросхемах памяти.

Программируемая пользователем вентильная матрица
Программируемая пользователем вентильная матрица (FPGA) для встраиваемых систем

Хотя ПЛИС можно использовать для разработки АЛУ и других цифровых схем для выполнения простых вычислительных задач, на самом деле они не могут сравниться с микроконтроллером или микропроцессором с точки зрения вычислений. Микропроцессор или микроконтроллер — это настоящее вычислительное устройство со сложной архитектурой. Тем не менее, FPGA вполне сравнимы с интегральными схемами для конкретных применений, где любая функция ASIC может быть спроектирована и изготовлена ​​на FPGA.

Микроконтроллеры позволяют инженеру разбираться в языке высокого уровня или языке ассемблера для разработки программного обеспечения для компьютера, но FPGA позволяет инженеру самостоятельно разрабатывать компьютер (простое вычислительное устройство). Этот аппаратный встраиваемый дизайн требует детальных знаний о проектировании цифровых схем и компьютерной архитектуре. Подобно тому, как микроконтроллеры программируются с использованием языка ассемблера или языка высокого уровня (например, C), микросхемы FPGA программируются с использованием языка Verilog или VHDL. Подобно тому, как код C или ассемблерный код преобразуются в машинный код для выполнения на соответствующем ЦП, язык VHDL преобразуется в цифровые логические блоки, которые затем изготавливаются на микросхеме FPGA для разработки пользовательского компьютера для конкретного применения. Используя VHDL или Verilog, инженер проектирует путь данных и оборудование ALU с корневого уровня.

Любые курсы по встроенным системам микроконтроллеров или микропроцессоров знакомит инженера с тем, как работают компьютеры и как их можно запрограммировать. ПЛИС дополняет знания о проектировании встраиваемых систем, обучая тому, как на самом деле проектируются и изготавливаются компьютеры (здесь под компьютером понимается цифровая схема, способная выполнять некоторые инструкции). Таким образом, FPGA следует вводить на продвинутом этапе курса проектирования встраиваемых систем. Фактически, микроконтроллеры, FPGA и CPLD (сложные программируемые логические устройства) — это независимые встраиваемые системы со своими плюсами и минусами в рамках инженерной дисциплины встраиваемых систем.

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

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

Читать также:  Что такое PLCC?

Многопоточность

FPGA может обрабатывать несколько инструкций одновременно. Они могут обрабатывать инструкции в параллельной форме. Это большое преимущество по сравнению с микроконтроллерами во многих применениях. Микроконтроллеры могут выполнять только одну команду за раз и могут выполнять инструкции только последовательно. Благодаря функции многопоточности, FPGA может обрабатывать задачи быстрее, чем любой микроконтроллер. Кроме того, поскольку процессы логически закодированы на аппаратном уровне, FPGA подходит для серьезных специализированных применений, в отличие от микроконтроллеров, которые имеют общую архитектуру и набор инструкций для решения задачи. Способность FPGA выполнять несколько простых логических операций на высокой скорости делает их идеальными для нескольких задач, таких как предварительная обработка данных датчиков, криптография, проектирование логических схем.

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

Гибкость и возможности дизайна

Любая цифровая схема, какой бы сложной она ни была, может быть спроектирована на микросхеме FPGA при условии, что микросхема содержит достаточное количество логических блоков для имитации схемы. Его можно использовать для проектирования любых периферийных устройств и выполнения любых вычислительных задач. Такая гибкость недоступна для микроконтроллеров. Микроконтроллеры поставляются с универсальным вычислительным блоком и встроенными периферийными устройствами, такими как GPIO и последовательные интерфейсы. В случае микроконтроллеров нет возможности изменить чип в соответствии с конкретным применением. Однако FPGA можно запрограммировать на 30 таймеров, 20-канальный UART, 50-канальный ШИМ-генератор или что-то еще. Эта гибкость в разработке чипа по собственному выбору и требованиям дает большие возможности инженеру по встраиваемым системам в тех случаях, когда вычислительный чип в приложении должен иметь специальную конструкцию.

Аналоговый фактор

Как правило, в любой встроенной системе, контроллер или процессор соединен с датчиками, обеспечивающими аналоговый ввод, или с исполнительными механизмами, которым требуется аналоговый вывод от контроллера или процессора. Существует программируемая пользователем аналоговая матрица (FPAA), которую можно запрограммировать для передачи аналоговых значений. Многие микросхемы FPGA представляют собой комбинацию FPGA и FPAA, где микросхема может быть не только запрограммирована на цифровую схему, но также может быть запрограммирована для обработки аналоговых сигналов. Эти микросхемы смешанных сигналов содержат периферийные устройства АЦП (аналого-цифровой преобразователь) или ЦАП (цифро-аналоговый преобразователь), соединенные с блоками преобразования аналогового сигнала. Выходные контакты в этом случае могут быть запрограммированы на мощность возбуждения и скорость нарастания в соответствии с требованиями нагрузки на этот контакт. Таким образом, не только микросхема FPGA может быть запрограммирована для аналогового применения.

Повторное использование

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

Одночиповое решение

Микросхемы FPGA обеспечивают однокристальное решение для приложений. При использовании микроконтроллера может потребоваться интерфейс с другими периферийными устройствами (которые могут не быть встроенными в микроконтроллер), интерфейсами или ASIC, на FPGA все необходимые периферийные устройства вместе с процессором или контроллером могут быть спроектированы на одном устройстве, чипе.

Читать также:  Что такое Android?

Обработка в реальном времени

Микросхемы FPGA не являются универсальными вычислительными ИС. Они используются для изготовления специализированного вычислительного устройства на чипе. В отличие от микроконтроллера, который запускает программу (машинный код), пути данных и АЛУ изготавливаются на ПЛИС для решения конкретной вычислительной задачи. Таким образом, вместо запуска программы, сама ПЛИС запрограммирована на выполнение конкретной вычислительной задачи. Это выполнение логики на аппаратном уровне позволяет обрабатывать данные и информацию в реальном времени. Вот почему FPGA обычно используется для высокоскоростных критических приложений, где микроконтроллер может выйти из строя из-за его общей архитектуры и зависимости кода от работы с фиксированной архитектурой и ограниченным набором инструкций.

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

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

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

FPGA имеет свои преимущества и приложения, но с некоторыми недостатками. Эти недостатки объясняются несколькими факторами, такими как экономика, дизайн и разработка. В настоящее время технология FPGA имеет следующие недостатки:

Расходы

Платы ПЛИС не дешевы. Плата FPGA обычно продается по цене 50 долларов или выше. Это во много раз больше по сравнению с любой платой микроконтроллера. Многие платы микроконтроллеров доступны по цене даже ниже чем за 10 долларов. Из-за своей высокой стоимости, платы FPGA не пользуются большой популярностью у инженеров-любителей. Однако, поскольку платы FPGA являются многоразовыми и могут использоваться сотни раз, их высокая стоимость является лишь номинальной цифрой при длительном использовании. Таким образом, стоимость платы FPGA соответствует соотношению цены и качества в случае целей исследований и разработок или целей прототипа. Но при рассмотрении плат FPGA для производства их высокая стоимость может оказаться непосильной.

Плата FPGA

Требование высокой мощности

Большинство плат FPGA питаются от объединительной платы 48 В. Высокая потребляемая мощность и высокое энергопотребление плат FPGA делают их непригодными для многих применений. С другой стороны, большинству плат микроконтроллеров для работы требуется питание 5 В или 3,3 В. Это делает микроконтроллеры очевидным выбором для разработки любого портативного встраиваемого устройства с батарейным питанием.

Волатильность

Цифровой сигнал передается на плату FPGA в виде данных конфигурации. Когда плата включена, плата настраивается соответствующим образом и после этого начинает работать. Данные конфигурации либо хранятся во флэш-памяти, либо передаются процессором через интерфейс граничного сканирования (JTAG) в ведомом режиме. Данные конфигурации теряются при выключении питания платы. Этот изменчивый характер большинства плат FPGA делает их непригодными для приложений, в которых плата может испытывать перебои в подаче питания или страдать от потери питания.

Время запуска

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

Читать также:  Одноканальный, двухканальный и четырехканальный режимы памяти

Большое количество выводов

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

Сложность

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

Ограничения дизайна

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

Долговечность

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

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

Итог

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

Как и после создания кода с нуля, API (интерфейсы прикладного программирования) с точки зрения разработки программного обеспечения начинают ощущаться как простые инструменты для программирования. То же самое касается языка ассемблера или встроенного C после VHDL и Verilog. Языки ассемблера и языки высокого уровня для разработки встраиваемых систем начнут ощущаться как API после того, как у них появится опыт работы с VHDL и Verilog. Так что на самом деле FPGA и другие подобные технологии, такие как CPLD, дополняют инженерную дисциплину встраиваемых систем.

С Уважением, МониторБанк

Добавить комментарий