CPLD - СЛОЖНЫЕ ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ УСТРОЙСТВА

АРХИТЕКТУРА И БЛОКИ CPLD

CPLD - совокупность нескольких PAL-подобных блоков, объединенных системой межсоединений. Упрощенная архитектура «классической» CPLD показана на рис. 7.16. PAL-подобные блоки выполняют логические преобразования сигналов, а матрица со­единений обеспечивает межсоединения блоков. Каждый блок имеет свои входы/выхо­ды для приема и выдачи сигналов и специализированные входы для глобальных сиг­налов управления различными элементами схемы.

Простейшие PAL-блоки (иначе говоря, функциональные блоки ФБ) имеют структуру, рассмотренную в п. 7.1, и содержат программируемую матрицу элементов И и группу не программируемых элементов ИЛИ. Матрица вырабатывает конъюнктивные термы (логи­ческие произведения предусмотренных программированием входных переменных и их инверсий) для последующего получения из них дизъюнктивных нормальных форм (ДНФ) требуемых функций. Эта структура реализует так называемую двухуровневую логику.

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

 


 


 


Архитектурно CPLD состоят из программируемой матрицы соединений ПМС (PIA, Programmable Interconnect Array), множества функциональных PAL-блоков и блоков ввода/вывода (lOBs, Input/Output Blocks), расположенных на периферии кристалла (рис. 7.16). В отличие от типичных для FPGA систем сегментированных связей в CPLD связи одномерно непрерывны, причем все связи идентичны, и это дает хорошую пред­сказуемость задержек в связях (рис. 7.17). Программируемая матрица соединений позволяет соединять выход любого функционального блока с любыми входами дру­гих. Входы блоков связаны с горизонтальными линиями, пересекающими все верти­кальные линии матрицы, отведенные для выходов функциональных блоков. Таким образом, любой вход блока может быть подключен к любому выходу программирова­нием точек связи между вертикальными и горизонтальными линиями матрицы. В по­добных случаях говорят, что система межсоединений обеспечивает полную коммути­руемость блоков (100 %-ную разводку сигналов между функциональными блоками). Обеспечить полную коммутируемость блоков в сложных микросхемах программируе­мой логики удается не всегда. Для CPLD без полной коммутации в процессе проекти­рования может появляться задача такого преобразования проекта, которое дает умень­шение числа связей между функциональными блоками.

Рост сложности CPLD затрудняет реализацию полной коммутируемости блоков в рассмотренной структуре и вызывает к жизни структуры с двумя уровнями матриц соединений - глобальным и локальным. Локальные матрицы обслуживают группы фун­кциональных PAL-блоков (сегменты), а глобальные обеспечивают межсегментный об­мен сигналами. Такую архитектуру имеют, например, CPLD семейства МАСН5 фирмы AMD (рис. 7.18).

 

7.5.2. ПОПУЛЯРНЫЕ CPLD ФИРМЫ «ALTERA»

 

Фирма «Altera» наряду с фирмой «Xilinx» принадлежит к крупнейшим разработчикам ИС ПЛ и занимает 30-40 % мирового рынка этой продукции. Преобладающей линией деятельности фирмы «Altera» является разработка именно CPLD, к которым далее до­бавились микросхемы комбинированной архитектуры и типа «система на кристалле».

Классическим представителем CPLD является семейство МАХ7000 (МАХ - аббреви­атура от Multiple Array Matrix), выпускаемое фирмой «Altera». Микросхемы этого семей­ства имеют память конфигурации типа EEPROM, т. е. программируются введением заря­дов в плавающие затворы ЛИЗМОП-транзисторов. При снятии питания конфигурация сохраняется. Стирание содержимого памяти конфигурации производится электрически­ми

сигналами в специальном режиме.

 

 

 

