Муфты электромонтажные от производителя Fucon
РадиоЛоцман - Все об электронике

Программируемая логика выводит решения на базе микропроцессоров на новый уровень гибкости и скорости разработки

Джек Шандл, Mouser Electronics

Вступление

Возможности и скорость работы программируемых логические устройств, таких как программируемые пользователем логические матрицы, или ППЛМ (Field-Programmable Gate Array, FPGA), программируемые логические интегральные схемы, или ПЛИС (Complex Programmable Logic Device, CPLD), существенно возросли с момента их появления на рынке в качестве замены дискретной логики и средства прототипирования специализированных интегральных схем (Application-Specific Integrated Circuit, ASIC). Встроенные микропроцессоры и аппаратные ускорители позволяют успешно применять их даже в областях, где раньше безоговорочно доминировали цифровые сигнальные процессоры – ЦПС (Digital Signal Processor, DSP) и специализированные микросхемы (Application Specific Standard Product, ASSP). Усвоив основные принципы работы ППЛМ и ПЛИС, разработчики могут повысить производительность и эффективность своих решений, оптимизировать циклы их разработки.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

Основы программируемой логики

Основную идею конфигурации ППЛМ и ПЛИС можно легко понять, оглядываясь на организацию программируемых логических массивов, или ПЛМ (Programmable Array Logic, PAL), которые представляли собой набор программируемых входов, объединяемых по «И», а слой с элементами «ИЛИ» являлся фиксированным, что ограничивало количество термов, которые можно было реализовать. В их состав также были включены базовые логические устройства, такие как мультиплексоры, исключающее «ИЛИ» и триггеры-защелки.

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

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

Архитектура ПЛИС

Несмотря на то, что каждый производитель ПЛИС реализует свою собственную технологию, все ПЛИС имеют общие характерные черты и состоят из набора функциональных блоков (ФБ), блоков ввода-вывода и коммутационной матрицы. Программируются ПЛИС элементами, специфичными для каждого производителя. Элементами конфигурационной памяти могут быть ячейки EPROM, EEPROM или Flash EEPROM. На рис. 2 представлена типичная архитектура ПЛИС.

Архитектура ППЛМ

Архитектура ППЛМ близка к архитектуре ASIC и отличается от ПЛИС. В общем случае ППЛМ состоит из конфигурируемых логических блоков (КЛБ), блоков ввода-вывода и программируемой схемы соединений (рис. 3). К каждому логическому блоку подведены тактирующие сигналы. Также типовыми элементами для ППЛМ являются арифметические элементы, блоки памяти и декодеры. Логика в ППЛМ реализуется в КЛБ, который содержит ОЗУ (известное как таблицы поиска – lookup tables, LUTs) для задания комбинационных логических функций. КЛБ также содержат триггеры-защелки и мультиплексоры для соединения логики в пределах блока и с внешними ресурсами. Мультиплексоры также используются для коррекции логического уровня сигнала, подведения сигнала сброса.

Упрощенная структура программируемого логического массива
Рис. 1. Упрощенная структура программируемого логического массива.
 
Типовая структура ПЛИС
Рис. 2. Типовая структура ПЛИС.
 
Типовая структура ППЛМ
Рис. 3. Типовая структура ППЛМ.

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

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

Шины создаются с использованием тристабильных буферных элементов. Тактирующие сигналы распространяются в ППЛМ по специализированным линиям, называемым глобальными тактовыми линиями, которые специально оптимизированы по уровням наводок и шумов и обладают низким импедансом. Они подведены к тактовым буферам и к каждому тактируемому элементу КЛБ.

Технологии реализации ППЛМ

Традиционно ППЛМ разделяют по технологии памяти, применяющейся для хранения логической конфигурации ППЛМ. На сегодня популярны четыре технологии, каждая из которых имеет свои достоинства и недостатки:

  • ОЗУ;
  • ОЗУ совместно с внутренней Flash-памятью;
  • ППЛМ с Flash-памятью;
  • однократно программируемые ППЛМ.

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

  • режим мастера, когда ППЛМ сама считывает конфигурацию из внешней постоянной памяти (например, из Flash);
     
  • режим ведомого, когда ППЛМ конфигурируется внешним устройством, например, микроконтроллером или процессором (обычно это производится посредством специализированного интерфейса или при помощи интерфейса JTAG).

ППЛМ с конфигурационной ОЗУ и встроенной памятью не нуждаются в инициации – при включении ПЛЛМ считывает конфигурацию из предварительно запрограммированной встроенной Flash-памяти.

ППЛМ полностью на Flash-памяти также нуждаются только в первоначальной прошивке конфигурации. Дополнительным плюсом данной технологии является меньшее по сравнению с ППЛМ с ОЗУ энергопотребление и более высокая устойчивость к воздействию таких внешних негативных факторов, как радиация.

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

Процессорные ядра

