Введение
Тип программируемого логического устройства
Программируемый логический массив (PLA) — это тип программируемого логического устройства, используемый для реализации комбинационных логических схем. PLA имеет набор программируемых плоскостей элементов И, которые связаны с набором программируемых плоскостей элементов ИЛИ, которые затем могут быть условно инвертированы для формирования выходного сигнала. Для N входных переменных в PLA имеется 2N элементов И, а для M выходов – M элементов ИЛИ, каждый из которых имеет программируемые входы от всех элементов И. Такая структура позволяет синтезировать множество логических функций в канонической форме суммы произведений. PLA отличаются от программируемых логических устройств массива (PAL и GAL) тем, что программируемыми являются как плоскости элементов И, так и плоскости элементов ИЛИ. PAL имеет программируемые элементы И, но фиксированные элементы ИЛИ.
История
В 1970 году компания Texas Instruments разработала маско-программируемую интегральную схему (ИС) на основе ассоциативной памяти IBM, известной как ROAM. Это устройство, TMS2000, программировалось путем изменения металлического слоя в процессе производства ИС. TMS2000 имел до 17 входов и 18 выходов, а также 8 JK-триггеров для организации памяти. Компания TI впервые использовала термин "программируемый логический массив" (ПЛА) для обозначения этого устройства.
Преимущества перед памятью только для чтения
Желаемые выходные сигналы для каждой комбинации входных данных можно было бы запрограммировать в память только для чтения, при этом входные данные подавались бы по адресной шине, а выходные данные считывались бы как данные. Однако это потребовало бы отдельной ячейки памяти для каждой возможной комбинации входных данных, включая те, которые не должны возникать, а также дублирование данных для условий "независимо от" (например, логика вида "если вход A равен 1, то, что касается выхода X, значение входа B не имеет значения": в ПЗУ это пришлось бы записывать дважды, по одному разу для каждого возможного значения B, и по мере добавления большего количества входных данных "независимо от", дублирование росло бы экспоненциально). Поэтому программируемая логическая матрица (ПЛМ) часто может реализовать логическую схему, используя меньше транзисторов, чем эквивалентная схема в памяти только для чтения. Это особенно важно, когда она является частью процессорного чипа, где транзисторы ограничены в количестве (например, в оригинальном чипе 6502 использовалась ПЛМ для управления различными операциями процессора).
Приложения
Одно из применений ПЛА – реализация управления потоком данных. Он определяет различные состояния в наборе инструкций и формирует следующее состояние (путем условного перехода). [Например, если машина находится в состоянии 2 и переходит в состояние 4, если инструкция содержит непосредственное значение; тогда ПЛА должен определить действия управления в состоянии 2, установить следующее состояние в 4, если инструкция содержит непосредственное значение, и определить действия управления в состоянии 4]. Программируемые логические матрицы должны соответствовать диаграмме состояний системы. Первые домашние компьютеры Commodore 64, выпущенные в 1982 году (в начале 1983 года), первоначально использовали запрограммированный ПЛА Signetics 82S100, но с ростом спроса MOS Technology / Commodore Semiconductor Group начала производить ПЛА с фиксированной программой, имевший номер детали 906114 01.