Введение
Программируемые полупроводниковые приборы
Программируемая матричная логика (PAL) – это семейство программируемых полупроводниковых логических устройств, используемых для реализации логических функций в цифровых схемах, представленное компанией Monolithic Memories, Inc. (MMI) в марте 1978 года. MMI получила зарегистрированный товарный знак на термин PAL для использования в "программируемых полупроводниковых логических схемах". В настоящее время товарный знак принадлежит компании Lattice Semiconductor. Устройства PAL состояли из небольшого ядра ПЗУ (программируемой памяти только для чтения) и дополнительной выходной логики, используемой для реализации конкретных требуемых логических функций с небольшим количеством компонентов. С помощью специализированного оборудования устройства PAL могли быть "программируемыми в поле". PAL были доступны в нескольких вариантах:
Устройства "однократного программирования" (OTP) нельзя было обновить и повторно использовать после первоначального программирования. (MMI также предлагала аналогичное семейство под названием HAL, или "жесткая матричная логика", которые были похожи на устройства PAL, за исключением того, что они программировались маской на заводе.) Версии со стиранием ультрафиолетом (например: PALCxxxxx, например: PALC22V10) имели кварцевое окно над кристаллом и могли быть стерты для повторного использования с помощью источника ультрафиолетового света, как и ЭПРОМ. Более поздние версии (PALCExxx, например: PALCE22V10) были устройствами со стиранием флэш-памяти. В большинстве приложений электрически стираемые GAL теперь используются в качестве прямых замен однократных программируемых PAL.
История
До введения PAL конструкторы цифровых логических схем использовали компоненты малой степени интеграции (SSI), такие как компоненты серии 7400, выполненные по технологии ТТЛ (транзистор-транзисторная логика). Семейство 7400 включало в себя разнообразные логические элементы, такие как логические элементы (НЕ, И-НЕ, ИЛИ-НЕ, И, ИЛИ), мультиплексоры (MUX) и демультиплексоры (DEMUX), триггеры (D-типа, JK и др.) и другие. Одно устройство PAL обычно заменяло десятки таких "дискретных" логических микросхем, поэтому спрос на SSI снизился с ростом популярности PAL. PAL успешно применялись во многих изделиях, таких как мини-компьютеры, что описано в бестселлере Трейси Киддера «Душа новой машины». PAL не были первыми коммерчески доступными программируемыми логическими устройствами; компания Signetics продавала свои полевые программируемые логические матрицы (FPLA) с 1975 года. Эти устройства были малоизвестны большинству разработчиков схем и считались слишком сложными в использовании. FPLA имели относительно низкую максимальную рабочую частоту (из-за наличия как программируемых AND-, так и программируемых OR-матриц), были дорогими и имели плохую ремонтопригодность. Еще одним фактором, ограничивающим распространение FPLA, был большой корпус – 600 мил (0,6 дюйма или 15,24 мм) в ширину, 28-выводной DIP-корпус. Проект по созданию устройства PAL курировал Джон Биркнер, а сама схема PAL была разработана Х. Т. Чуа. На предыдущем месте работы (в компании Computer Automation, производителе мини-компьютеров) Биркнер разработал 16-битный процессор, используя 80 стандартных логических микросхем. Его опыт работы со стандартной логикой убедил его в том, что программируемые устройства будут более востребованы, если они будут разработаны как замена стандартной логике. Это означало, что размеры корпуса должны соответствовать существующим устройствам, а производительность должна быть увеличена. Компания MMI планировала продавать PAL по относительно низкой цене (менее 3 долларов США). Однако изначально компания столкнулась с серьезными проблемами с производственным выходом годных изделий и была вынуждена продавать устройства по цене более 50 долларов. Это ставило под угрозу коммерческую жизнеспособность PAL, и MMI была вынуждена лицензировать производственную линию компании National Semiconductor. Позже PAL также производились компаниями Texas Instruments и Advanced Micro Devices по лицензии.
Технологии процессов
Ранние PAL представляли собой 20-выводные DIP-компоненты, изготовленные из кремния с использованием биполярной транзисторной технологии и однократно программируемых (OTP) титано-вольфрамовых программируемых предохранителей. Более поздние устройства производились компаниями Cypress, Lattice Semiconductor и Advanced Micro Devices с применением CMOS-технологии. Первоначальные PAL с 20 и 24 выводами компания MMI классифицировала как устройства средней степени интеграции (MSI).
Архитектура PAL
Архитектура PAL состоит из двух основных компонентов: логической матрицы и макроячеек вывода.
Программируемая логическая плоскость
Программируемая логическая матрица — это программируемая постоянная память (ПЗУ), которая позволяет направлять сигналы, присутствующие на выводах устройства, или их логические инверсии, на выходные логические макроячейки. Устройства PAL содержат массивы транзисторных ячеек, организованных в матрицу с фиксированным логическим ИЛИ и программируемым логическим И, используемую для реализации логических уравнений в форме суммы произведений для каждого выхода, выраженных через входы и синхронную или асинхронную обратную связь от выходов.
Логика вывода
Ранние 20-выводные PAL имели 10 входов и 8 выходов. Выходы были с отрицательной полярностью и могли быть регистровыми или комбинационными. Представители семейства PAL были доступны с различными выходными структурами, называемыми "макроячейками выходной логики" или OLMC. До появления серии "V" (от "variable" – переменный), типы OLMC, доступные в каждой PAL, определялись во время производства. (PAL16L8 имел 8 комбинационных выходов, а PAL16R8 – 8 регистровых выходов. PAL16R6 имел 6 регистровых и 2 комбинационных выхода, в то время как PAL16R4 имел по 4 каждого.) Каждый выход мог иметь до 8 произведений (фактически, элементов И); однако комбинационные выходы использовали одно из произведений для управления двунаправленным выходным буфером. Существовали и другие комбинации с меньшим количеством выходов и большим количеством произведений на выход, доступные с выходами с положительной полярностью ("серия H"). Также существовали аналогичные 24-выводные версии этих PAL. Эта фиксированная выходная структура часто разочаровывала разработчиков, пытавшихся оптимизировать использование устройств PAL, поскольку их приложения часто требовали выходные структуры разных типов. (Например, нельзя было получить 5 регистровых выходов и 3 комбинационных выхода с положительной полярностью.) Поэтому в июне 1983 года AMD представила 22V10 – 24-выводное устройство с 10 макроячейками выходной логики. Каждую макроячейку можно было настроить пользователем как регистровую или комбинационную, с отрицательной или положительной полярностью. Количество произведений, выделяемых на выход, варьировалось от 8 до 16. Это устройство могло заменить все 24-выводные PAL с фиксированной функциональностью. В серию PAL "V" ("переменные") входили PAL16V8, PAL20V8 и PAL22V10.
Программирование PAL
PAL программировались электрически с использованием бинарных шаблонов (в виде файлов JEDEC ASCII/шестнадцатеричных) и специальной электронной системы программирования, доступной у производителя или сторонних поставщиков, таких как DATA I/O. Помимо программируемых устройств для отдельных микросхем, часто использовались податчики микросхем и групповые программируемые устройства, когда требовалось запрограммировать больше нескольких PAL. (Для больших объемов затраты на электрическое программирование можно было исключить, если производитель изготавливал специальную металлическую маску для программирования шаблонов заказчика непосредственно в процессе производства; компания MMI использовала термин "аппаратная логика массивов" (HAL) для обозначения устройств, запрограммированных таким способом.)
Языки программирования (в хронологическом порядке появления)
Хотя некоторые инженеры программировали устройства PAL, вручную редактируя файлы, содержащие данные о бинарном шаблоне перемычек, большинство предпочитало проектировать свою логику, используя язык описания аппаратуры (HDL), такой как ABEL от Data I/O, CUPL от Logical Devices или PALASM от MMI. Это были программы автоматизированного проектирования (CAD), которые сейчас называют "автоматизацией электронного проектирования", и они преобразовывали (или "компилировали") логические уравнения разработчиков в файлы бинарных карт перемычек, используемые для программирования (и часто тестирования) каждого устройства.
ПАЛАСМ
Язык PALASM (от "PAL assembler") был разработан Джоном Биркнером в начале 1980-х годов, а компилятор PALASM был написан компанией MMI на FORTRAN IV для IBM 370/168. MMI предоставила исходный код пользователям бесплатно. К 1983 году клиенты MMI использовали версии для DEC PDP 11, Data General NOVA, Hewlett Packard HP 2100, MDS800 и других систем. Он применялся для записи булевых уравнений для выходных выводов в текстовом файле, который затем преобразовывался в файл "карты соединений" для системы программирования с помощью программы, предоставляемой производителем; позже появилась возможность перевода из принципиальных схем, а затем "карты соединений" стали "синтезировать" из языков описания аппаратуры (HDL), таких как Verilog.
СУПЛ
Assisted Technology выпустила CUPL (компилятор для универсальной программируемой логики) в сентябре 1983 года. Программное обеспечение всегда называлось CUPL, а не его расшифровка. Это был первый коммерческий инструмент для разработки, поддерживающий несколько семейств ПЛИС. Первоначальная версия была выпущена для IBM PC и MS DOS, но поскольку она была написана на языке программирования C, её можно было портировать на другие платформы. В июле 1985 года компания Personal CAD Systems (P CAD) приобрела Assisted Technology. В 1986 году программный пакет для схемотехнического захвата от PCAD можно было использовать как интерфейс для CUPL. Позже CUPL была приобретена компанией Logical Devices, а сейчас принадлежит Altium. В настоящее время CUPL доступна как интегрированная среда разработки для Microsoft Windows. Atmel бесплатно распространяет WinCUPL (собственное программное обеспечение для всех ПЛИС и КПЛИ Atmel). Компания Atmel была приобретена Microchip в 2016 году.
АБЕЛЬ
Data I/O Corporation выпустила ABEL в апреле 1984 года. Команда разработчиков состояла из Майкла Холли, Майка Мраза, Геррита Баррере, Уолтера Брайта, Бьорна Фримена Бенсона, Кью Ли, Дэвида Пеллерина, Мэри Бейли, Дэниела Бёрриера и Чарльза Оливье. Data I/O выделила линейку продуктов ABEL в отдельную компанию по автоматизированному проектированию электроники под названием Synario Design Systems, а затем продала Synario компании MINC Inc в 1997 году. MINC специализировалась на разработке инструментов для разработки FPGA. Компания прекратила свою деятельность в 1998 году, после чего Xilinx приобрела часть активов MINC, включая язык и инструментарий ABEL. ABEL вошел в состав пакета инструментов Xilinx Webpack. В настоящее время Xilinx является владельцем ABEL.
Программисты устройств
Популярные программаторы устройств включали в себя логический программатор Model 60A и Model 2900 от Data I/O Corporation. Одним из первых программаторов PAL был Structured Design SD20/24. В него было встроено программное обеспечение PALASM, и для ввода уравнений и просмотра схем соединений (fuse plots) требовался только CRT-терминал. После записи (прожига) можно было проверить выходы PAL, если тестовые векторы были включены в исходный файл.
Преемники
После успеха MMI с 20-выводными PAL-компонентами, представленными примерно в 1978 году, AMD представила 24-выводной 22V10 PAL с дополнительными функциями. После приобретения MMI (около 1987 года) AMD выделила консолидированное подразделение под названием Vantis, которое в 1999 году было приобретено Lattice Semiconductor. Altera представила EP300 (первый CMOS PAL) в 1983 году, а затем перешла к производству FPGA. Lattice Semiconductor представила семейство генерических логических матриц (GAL) в 1985 году, с функциональными аналогами PAL серии "V", использующими перепрограммируемые логические плоскости на основе технологии EEPROM (электрически стираемой программируемой памяти только для чтения). National Semiconductor являлась вторым поставщиком компонентов GAL. AMD представила аналогичное семейство под названием PALCE. В целом, один компонент GAL может выполнять функции любого устройства аналогичного семейства PAL. Например, 16V8 GAL может заменить 16L8, 16H8, 16H6, 16H4, 16H2 и 16R8 PAL (и многие другие). ICT (International CMOS Technology) представила PEEL 18CV8 в 1986 году. Этот 20-выводной CMOS EEPROM-компонент мог использоваться вместо любого из PAL с регистрированными биполярными выходами и потреблял значительно меньше энергии. Более крупные программируемые логические устройства были представлены компаниями Atmel, Lattice Semiconductor и другими. Эти устройства расширили архитектуру PAL, включив несколько логических плоскостей и/или встраивая логические макроячейки в логические плоскости. Термин "сложное программируемое логическое устройство" (CPLD) был введен для отличия этих устройств от их предшественников PAL и GAL, которые впоследствии иногда назывались простыми программируемыми логическими устройствами (SPLD). Еще одним крупным программируемым логическим устройством является полевая программируемая вентильная матрица (FPGA). Эти устройства в настоящее время производятся Intel (которая приобрела Altera) и Xilinx (которая была приобретена AMD) и другими производителями полупроводников.