Хотя программируемые устройства были созданы для замены схем на дискретной логике, по мере роста плотности размещения транзисторов на кристалле производители ППЛМ и ПЛИС начали добавлять в кристаллы специализированные узлы в дополнение к КЛБ. В результате получилась так называемая система-на-программируемом-кристалле (System on a Programmable Chip, SoPC), представляющая собой совокупность достаточно сложных устройств (таких как процессорные ядра), интегрированных в единую программируемую систему.

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

Существует два типа ядер – аппаратные (hard) и программные (soft). Программные ядра описываются в виде набора логических функций и обычно представляют собой исходные коды на языке описания аппаратуры (HDL). Аппаратные процессорные ядра называются встроенными, располагаются на одном кристалле с ресурсами программируемой логики и могут использовать эти ресурсы в процессе работы.

Программные ядра имеют два варианта поставки. Первый, и наиболее распространенный – используется одно из ядер, предлагаемых и/или поддерживаемых производителем (разработчик при этом должен самостоятельно добавлять к нему модули ввода-вывода и периферийные устройства). Альтернативный путь – разработчик имеет возможность приобрести исходный HDL-код и уже его интегрировать в разрабатываемую ППЛМ-систему (прим. переводчика – одна из тенденций среди разработчиков ППЛМ-систем – реализация собственных небольших процессорных ядер, например, стековые процессорные ядра, они же форт-ядра, вплоть до многопотоковых ядер).

Для уменьшения времени разработки и облегчения жизни системных программистов производители логики предлагают широкий выбор популярных микропроцессорных ядер. К примеру, Altera предлагает ARM-ядра, Freescale Semiconductor и Intel – реализации программных ядер Nios, NiosII (прим. переводчика – достаточно интересное и расширяемое решение в области софт-ядер представляет ядро MIPSfpga).

Семейство PSoC 5 производства компании Cypress Semiconductor интегрирует конфигурируемую аналоговую и цифровую периферию, память и микроконтроллер. PSoC 5 содержит процессорное ядро ARM Cortex M3 67 МГц, PSoC 4 – ARM Cortex M0, а PSoC 3 – популярное микроконтроллерное ядро 8051 (прим. переводчика – семейство Zynq производства компании Xilinx включает два процессорных ядра ARM Corteх A9).

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

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

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

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

Риски при разработке сводятся к минимуму благодаря возможностям всестороннего тестирования, обновления и верификации прошивки. Возможен запуск и реконфигурация SoPC непосредственно в составе конечного изделия и в реальных условиях работы для сведения вероятности ошибок разработки к минимуму.

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

Пример – SoPC в автомобильной электронике

Электронные системы практически любого современного автомобиля имеют поистине неограниченный аппетит в плане потребления ресурсов и количества встроенных микроконтроллеров и процессоров (прим. переводчика – еще в 1990-х на борту среднего автомобиля насчитывалось до двадцати процессоров/ контроллеров, объединенных в сеть). Каждая крупная подсистема автомобиля – управление двигателем, торможением, мультимедийная система – имеет как минимум один микропроцессор в своем составе. Традиционно для каждой из подсистем применялись специализированные микропроцессоры, но количество интеллектуальных подсистем постоянно возрастает, и стратегия разработки специализированного микроконтроллера для каждой из них проблематична. Производителям автомобильной электроники требуются гибкие высокопроизводительные решения, и во многих случаях ППЛМ могут им в этом помочь.

ППЛМ, реализующие графические контроллеры для автомобильных подсистем, уже получили признание, поскольку требования к вычислительной мощности и производительности ввода-вывода постоянно изменяются, а ППЛМ могут быть быстро и без особых затрат переконфигурированы для удовлетворения новых потребностей. Рис. 4 иллюстрирует возможности семейства ППЛМ Altera Cyclone IV в решении задач для различных автомобильных подсистем.

Типовая структура ППЛМ
Рис. 4. Пример семейства ППЛМ Altera Cyclone IV как эффективного решения
для различных задач в области автомобильных графических систем.

Для каждой задачи программное процессорное ядро NiosII может быть автоматически сгенерировано в соответствии с текущими требованиями разработчика. Необходимые настройки осуществляются через инструментарий SOPC Builder среды QuartusII. Он позволяет настроить и реализовать нужный функционал и сгенерировать необходимую вспомогательную логику.

Nios II является 32-битным RISC-ядром с раздельными шинами адреса и данных. Обе шины имеют свой собственный кэш. Однако окончательное решение остается за разработчиком – шины можно сконфигурировать и на использование общего кэша. В зависимости от требований приложения отдельные узлы процессорного ядра могут отличаться по конечной реализации. К примеру, настраивается использование аппаратных умножителей/ делителей, сдвиговых регистров, вплоть до подмножества поддерживаемых в данной задаче инструкций – все это влияет на производительность процессорного ядра и объем ресурсов ППЛМ, задействованных в его реализации. Аналогично могут настраиваться кэши инструкции и данных – размеры, варианты использования.

Заключение

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

Статью подготовил и перевел Калачев Александр, г. Барнаул,
по материалам журнала «Electronics information update».

terraelectronica.ru

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя