Программируемые логические матрицы к настоящему времени морально устарели и применяются для реализации относительно простых устройств, для которых не существует готовых микросхем средней степени интеграции. При реализации сложных цифровых схем обычно применяются программируемые логические интегральные схемы (ПЛИС) одним из видов ПЛИС являются сложные программируемые логические устройства (CPLD — Complex PLD).
Внутреннее устройство CPLD
Программируемая логическая интегральная схема CPLD состоит из нескольких макроячеек, расположенных на одном кристалле. Каждая макроячейка соединена с блоками ввода-вывода, осуществляющими формирование необходимого вида входов или выходов для работы с внешними схемами. Кроме того, все макроячейки и блоки ввода-вывода связаны между собой внутренними параллельными шинами. Пример внутренней схемы CPLD приведен на рисунке 1.
Рисунок 1. Пример внутренней схемы CPLD
Приведенная на рисунке 1 микросхема CPLD состоит из четырех макроячеек, которые связаны между собой внутренними шинами и соединяются с блоками ввода-вывода. Макроячейка построена подобно ПЛМ микросхеме, к которой на выходе подключен триггер. На рисунке 2 приведен пример внутренней схемы макроячейки и ее подключение к шине межсоединений.
Рисунок 2. Внутренняя схема макроячейки микросхемы CPLD
В состав приведенной на рисунке 2 макроячейки входят четыре шестивходовых логических элемента "6-И" и 4-входовый логический элемент "4-ИЛИ". Его выход соединен со входом логического элемента "ИСКЛЮЧАЮЩЕЕ ИЛИ". Этот логический элемент предназначен для реализации инверсии логической функции, реализованной ПЛМ-подобной схемой макроячейки. Для этого на его второй вход может подаваться логический ноль или логическая единица. Если этот вход запрограммирован на подачу логической единицы, то логический элемент "ИСКЛЮЧАЮЩЕЕ ИЛИ" будет инвертировать значение, поступающее с выхода логического элемента "4-ИЛИ". Если же на него поступает логический ноль, то схема "ИСКЛЮЧАЮЩЕЕ ИЛИ" будет передавать на выход сигнал без изменения.
На выходе макроячейки поставлен двухвходовый мультиплексор, который позволяет передавать на выход текущее значение сигнала с выхода ПЛМ-схемы, или сохраненное в D-триггере.
Блок ввода-вывода состоит из элементов с тремя состояниями (буферов). Буфер позволяет настраивать выводы микросхемы на ввод или и на вывод сигналов. Чтобы вывод микросхемы настроить на ввод информации, достаточно перевести буфер, подключенный к данному выводу, в высокоимпедансное состояние. Дальнейший путь прохождения сигнала по микросхеме может быть запрограммирован МОП-ключами, размещенными на пересечениях вертикальных проводников и горизонтальных проводников шинымежсоединений. На схеме это соединение помечается символом 'x'. Необходимо отметить, что если вывод запрограммирован на прием информации, то он не может быть использован в качестве выхода микросхемы. Обычно фирмы-изготовители указывают максимально возможное число входных и выходных линий.
Разработка цифровых устройств на CPLD
Разработка цифровых устройств на программируемых логических интегральных схемах CPLD практически не отличается от разработки обычных цифровых устройств. Для этого не требуется разбираться в особенностях внутренней структуры микросхемы или проектировать матрицу межсоединений. Разработчики ПЛИС предоставляют пакет САПР в составе которого можно вести разработку цифрового устройства в виде обычных схем в схемном редакторе, а затем транслировать эту схему в файл коммутаций внутренней матрицы межсоединений CPLD. Этот файл загружается в ПЗУ микросхемы CPLD и микросхема превращается в разработанное нами цифровое устройство, фактически в заказную СБИС.
В настоящее время разработка цифровых устройств чаще ведется с применением языков программирования схем, таких как AHDL или VHDL. Применение языков программирования вместо примитивов, являющихся аналогами микросхем средней интеграции, позволяет значительно оптимизировать внутреннюю структуру прошивки микросхемы.
В качестве примера системы автоматизированного проектирования (САПР) программируемых логических интегральных схем можно привести пакет Quartus II, предлагаемый фирмой Alterra. С работой программного пакета Quartus II можно познакомиться в лабораторной работе 1 " Исследование цифровых устройств на основе программируемых логических интегральных схем (ПЛИС) в среде Quartus II"