Последний уровень раздела предыдущего изложения   Текущий уровень изложения предыдущего раздела   Текущий уровень изложения следующего раздела   Первый уровень изложения следующего раздела   Уровень:


Использование программируемых логических интегральных схем (ПЛИС)

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

Пристейшие ПЛИС - программируемые логические микрицы (ПЛМ)

Программируемые логические матрицы - наиболее традиционный тип ПЛИС, имеющий программируемые матрицы "И" и "ИЛИ". В зарубежной литературе соответствующими этому классу аббревиатурами являются FPLA (Field Programmable Logic Array) и FPLS (Field Programmable Logic Sequensers). Примерами таких ПЛИС могут служить отечественные схемы K556PT1, PT2, PT21.

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

Недостаток такой архитектуры - слабое использование ресурсов программируемой матрицы "ИЛИ", поэтому дальнейшее развитие получили микросхемы, построенные по архитектуре программируемой матричной логики (PAL - Programmable Array Logic ) - это ПЛИС, имеющие программируемую матрицу "И" и фиксированную матрицу "ИЛИ". К этому классу относятся большинство современных ПЛИС небольшой степени интеграции. В качестве примеров можно привести отечественные ИС КМ1556ХП4, ХП6, ХП8, ХЛ8, ранние разработки (середина-конец 1980-х годов) ПЛИС фирм INTEL, ALTERA, AMD, LATTICE и др. Разновидностью этого класса являются ПЛИС, имеющие только одну (программируемую) матрицу "И", например, схема 85C508 фирмы INTEL. Следующий традиционный тип ПЛИС - программируемая макрологика. Они содержат единственную программируемую матрицу "И-НЕ" или "ИЛИ-НЕ", но за счёт многочисленных инверсных обратных связей способны формировать сложные логические функции. К этому классу относятся, например, ПЛИС PLHS501 и PLHS502 фирмы SIGNETICS, имеющие матрицу "И-НЕ", а также схема XL78C800 фирмы EXEL, основанная на матрице "ИЛИ-НЕ"

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

Программируемые коммутируемые матричные блоки

Программируемые коммутируемые матричные блоки (ПКМБ) - это ПЛИС, содержащие несколько матричных логических блоков (МЛБ), объединённых коммутационной матрицей. Каждый МЛБ представляет собой структуру типа ПМЛ, то есть программируемую матрицу "И", фиксированную матрицу "ИЛИ" и макроячейки. ПЛИС типа ПКМБ, как правило, имеют высокую степень интеграции (до 10000 эквивалентных вентилей, до 256 макроячеек). К этому классу относятся ПЛИС семейства MAX5000 и MAX7000 фирмы ALTERA, схемы XC7000 и XC9500 фирмы XILINX, а также большое число микросхем других производителей (Atmel, Vantis, Lucent и др.). В зарубежной литературе они получили название Complex Programmable Logic Devices (CPLD). ИС ПМЛ (PLD) имеют архитектуру, весьма удобную для реализации цифровых автоматов.

Программируемые вентильные матрицы

Другой тип архитектуры ПЛИС - программируемые вентильные матрицы (ПВМ), состоящие из логических блоков (ЛБ) и коммутирующих путей - программируемых матриц соединений. Логические блоки таких ПЛИС состоят из одного или нескольких относительно простых логических элементов, в основе которых лежит таблица перекодировки (ТП, Look-up table - LUT), программируемый мультиплексор, D-триггер, а также цепи управления.

Принципиальнаясхемаэлементапрограммируемойвентильнойматрицы

Современные ПЛИС

Таких простых элементов может быть достаточно много, например, у современных ПЛИС ёмкостью до 1 млн. вентилей число логических элементов достигает нескольких десятков тысяч. За счёт такого большого числа логических элементов они содержат значительное число триггеров, а также некоторые семейства ПЛИС имеют встроенные реконфигурируемые модули памяти (РМП, embedded array block - EAB), что делает ПЛИС данной архитектуры весьма удобным средством реализации алгоритмов цифровой обработки сигналов, основными операциями в которых являются перемножение, умножение на константу, суммирование и задержка сигнала. Вместе с тем, возможности комбинационной части таких ПЛИС ограничены, поэтому совместно с ПВМ применяют ПКМБ (CPLD) для реализации управляющих и интерфейсных схем. В зарубежной литературе такие ПЛИС получили название Field Programmable Gate Array (FPGA). К FPGA (ПВМ) классу относятся ПЛИС XC2000, XC3000, XC4000, Spartan, Virtex фирмы XILINX; ACT1, ACT2 фирмы ACTEL, а также семейства FLEX8000 фирмы ALTERA, некоторые ПЛИС Atmel и Vantis.

Типичным примером FPGA ПЛИС могут служить микросхемы семейства Spartan фирмы XILINX

СтруктураИМСпрограммируемойвентильнойматрицы

Множество конфигурируемых логических блоков ( Configurable Logic Blocks - CLBs) объединяются с помощью матрицы соединений. Характерными для FPGA-архитектур являются элементы ввода/вывода ( input/output blocks - IOBs), позволяющие реализовать двунаправленный ввод/вывод, третье состояние и т. п.

Особенностью современных ПЛИС является возможность тестирования узлов с помощью порта JTAG (B-scan), а также наличие внутреннего генератора (Osc) и схем управления последовательной конфигурацией.

Фирма Altera пошла по пути развития FPGA-архитектур и предложила в семействе FLEX10K так называемую двухуровневую архитектуру матрицы соединений.  ЛЭ объединяются в группы - логические блоки (ЛБ). Внутри логических блоков ЛЭ соединяются посредством локальной программируемой матрицы соединений, позволяющей соединять любой ЛЭ с любым. Логические блоки связаны между собой и с элементами ввода/вывода посредством глобальной программируемой матрицы соединений (ГПМС). Локальная и глобальная матрицы соединений имеют непрерывную структуру - для каждого соединения выделяется непрерывный канал.

Дальнейшее развитие архитектур идёт по пути создания комбинированных архитектур, сочетающих удобство реализации алгоритмов ЦОС на базе таблиц перекодировок и реконфигурируемых модулей памяти, характерных для FPGA-структур и многоуровневых ПЛИС с удобством реализации цифровых автоматов на CPLD-архитектурах. Так, ПЛИС APEX20K фирмы Altera содержат в себе логические элементы всех перечисленных типов, что позволяет применять ПЛИС как основную элементную для "систем на кристалле" ( system-on-chip , SOC).

Особенности программирования ПЛИС.

В настоящее для "больших" время используются в основном две технологии для хранения информации о конфигурвции - статическое ОЗУ (SRAM) или электрически перепрограммируемое ПЗУ (EPRM или EEPROM или FLASH).

В любом случае создание файла конфигурации современных ПЛИС невозможно без автоматизированных систем проектирования. Такие системы выпускают как все ведущие производители ПЛИС (www.altera.com)ALTERA, (www.xilinx.com)XILINX, так и другие компании.

При работе в подобных системах конфигурация схемы, которая должна быть получена "внутри" ПЛИС или алгоритм ее работы задается либо на текстовом языке описаний (ADHL, VDHL или Verilog) напоминающем язык программирования высокого уровня (например Си), либо на графическом уровне - в виде электрической схемы (в форматах OrCAD или PCAD), либо при помощи блок-схем алгоритмов или графиков входных и выходных сигналов. В дальнейшем все этапы работы, включая программирование или загрузку ПЛИС выполняет автоиатизированная система.