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 предусмотрена возможность запрограммировать выход с открытым стоком. Кроме того, программируется и скорость изменения выходных напряжений буферов (крутизна фронтов в вариантах быстрая/медленная; полезность этой возможности обсуждалась ранее.