На рис. 7.19 показан фрагмент микросхемы семейства МАХ7000. Показан один ярус, содержащий логические блоки ЛБ и блоки ввода/вывода БВВ. У разных представителей семейства схемы составляются из разного числа ярусов: у младшего представителя все­го один ярус, у старшего — восемь, соответственно этому у младшего представителя два ЛБ, у старшего -16. Логические блоки имеют по 16 макроячеек (МЯ), получающих термы от локальных программируемых матриц И (ЛПМИ). Программируемая матрица соедине­ний ПМС обеспечивает межсоединения логических блоков таким образом, что на любой вход Л Б может быть подан сигнал от любого выхода Л Б или контакта ввода/вывода.


 

ПМС организована так, что на пути сигнала нет программируемых ключей и сигналы передаются через конъюнкторы, открытые по второму входу единичным сигналом, там, где это предусмотрено при конфигурировании микросхемы. Такое решение ускоряет пе­редачу сигналов по линиям связи (рис. 7.20).На вход ЛБ может быть подан сигнал с лю­бой непрерывной по длине вертикальной линии ПМС.

Все ЛБ связаны со своими блоками ввода/вывода, имеющими от 6 до 12 контактов (КП - контактная площадка). Так как в блоке 16 макроячеек, не все они могут иметь внешний вывод. Часть макроячеек может быть использована только для выработки сигналов обратной связи, передаваемых в ПМС. Это решение обосновано тем, что при построении ряда узлов многие логические функции нужны только для использования внутри схемы.

ПМС получает от каждого ЛБ 16 сигналов обратной связи, от блоков ввода/вывода - от 6 до 12 сигналов и четыре специализированных сигнала. К специализированным сигна­лам относятся глобальные (т. е. единые для всех одноименных блоков схемы) сигналы тактирования (GCLK1, GCLK2) и сброса (GCLR), а также сигналы разрешения выходов ОЕ. Из ПМС поступает по 36 сигналов для каждого ЛБ и еще шесть сигналов, которые прямо или инверсно передаются через мультиплексор MUX3 для глобальной шины раз­решения выходов БВВ.

Схема макроячейки показана на рис. 7.21. Из матрицы элементов И в матрицу распре­деления термов МРТ поступает пять основных термов (на рисунке слева). МРТ дает воз­можность использовать эти термы для сборки по ИЛИ с последующей подачей результата на элемент сложения по модулю 2 для образования комбинационной функции, а также для управления триггером по входам сброса (CLRn) и установки (PRn). Терм t может быть ис­пользован для тактирования триггера или разрешения тактирования в зависимости от про­граммирования мультиплексора MUX2.

Триггер имеет гибкую систему управления записью данных. Он может тактироваться от глобального сигнала GCLK, причем такое тактирование может сопровождаться инди­видуальным управлением от сигнала разрешения ENA. Возможно тактирование и от ло­кального сигнала t.

 


 


 

Разнообразные варианты тактирования предоставляют удобство построения авто­матов с памятью разных типов (синхронных, апериодических, асинхронных).

Установка и сброс триггера возможны от асинхронных сигналов PRn и CLRn, кроме того, возможен сброс от глобального сигнала GCLR при соответствующем программиро­вании мультплексора MUX3.

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

Мультиплексор MUX4 позволяет подавать на выход макроячейки (к блоку ввода/вы­вода) либо непосредственно комбинационную функцию, либо хранимую в триггере (ре­гистровый выход).

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

Параллельный ЛР образуется с помощью коммутации термов, передаваемых от пред­шествующих макроячеек в последующие как по цепочке (рис. 7.22).Допускается образо­вание цепочек длиною до 8 звеньев.

Блок ввода/вывода (рис. 7.23) позволяет гибко управлять состоянием выходного бу­фера. ПМС формирует для этой цели шесть глобальных сигналов разрешения выхода ОЕ, каждый из выводов благодаря программированию мультиплексора MUX может под­ключаться к любому из шести сигналов. У некоторых микросхем семейства МАХ7000 предусмотрена возможность запрограммировать выход с открытым стоком. Кроме того, программируется и скорость изменения выходных напряжений буферов (крутизна фрон­тов в вариантах быстрая/медленная; полезность этой возможности обсуждалась ранее.