Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС

    Первоисточник

    Занятие 1. Обзор элементной базы

    Идея написания данного цикла статей назревала в течение последних двух–трёх лет, когда для многих разработчиков аппаратуры ЦОС стало ясно, что программируемые логические интегральные схемы (ПЛИС) — удобная в освоении и применении элементная база, альтернативы которой зачастую не найти. Последние годы характеризуются резким ростом плотности упаковки элементов на кристалле, многие ведущие производители либо начали серийное производство, либо анонсировали ПЛИС с эквивалентной ёмкостью более 1 млн. логических вентилей. Цены на ПЛИС (к сожалению, только лишь в долларовом эквиваленте) неуклонно падают. Так, ещё год–полтора назад ПЛИС ёмкостью 100 000 вентилей стоила в Москве, в зависимости от производителя, приёмки и быстродействия, от 1500 до 3000 у.е., а сейчас такая микросхема стоит от 100 до 350 у.е., то есть цены упали практически на порядок, и эта тенденция устойчива. Что касается ПЛИС ёмкостью 10 000 – 30 000 логических вентилей, то появились микросхемы стоимостью менее 10 у.е.

    Такая ситуация на рынке вызвала волну вопросов, связанных с подготовкой специалистов, способных проводить разработку аппаратуры цифровой обработки сигналов на ПЛИС, владеющих основными методами проектирования и ориентирующимися в современной элементной базе и программном обеспечении. Идя навстречу многочисленным пожеланиям предприятий, заинтересованных в подготовке молодых специалистов, владеющих современными технологиями, на кафедре СМ5 “Автономные информационные и управляющие системы” МГТУ им. Н.Э. Баумана в программу четырёхсеместрового курса “Схемотехническое проектирование микроэлектронных устройств” включён семестровый раздел “Проектирование аппаратуры обработки сигналов на ПЛИС”, на основе лекционных и семинарских материалов которого и выходит этот цикл статей.

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

    Конечно, в рамках одной статьи практически невозможно дать описание даже одного семейства микросхем, да, в общем, такая задача и не ставится. Цель этого занятия в нашей школе — помочь разработчику, стоящему на пороге освоения новой элементной базы для реализации алгоритмов ЦОС, выбрать наиболее пригодную для решения его задачи элементную базу. Кроме того, учитывая реалии посткризисной (или кризисной?) России, нельзя не забывать о стоимости перехода на новую технологию, которая определяется не только стоимостью микросхем.

    Приведём известную классификацию ПЛИС [1,2] по структурному признаку, так как она даёт наиболее полное представление о классе задач, пригодных для решения на той или иной ПЛИС. Следует заметить, что общепринятой оценкой логической ёмкости ПЛИС является число эквивалентных вентилей, определяемое как среднее число вентилей “2И-НЕ”, необходимых для реализации эквивалентного проекта на ПЛИС и базовом матричном кристалле (БМК). Понятно, что эта оценка весьма условна, поскольку ПЛИС не содержат вентилей “2И-не” в чистом виде, однако для проведения сравнительного анализа различных архитектур она вполне пригодна. Основным критерием такой классификации является наличие, вид и способы коммутации элементов логических матриц. По этому признаку можно выделить несколько классов ПЛИС.

    Программируемые логические матрицы — наиболее традиционный тип ПЛИС, имеющий программируемые матрицы “И” и “ИЛИ”. В зарубежной литературе соответствующими этому классу аббревиатурами являются 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, основанная на матрице “ИЛИ-НЕ”.

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

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

    Другой тип архитектуры ПЛИС — программируемые вентильные матрицы (ПВМ), состоящие из логических блоков (ЛБ) и коммутирующих путей — программируемых матриц соединений. Логические блоки таких ПЛИС состоят из одного или нескольких относительно простых логических элементов, в основе которых лежит таблица перекодировки (ТП, 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

    Рис. 1

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

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