Первые программируемые логические устройства создавались на основе технологии биполярных программируемых ПЗУ с дополнительными логическими возможностями и свойствами. Пробудить интерес к программируемой логике сумела фирма Signetics, выпустившая в 1972 году биполярную микросхему программируемой логической матрицы типа 82S100. Совершенствование архитектуры привело к созданию фирмой Monolithic Memories Inc. (MMI) в 1975–1976 годах микросхем программируемой матричной логики (PAL), монтируемых в 20- и 24-выводные корпуса и способных заменить до 20 имевшихся в продаже логических вентилей. Одновременно с PAL-микросхемами компания MMI предложила и простой язык программирования – PALASM, позволивший достаточно легко преобразовывать логические уравнения в битовую конфигурацию. Хотя сегодня компании MMI уже нет, ее разработки легли в основу современной агрессивной технологии, пригодной для масштабирования элементов ПЛИС и увеличения их быстродействия. Выпущенная в 1979 году компанией Advanced Micro Devices (AMD) микросхема типа 22V10, в которой использовалось встроенное СППЗУ с программируемыми УФ-излучением ячейками памяти, стала рабочей лошадкой и на протяжении нескольких последующих лет воспроизводилась многими поставщиками ПЛИС. А в 1984-м фирма Altera выпустила первую микросхему CPLD на основе УФ-программируемого СППЗУ, содержащую 300 вентилей. В 1985-м Xilinx предложила хранить конфигурационные данные в ячейках СОЗУ, что позволило изменять логику путем корректировки данных, записанных в ячейки памяти. Микросхема ПЛИС типа ХС2010 этой компании, содержавшая ~2 тыс. вентилей, положила начало широко распространенным сегодня FPGA. Но и FPGA на основе СОЗУ не единственные конфигурируемые устройства, предлагаемые разработчикам. Во второй половине 90-х годов компания Gatefield, приобретенная в 2000 году фирмой Actel, создала FPGA на базе флэш-технологии. И уже сегодня логическая емкость микросхем ПЛИС с конфигурационной флэш-памятью превышает 1 млн вентилей.
К классу программируемых логических приборов относятся простые и сложные ПЛИС (SPLD и CPLD, соответственно), а также программируемые пользователем базовые матричные кристаллы (FPGA). Последние были рассмотрены ранее *. Поэтому подробнее остановимся на разработках сложных ПЛИС, или CPLD.
Сложные программируемые логические устройства – CPLD
CPLD – это комбинация полностью программируемых матриц вентилей И/ИЛИ и банка макроячеек (МЯ). МЯ образуют функциональные блоки, выполняющие различные комбинаторные или последовательные логические функции. Для получения достаточно высокого быстродействия в CPLD традиционно применялся аналоговый усилитель считывания, но при этом существенно возрастала потребляемая мощность. В CPLD семейства CoolRunner-II компания Xilinx отказалась от биполярного усилителя, создав полностью цифровое ядро, и сумела добиться высокой производительности при низкой потребляемой мощности. К тому же это облегчило масштабирование архитектуры и тем самым позволило существенно снизить стоимость CPLD-микросхем и успешно совершенствовать характеристики каждого нового их поколения.
Современные CPLD содержат несколько логических блоков (ЛБ), в каждый из которых могут входить до 54 МЯ на основе программируемых логических матриц (PAL) или простых ПЛИС (SPLD). Каждая МЯ с большой нагрузочной способностью по входу обеспечивает выполнение комбинаторной логики, которая в зависимости от сложности ПЛИС поддерживает от четырех до 16 логических произведений – термов. Поскольку каждый ЛБ выполняет определенную функцию, все МЯ такого блока полностью объединены, тогда как сами ЛБ соединяются друг с другом трассировочной матрицей в зависимости от применения микросхемы. В результате 100%-ного использования имеющихся логических блоков добиться нельзя.
На рынке представлены CPLD разнообразных семейств и в самых различных типах корпусов. Значения напряжения питания, рабочий ток, ток в режиме покоя и потребляемая мощность этих устройств также различны. В них используется память различного типа и объема (ПЗУ, ОЗУ, двухпортовое ОЗУ, ассоциативная память, а также память прямого и обратного магазинного типов). Некоторые CPLD содержат блоки ФАПЧ и автоматической подстройки по задержке, обеспечивающие синтез тактовой частоты, что позволяет реализовывать на таких микросхемах DSP-алгоритмы, а также функции системы-на-кристалле (табл.1).
Сложные ПЛИС все еще иногда применяются в простых приложениях, например для декодирования адреса, но все чаще их можно найти в портативных достаточно дешевых устройствах. Микросхемы CPLD с широкими функциональными возможностями и большим числом блоков ввода/вывода уже вторгаются в области применения FPGA. А поскольку для CPLD время задержки короче и более предсказуемо, чем для FPGA, им отдается предпочтение в тех случаях, когда нужна высокопроизводительная логика и не требуется память большого объема.
Основные поставщики CPLD – компании Altera, Atmel, Cypress Semiconductor, Lattice Semiconductor, STMicroelectronics и Xilinx. Что же они поставляют на современный рынок CPLD-микросхем?
Altera
На протяжении многих лет компания практически не изменяла архитектуру микросхем ведущего семейства CPLD – MAX 7000, добиваясь увеличения быстродействия и числа логических МЯ, а также снижения рабочего напряжения и потребляемой мощности лишь за счет совершенствования методов изготовления и уменьшения размеров элементов схемы. Пожалуй, самое существенное изменение в архитектуре микросхем компании за последние годы – введение внутрисхемного программирования, начиная с серий микросхем на напряжение питания 5 В и меньше. К достоинствам своих CPLD компания относит и технику многовольтного ввода/вывода (MultiVolt I/O), позволяющую подавать на выход и принимать на входе сигналы с уровнем напряжения ниже или выше рабочего напряжения ядра и не требующую применения связующей логики.
Выпущенные компанией Altera в начале 2004 года после почти 15-летнего затишья в разработке новых архитектурных решений дешевые CPLD-микросхемы семейства MAX II следует рассматривать как важный шаг на пути развития этой технологии. При разработке микросхем семейства MAX II компания поставила перед собой цель достичь малой динамической мощности, высокой плотности упаковки элементов, высокого быстродействия, энергонезависимости конфигурационной памяти, низкой стоимости и привычной для разработчиков систем на ПЛИС среды проектирования. При построении архитектуры новой микросхемы компания приняла неожиданное решение: традиционно используемые в CPLD МЯ на основе программируемой матричной логики заменить присущими FPGA таблицами соответствия (LUT). В сравнении с обычными CPLD новая микросхема характеризуется большей плотностью упаковки, меньшей динамической мощностью и более высокой производительностью. За что и названа "волком в овечьей шкуре". По мнению многих экспертов, микросхемы семейства MAX II довольно трудно отождествлять с привычными CPLD на базе трассировочной матрицы с хорошо предсказуемым временем задержки, хотя они и обладают всеми достоинствами обычных сложных ПЛИС, по крайней мере теми, на которые обращает внимание потребитель: энергонезависимость конфигурационной памяти и мгновенная работоспособность при включении. Разработчики Altera отладили средства маршрутизации, предприняли ряд мер по улучшению предсказуемости времени задержки и продолжают указывать логическую сложность микросхемы по числу МЯ, а не логических элементов. Но новые микросхемы по разъемам не совместимы с CPLD предыдущего семейства MAX.
В семейство MAX II входят четыре типа CPLD-микросхем с энергонезависимой конфигурационной и пользовательской памятью, выполненных по 0,18-мкм технологии компании Taiwan Semiconductor Manufacturing Co. (TSMC) с шестислойной металлизацией. CPLD семейства содержат от 240 до 2210 логических элементов (в четыре раза больше, чем в микросхемах предыдущих семейств), что эквивалентно 128–2210 МЯ, и до 272 выводов (табл.2). Архитектура микросхем состоит из двухмерной матрицы логических матричных блоков (ЛМБ) с 10 логическими элементами (ЛЭ) в каждом, банка энергонезависимой флэш-памяти и JTAG-порт управления и отладки. Самый малый элемент архитектуры микросхемы семейства – логический – содержит четырехвходную LUT, реализующую любую функцию четырех переменных. Кроме того, ЛЭ содержит программируемый регистр и цепь переноса данных. ЛМБ объединены системой межсоединений MultiTrack, содержащей ряды и столбцы межсоединений фиксированной протяженности, что обеспечивает получение предсказуемой и малой задержки распространения сигнала между логическими уровнями. Сигналы на выводы поступают от элементов ввода/вывода (ЭВВ), расположенных на концах рядов и столбцов ЛМБ по периферии микросхемы (рис.1). Каждый ЭВВ содержит двунаправленный буфер ввода/вывода с улучшенными характеристиками. Входной буфер ЭВВ содержит дополнительный триггер Шмита, обеспечивающий помехоустойчивость на входе.
Благодаря LUT-структуре и высокой плотности элементов в CPLD семейства MAX II ЕРМ1270 и ЕРМ2210 достаточно возможностей для реализации логики PCI-шин управления. Так, для реализации целевой функции 32-бит/33-МГц PCI требуется ~40% логических элементов ЕРМ1270 – меньшей из этих двух микросхем. В результате потребитель может сэкономить до 50% средств на реализацию такого интерфейса в системе в сравнении с конструкциями на базе специализированных микросхем ASSP-типа.
В банке флэш-памяти выделен специализированный конфигурационный блок (Configuration Flash Memory – CFM), в который записывается вся конфигурационная информация СОЗУ. При подаче питания CFM-блок автоматически загружает конфигурационные данные, обеспечивая практически мгновенное (через 200 мкс после установления стабильного напряжения питания) включение микросхемы. Предусмотрена возможность перепрограммирования энергонезависимой конфигурационной памяти при работе логических блоков на основе СОЗУ. Другая, меньшая, часть банка памяти выделена для хранения пользовательских данных. Емкость пользовательской памяти (User Flash Memory – UFM), впервые реализованной в ПЛИС, составляет 8 Кбит. Пользовательская память обеспечивает программируемые соединения портов с логической матрицей для считывания и записи данных. Рядом с UFM-блоком расположены три ряда ЛМБ, а число соседних столбцов для различных микросхем семейства различно (рис.2).
К достоинствам микросхем нового семейства относится также малая потребляемая мощность, которая на порядок меньше, чем у CPLD предыдущих семейств. Ток в режиме простоя составляет 2 мА. Напряжение питания микросхем семейства 1,8–3,3 В. Благодаря многовольтному интерфейсу микросхемы MAX II могут взаимодействовать с системами на напряжение 1,5; 1,8; 2,5 и 3,3 В.
Приборы нового семейства компании Altera предназначены для "ценочувствительных" универсальных средств упорядочения включения питания, конфигурирования систем, запараллеливания интерфейса.
Появление нового семейства CPLD, очевидно, свидетельствует о решении компании вернуться к изделиям, которые собственно и "сделали" ее, и вложить серьезные технические средства в развитие ПЛИС этого типа. На основе проявленного интереса потребителей к микросхемам нового семейства Altera прогнозирует существенный рост продаж CPLD, которые в конечном итоге могут возрасти с современного уровня в ~500 млн. долл. до 2 млрд. долл. ежегодно. А это значит, что CPLD будут успешно конкурировать с ПЛИС на пережигаемых перемычках и FPGA с энергонезависимой памятью. Правда, вряд ли компания пойдет на "поедание" доли рынка собственных FPGA семейства Cyclone.
Atmel
Компания Atmel выпускает как микросхемы промышленного стандарта, так и микросхемы, полностью совместимые сверху вниз с популярными ПЛИС PAL- и CPLD-типов. Микросхемы компании серии ATF1500 на основе ЭСРПЗУ с 32–512 МЯ совместимы по выводам с CPLD МAX 7000 фирмы Altera при расширенных функциональных возможностях и высокой гибкости. Время задержки распространения сигнала составляет 7,5–15 нс для моделей на стандартное 5-В напряжение и 15 нс для моделей на 3,3 В. Все типы микросхем серии поставляются в варианте низкого напряжения питания и малой потребляемой мощности (индекс L), в которых для снижения потребляемого тока до 5 мкА используется средство обнаружения изменения уровня сигнала, обеспечивающее автоматический перевод микросхемы в режим покоя в отсутствие изменений на входах или узлах обратной связи. Для всех микросхем предусмотрена возможность внутрисхемного программирования через JTAG-интерфейс.
Принятая компанией технология Logic Doubling (удвоения логики) (рис.3) позволяет увеличить число входов макроячейки и соответственно подаваемых термов с пяти до 40, поддерживать многочисленные независимые цепи обратной связи, раздельное разрешение вывода данных, конфигурируемые D/T-триггеры и триггеры-защелки, а также реализовать опциональный режим защелки для триггеров МЯ. Все это, по утверждению разработчиков, позволило расширить ресурсы микросхемы на 200% и тем самым обеспечить реализацию проектов, не "умещающихся" на ПЛИС конкурентов с аналогичным числом МЯ. Напряжение питания составляет 3,3 или 5 В. Микросхемы допускают 10 тыс. циклов программирования при гарантированном сроке хранения запрограммированной конфигурации не менее 20 лет. Предусмотрена защита от воздействия электростатического разряда на напряжение 2 кВ.
Atmel предлагает и инструментарий преобразования POF2JED, позволяющий автоматически переносить на свои ПЛИС конструкции, созданные для микросхем других поставщиков.
Lattice Semiconductor
Микросхемы компании подразделяются на три класса.
Сверхбыстродействующие (SuperFast) на частоту до 400 МГц – семейство ispMACH 4000 с числом МЯ 32–512, временем задержки сигнала 2,5 нс, даже если используется до 20 термов на МЯ. Микросхемы этого класса сочетают высокое быстродействие с низкой динамической мощностью и поддерживают стандарты ввода/вывода на напряжения 3,3; 2,5 и 1,8 В. Рабочий диапазон температур – 40…130оС. Поставляются в корпусах типа TQFP и BGA с числом контактов от 44 до 256.
На базе архитектуры ПЛИС этого класса созданы так называемые CPLD нулевой потребляемой мощности – микросхемы серии 4000Z, характеризуемые малыми током в режиме покоя (13–32 мкА) и потребляемой мощностью (25–62 мкВт). Системная частота CPLD серии составляет 267 МГц, время задержки при распространении сигнала от вывода к выводу – 3,5 нс.
Микросхемы со сверхширокой архитектурой (SuperWide) – CPLD семейств ispLSI/ispMACH5000 с 68-входовыми ЛБ и числом термов до 163. Они позволяют легко реализовывать сложные логические функции на одном логическом уровне (в обычных CPLD с вдвое меньшим числом входов ЛБ для реализации аналогичных функций требуются два или более уровней). Таким образом, для "широких" логических функций с более чем 36 входными данными микросхемы семейств ispLSI/ispMACH5000 обеспечивают улучшенное исполнение (до 60%) в сравнении с обычными CPLD. В микросхемах третьего поколения ispMACH5000VG использована иерархическая архитектура трассировочных линий, что позволило увеличить число МЯ до 1024 и число выводов блоков ввода/вывода до 196–384 (рис.4). В микросхемах семейства четыре ЛБ общего назначения (General Logic Block – GLB), содержащих каждый 32 МЯ, образуют сегмент, внутри которого они объединены трассировочными линиями сегмента (Segment Routing Pool – SRP). Трассировочные линии SRP в свою очередь объединены глобальной трассировочной системой (Global Routing Pool – GRP). Все порты ввода/вывода микросхем представляют собой системные порты ввода/вывода. Они разделены на четыре блока, которые имеют свои источники питания и генераторы опорного напряжения. Порты ввода/вывода могут работать с разнообразными современными интерфейсными стандартами, при этом благодаря наличию генератора опорного напряжения вводы/выводы одного блока могут работать с различными стандартами как на входе, так и на выходе. Кроме того, в микросхеме предусмотрены ФАПЧ подстройки системной синхронизации. Монтируются микросхемы в корпуса fpBGA-типа с числом выводов от 256 до 676. По логической емкости микросхемы серии ispMACH5000VG подобны устройствам следующего класса.
Сверхбольшие микросхемы (SuperBig) с числом логических ячеек до 1024. В этот класс вошли выпущенные в конце 2003 года ПЛИС ispXPLD – микросхемы с расширенными возможностями программирования. В ПЛИС этого семейства использована архитектура сверхшироких CPLD семейства ispMACH5000, но с возможностью конфигурирования различных схем памяти и логики. Достигнуто это за счет применения многофункциональных блоков (Multi-Function Blocks – MFB), объединенных GRP (рис.5). Входящая в блок MFB многофункциональная матрица использует до 68 входов GRP, четыре глобальных тактовых сигнала, сигнал сброса и выдает МЯ выходные данные и определенные сигналы управления. Выходные сигналы могут передаваться внутрисхемным блокам или блокам системного ввода/вывода (sysIO) для вывода данных. Каждый блок MFB может быть сконфигурирован для выполнения следующих шести функций:
· логического устройства с 68 входами, 168 термами и с 32 МЯ;
· двухпортового СОЗУ емкостью до 8 Кбит;
· псевдодвухпортового СОЗУ емкостью 16 Кбит;
· однопортового СОЗУ емкостью 16 Кбит;
· памяти обратного магазинного типа (FIFO) емкостью 16 Кбит;
· ассоциативной памяти емкостью 128х48 бит.
Время задержки распространения сигнала от входа к выходу через комбинационную логику равно 4 нс, задержка тактового импульса – 2,8 нс, время установки – 2,2 нс и рабочая частота – до 300 МГц. Средняя потребляемая мощность в статическом режиме составляет 20–50 мА (при напряжении питания 1,8 В) и 3–60 мА (при 2,5/3,3 В). Напряжение питания микросхем семейства 3,3; 2,5 и 1,8 В.
Xilinx
Не оставляет без внимания рынок CPLD и крупнейший производитель ПЛИС с FPGA-архитектурой, выпускающий несколько семейств таких микросхем, – компания Xilinx. CPLD серий ХС9500, CoolRunner, CoolRunner XPLA3 и CoolRunner-II подробно рассмотрены ранее*. Интерес компании к ПЛИС этого типа связан с совершенствованием технологии и снижением издержек производства, улучшением производительности и надежности, благодаря чему расширяется их применение для реализации конструкций на базе устаревших "дискретных" логических микросхем. В 2003 году доля компании на рынке CPLD составила 21% против 18% в 2002-м. С целью стимулирования дальнейшего роста своей доли на рынке Xilinx выпустила аналитическую сервисную программу CPLD Logic Consolidator, позволяющую сравнивать стоимость реализации конкретного приложения на ПЛИС, в частности популярных серий компании, и дискретных логических устройств. За счет определения экономии затрат на материально-техническое обеспечение CPLD Logic Consolidator предоставляет конструкторам цифровых систем данные для оценки либо экономии, достигаемой при использовании ПЛИС, либо данные для определения направления дальнейших работ по увеличению степени интеграции микросхем. Оценка экономии производится на основе сравнения средней цены дискретных логических микросхем семейства 7400 в самых дешевых пластмассовых корпусах при закупке партии в 10 тыс. шт. и цены CPLD, реализующего оптимальное решение, при продаже аналогичной партии.
Таким образом, помимо экономии средств на приобретение изделий, CPLD позволяют экономить общие затраты на реализацию системы благодаря уменьшению площади печатной платы и числа слоев, требуемых для формирования соединений, а также снижению затрат на установку, испытания и сборку. Возможность пере-программирования ПЛИС этого типа обеспечивает модернизацию уже готового изделия. А поскольку CPLD поставляются как "чистые изделия", пригодные для различных приложений, они не создают риска возникновения избыточных запасов.