Программируемая логика

С тех пор как появились первые компьютеры, программисты мечтали об аппаратной части, решающей именно их задачи. Одним из путей создания таких электронных компонентов это – использование  специализированных заказных интегральных микросхем (ASIC - Application Specific Integrated Circuit). Такие микросхемы выполняются производителями аппаратного обеспечения под заказ для эффективного выполнения некоторой конкретной задачи или круга задач. Они не обладают универсальностью, как обычные микросхемы, однако во много раз быстрее, иногда на порядки, решают поставленные перед ними задачи. Альтернативным решением ASIC, было создание микросхем с реконфигурируемой архитектурой. Идея состоит в том, что такие микросхемы поступают к разработчику или пользователю  ПО в незапрограммированном состоянии, и тот может реализовать на них  архитектуру, которая больше всего ему подходит.

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

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

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

Под аббревиатурой плис в России принято называть микросхемы CPLD (англ. complex programmable logic device) и FPGA (англ. field-programmable gate array).

CPLD содержат относительно крупные программируемые логические блоки — макроячейки, соединённые с внешними выводами и внутренними шинами. Функциональность CPLD кодируется в энергонезависимой памяти, поэтому при включении перепрограммировать не нужно. Может применяться для расширения числа входов/выходов рядом с большими кристаллами, или для предобработки сигналов (например, контроллер COM-порта, USB, VGA).

FPGA  содержат блоки умножения-суммирования, которые широко применяются при обработке сигналов (DSP), а также логические элементы (как правило, на базе таблиц перекодировки — таблиц истинности) и их блоки коммутации. Программа для FPGA хранится в распределённой памяти, которая может быть выполнена как на основе энергозависимых ячеек статического ОЗУ  — в этом случае программа не сохраняется при исчезновении электропитания микросхемы, так и на основе энергонезависимых ячеек Flash-памяти или перемычек antifuse  — в этих случаях программа сохраняется при исчезновении электропитания. Если программа хранится в энергозависимой памяти, то при каждом включении питания микросхемы необходимо заново конфигурировать её при помощи начального загрузчика, который может быть встроен и в саму FPGA.

Каждое FPGA-устройство состоит из программируемых логических блоков (Configurable Logic Blocks - CLB), которые связаны между собой соединениями, также программируемыми. Каждый такой блок предназначен для программирования некоторой функции или ее части, однако может быть использован для других целей, например, в качестве памяти.

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

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

В настоящее время можно выделить ряд передовых производителей программируемой логики:

- Xilinx(Сан-Хосе, Калифорния)  — американский разработчик и производитель ПЛИС. Основана в 1984. По данным самой компании, доля  на мировом рынке ПЛИС составляет 51%.

- Altera(Сан-Хосе, Калифорния) — одна из крупнейших разработчиков ASIC, программируемых логических интегральных схем(ПЛИС), была основана в 1983 г. Как предприятие без собственных производственных мощностей, Altera концентрируется в первую очередь на разработке схем и модулей  на основе таких языков описания аппаратуры, как VHDL, Verilog и собственный AHDL.

- Atmel Corporation(Сан-Хосе, Калифорния) — изготовитель полупроводниковых электронных компонентов. Компания основана в 1984 году. Один из лидеров производства микроконтроллеров (MCS-51, ARM, AVR, AVR32). Также разрабатывает и производит небольшие модули энергонезависимой памяти для электронных изделий, ПЛИС.

- Actel(Маунтин-Вью, Калифорния) — американская корпорация, производитель микроэлектроники. Практически единственный массовый производитель высокоёмких программируемых логических интегральных схем (ПЛИС) со встроенной ППЗУ. Штаб-квартира компании располагается Маунтин-Вью, а офисы официальных представителей в Нью-Джерси, Франции, Ирландии, Германии и в России.

- Lattice Semiconductor Corporation американский производитель микросхем. Компания располагается в Орегоне и выпускает высокопроизводительные ПЛИС.

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

В процессе проектирования систем на кристалле, разработчикам необходимы  программаторы или загрузочные адаптеры для ПЛИС, это несложные устройства позволяющие посредством параллельного (LPT) порта компьютера конфигурировать и программировать различные типы программируемых логических матриц ПЛИС. Программируемые логические матрицы ПЛИС Xilinx, Altera программируются и конфигурируются стандартными оригинальными загрузчиками под названием Parallel Download Cable и Byte Blacter MV или Byte Blaster 2. Кроме того для работы ПЛИС групы FPGA требуется программирование загрузочных ПЗУ. Хорошо себя зарекомендовали и широко используются для этой цели загрузочные ПЗУ фирмы Atmel серии AT17. Загрузочный адаптер для них работает посредством параллельного порта компьютера.

дизайн
Компания Сансити