ПЛИС
Программи́руемая логи́ческая интегра́льная схе́ма (ПЛИС, англ. programmable logic device, PLD) — электронный компонент (интегральная микросхема), используемый для создания конфигурируемых цифровых электронных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программатор и IDE (отладочная среда), позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС являются:
- базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования;
- ASIC — специализированные заказные большие интегральные схемы (БИС), которые при малосерийном и единичном производстве существенно дороже;
- специализированные компьютеры, процессоры (например, цифровой сигнальный процессор) или микроконтроллеры, которые из‑за программного способа реализации алгоритмов в работе медленнее ПЛИС.
- непрограммируемые цифровые устройства и системы, настроенные на решение заранее известных задач, построенные на принципах т.н. "жесткой логики".
Некоторые производители для своих ПЛИС предлагают программные процессоры, которые можно модифицировать под конкретную задачу, а затем встроить в ПЛИС. Тем самым:
- обеспечивается увеличение свободного места на печатной плате (возможность уменьшения размеров платы);
- упрощается проектирование самой ПЛИС;
- увеличивается быстродействие ПЛИС.
Этапы проектирования
- Задание принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др.
- Логический синтез с помощью программ-синтезаторов (получение списка электрических соединений (в виде текста) из абстрактной модели, записанной на языке описания аппаратуры).
- Проектирование печатной платы устройства с помощью системы автоматизированного проектирования (САПР) печатных плат (Altium Designer, P-CAD и др.), на которой размещается микросхема ПЛИС и прочие электронные компоненты (резисторы, конденсаторы, генераторы, АЦП, разъёмы и т.д.).
- Создание файла конфигурации ПЛИС.
- Загрузка файла в микросхему ПЛИС или отдельную микросхему памяти конфигурации. В результате загрузки конфигурации микросхема ПЛИС обретает заданную функциональность.
Применение
ПЛИС широко используется для построения различных по сложности и по возможностям цифровых устройств, например:
- устройств с большим количеством портов ввода-вывода (бывают ПЛИС с более чем 1000 выводов («пинов»));
- устройств, выполняющих цифровую обработку сигнала (ЦОС);
- цифровой видеоаудиоаппаратуры;
- устройств, выполняющих передачу данных на высокой скорости;
- устройств, выполняющих криптографические операции, систем защиты информации;
- устройств, предназначенных для проектирования и прототипирования интегральных схем специального назначения (ASIC);
- устройств, выполняющих роль мостов (коммутаторов) между системами с различной логикой и напряжением питания;
- реализаций нейрочипов;
- устройств, выполняющих моделирование квантовых вычислений;
- устройств, выполняющих обработку радиолокационной информации.
Типы ПЛИС
Ранние ПЛИС
В 1970 году компания «TI» разработала масочные (то есть, программируемые с помощью маски, англ. mask-programmable) интегральные схемы (далее ИС), основанные на ассоциативном ПЗУ (ROAM) фирмы «IBM». Эта микросхема называлась TMS2000 и программировалась чередованием металлических слоёв в процессе производства интегральной схемы (ИС). TMS2000 имела до 17 входов и 18 выходов с 8 JK-триггерами в качестве памяти. Для этих устройств компания «TI» ввела термин PLA — англ. programmable logic array — программируемая логическая матрица.
PAL
PAL (англ. programmable array logic) — программируемый массив (матрица) логики. В СССР PLA и PLM не различались и обозначились как ПЛМ (программируемая логическая матрица). Разница между PLA и PLM состоит в доступности программирования внутренней структуры (матриц).
GAL
GAL (англ. generic array logic) — это ПЛИС, имеющие программируемую матрицу «И» и фиксированную матрицу «ИЛИ».
CPLD
CPLD (англ. complex programmable logic device — сложные программируемые логические устройства) содержат относительно крупные программируемые логические блоки — макроячейки, соединённые с внешними выводами и внутренними шинами. Функциональность CPLD кодируется в энергонезависимой памяти, поэтому нет необходимости их перепрограммировать при включении. Может применяться для расширения числа входов/выходов рядом с большими кристаллами, или для предобработки сигналов (например, контроллер COM-порта, USB, VGA).
FPGA
FPGA (англ. field-programmable gate array) содержат блоки умножения-суммирования, которые широко применяются при обработке сигналов (DSP, англ. digital signal processing), а также логические элементы (как правило, на базе таблиц перекодировки — таблиц истинности) и их блоки коммутации. FPGA обычно используются для обработки сигналов, имеют больше логических элементов и более гибкую архитектуру, чем CPLD. Программа для FPGA хранится в распределённой памяти, которая может быть выполнена как на основе энергозависимых ячеек статического ОЗУ (подобные микросхемы производят, например, фирмы «Xilinx» и «Altera») — в этом случае программа не сохраняется при исчезновении электропитания микросхемы, так и на основе энергонезависимых ячеек flash-памяти или перемычек antifuse (такие микросхемы производит фирма «Actel» и «Lattice Semiconductor») — в этих случаях программа сохраняется при исчезновении электропитания. Если программа хранится в энергозависимой памяти, то при каждом включении питания микросхемы необходимо заново конфигурировать её при помощи начального загрузчика, который может быть встроен и в саму FPGA. Альтернативой ПЛИС FPGA являются более медленные цифровые процессоры обработки сигналов. FPGA применяются также, как ускорители универсальных процессоров в суперкомпьютерах (например, компьютер «Cray XD1» компании «Cray», проект «RASC» компании «Silicon Graphics» («SGI»)).
Некоторые мировые производители ПЛИС
См. также
Примечания
Литература
- Угрюмов Е. П. Глава 7. Программируемые логические матрицы, программируемая матричная логика, базовые матричные кристаллы / Цифровая схемотехника. Учеб. пособие для вузов. Изд.2, БХВ-Петербург, 2004. С. 357.
Ссылки
- Пример разработки в WinCupl на SPLD ATF16V8.
- Видеоуроки проектирования на ПЛИС Xilinx.
- Описания ПЛИС известных фирм.
- Соловьев В., Климович А. «Введение в проектирование комбинационных схем на ПЛИС».
- «Проектирование ПЛИС в Altera Quartus II».
- Платформы. Технология ПЛИС и её применение для создания нейрочипов.
- Стешенко В. Б. «Реализация на ПЛИС цифровых демодуляторов сигналов с частотной манипуляцией». Кафедра СМ5 МГТУ им. Н. Э. Баумана.
- Стешенко В. «Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС».
- Основные производители современных ПЛИС-компьютеров и комплектующих к ним.