Programmable Array Logic ( PAL ) — это семейство программируемых логических полупроводниковых устройств, используемых для реализации логических функций в цифровых схемах , представленное компанией Monolithic Memories , Inc. (MMI) в марте 1978 года. [1] MMI получила зарегистрированную торговую марку на термин PAL для использования в «Programmable Semiconductor Logic Circuits». В настоящее время торговая марка принадлежит компании Lattice Semiconductor . [2]
Устройства PAL состояли из небольшого ядра PROM (программируемое постоянное запоминающее устройство) и дополнительной выходной логики, используемой для реализации определенных требуемых логических функций с помощью небольшого количества компонентов.
Используя специализированные машины, устройства PAL были «программируемыми в полевых условиях». PAL были доступны в нескольких вариантах:
В большинстве приложений электрически стираемые GAL теперь используются как прямая замена однократно программируемых PAL, совместимая по выводам .
До появления PAL разработчики цифровых логических схем использовали компоненты малой интеграции (SSI), такие как в семействе TTL ( транзисторно-транзисторная логика ) серии 7400 ; семейство 7400 включало в себя различные логические строительные блоки, такие как вентили ( NOT , NAND , NOR , AND , OR ), мультиплексоры (MUX) и демультиплексоры (DEMUX), триггеры (D-типа, JK и т. д.) и другие. Одно устройство PAL обычно заменяло десятки таких «дискретных» логических пакетов, поэтому бизнес SSI пришел в упадок, в то время как бизнес PAL взлетел. PAL успешно использовались во многих продуктах, таких как мини-компьютеры , как описано в бестселлере Трейси Киддер «Душа новой машины» .
PAL не были первыми коммерческими программируемыми логическими устройствами; Signetics продавала свою программируемую логическую матрицу (FPLA) с 1975 года. Эти устройства были совершенно незнакомы большинству разработчиков схем и считались слишком сложными в использовании. FPLA имела относительно низкую максимальную скорость работы (из-за наличия как программируемых И, так и программируемых ИЛИ матриц), была дорогой и имела плохую репутацию в плане тестируемости. Другим фактором, ограничивающим принятие FPLA, был большой корпус, 600- миль (0,6 дюйма, или 15,24 мм) шириной 28-контактный двухрядный корпус (DIP).
Проектом по созданию устройства PAL руководил Джон Биркнер , а фактическая схема PAL была разработана Х. Т. Чуа. [3] На предыдущей работе (в компании-производителе мини-компьютеров Computer Automation ) Биркнер разработал 16-битный процессор с использованием 80 стандартных логических устройств. Его опыт работы со стандартной логикой привел его к убеждению, что программируемые пользователем устройства будут более привлекательными, если они будут разработаны для замены стандартной логики. Это означало, что размеры корпусов должны были быть более типичными для существующих устройств, а скорости должны были быть улучшены. MMI планировала, что PAL будут относительно недорогими (менее 3 долларов США) деталями. Однако изначально у компании были серьезные проблемы с выходом годных изделий [ нужна цитата ] и ей приходилось продавать устройства по цене более 50 долларов США. [ нужна цитата ] Это поставило под угрозу жизнеспособность PAL как коммерческого продукта, и MMI была вынуждена лицензировать линейку продуктов National Semiconductor. [ нужна цитата ] PAL позже были « вторым источником » от Texas Instruments и Advanced Micro Devices .
Ранние PAL представляли собой 20-контактные DIP- компоненты, изготовленные из кремния с использованием технологии биполярных транзисторов с одноразово программируемыми (OTP) титаново-вольфрамовыми программирующими предохранителями. [4] Более поздние устройства производились компаниями Cypress , Lattice Semiconductor и Advanced Micro Devices с использованием технологии КМОП .
Первоначальные 20- и 24-контактные PAL обозначались MMI как устройства средней степени интеграции (MSI).
Архитектура PAL состоит из двух основных компонентов: логической плоскости и выходных логических макроячеек.
Программируемая логическая плоскость представляет собой программируемый массив постоянного запоминающего устройства (PROM), который позволяет направлять сигналы, присутствующие на контактах устройства, или логические дополнения этих сигналов на выходные логические макроячейки.
Устройства PAL имеют массивы транзисторных ячеек, расположенных в плоскости «фиксированное ИЛИ, программируемое И», которые используются для реализации двоичных логических уравнений « сумма произведений » для каждого из выходов с точки зрения входов и синхронной или асинхронной обратной связи с выходов.
Ранние 20-контактные PAL имели 10 входов и 8 выходов. Выходы были активными низкими и могли быть зарегистрированными или комбинационными. Члены семейства PAL были доступны с различными выходными структурами, называемыми «выходными логическими макроячейками» или OLMC. До появления серии «V» (для «переменной») типы OLMC, доступных в каждом PAL, были фиксированы на момент производства. (PAL16L8 имел 8 комбинационных выходов, а PAL16R8 имел 8 зарегистрированных выходов. PAL16R6 имел 6 зарегистрированных и 2 комбинационных выхода, в то время как PAL16R4 имел 4 каждого из них.) Каждый выход мог иметь до 8 терминов продукта (фактически вентилей И); однако комбинационные выходы использовали один из терминов для управления двунаправленным выходным буфером. Были и другие комбинации, которые имели меньше выходов с большим количеством терминов продукта на выход и были доступны с активными высокими выходами (серия «H»). [5] : 1–14 Устройства серии «X» имели вентиль XOR перед регистром. [5] : 1–9 Существовали также похожие 24-контактные версии этих PAL.
Эта фиксированная структура вывода часто разочаровывала разработчиков, пытавшихся оптимизировать полезность устройств PAL, поскольку для их приложений часто требовались выходные структуры разных типов. (Например, нельзя было получить 5 зарегистрированных выводов с 3 активными высокими комбинационными выводами.) Поэтому в июне 1983 года AMD представила 22V10, 24-контактное устройство с 10 выходными логическими макроячейками. [6] Каждая макроячейка могла быть сконфигурирована пользователем как комбинационная или зарегистрированная, активная высокая или активная низкая. Количество терминов продукта, выделенных для вывода, варьировалось от 8 до 16. Это одно устройство могло заменить все 24-контактные устройства PAL с фиксированной функцией. Члены серии PAL "V" ("переменная") включали PAL16V8, PAL20V8 и PAL22V10.
PAL программировались электрически с использованием двоичных шаблонов (как файлы JEDEC ASCII / шестнадцатеричные файлы) и специальной электронной системы программирования, доступной как от производителя, так и от третьей стороны, такой как DATA I/O . В дополнение к одноблочным программаторам устройств, часто использовались устройства подачи устройств и групповые программаторы, когда требовалось запрограммировать больше, чем несколько PAL. (Для больших объемов затраты на электрическое программирование можно было исключить, если производитель изготовил специальную металлическую маску, используемую для программирования шаблонов клиентов во время производства; MMI использовал термин «жесткая логика массива» (HAL) для обозначения устройств, запрограммированных таким образом.)
Хотя некоторые инженеры программировали устройства PAL, вручную редактируя файлы, содержащие двоичные данные шаблона предохранителя, большинство предпочитало проектировать свою логику с использованием языка описания оборудования (HDL), такого как Data I/O ABEL , Logical Devices CUPL или MMI PALASM . Это были программы автоматизированного проектирования ( 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 ( Compiler for Universal Programmable Logic ) в сентябре 1983 года. [ 7] Программное обеспечение всегда называлось CUPL и никогда не называлось расширенной аббревиатурой. Это был первый коммерческий инструмент проектирования, который поддерживал несколько семейств ПЛИС. Первоначальный выпуск был для IBM PC и MS-DOS, но он был написан на языке программирования C , поэтому его можно было портировать на дополнительные платформы. [8] Assisted Technology была приобретена Personal CAD Systems (P-CAD) в июле 1985 года. В 1986 году пакет захвата схем PCAD мог использоваться в качестве интерфейса для CUPL. [9] Позднее CUPL был приобретен Logical Devices и теперь принадлежит Altium . [10] В настоящее время CUPL доступен как интегрированный пакет разработки для Microsoft Windows. [11]
Atmel выпускает бесплатно WinCUPL (собственное программное обеспечение для проектирования всех Atmel SPLD и CPLD). Atmel была приобретена Microchip в 2016 году.
Корпорация Data I/O выпустила ABEL в апреле 1984 года. В команду разработчиков входили Майкл Холли, Майк Мраз, Геррит Баррер, Уолтер Брайт , Бьорн Фримен-Бенсон, Кью Ли, Дэвид Пеллерин, Мэри Бейли, Дэниел Берриер и Чарльз Оливье.
Data I/O выделила линейку продуктов ABEL в компанию по автоматизации электронного проектирования Synario Design Systems, а затем продала Synario компании MINC Inc в 1997 году. MINC была сосредоточена на разработке инструментов разработки FPGA. Компания закрылась в 1998 году, и Xilinx приобрела некоторые активы MINC, включая язык и набор инструментов ABEL. Затем ABEL стал частью набора инструментов Xilinx Webpack. Теперь ABEL принадлежит Xilinx.
К популярным программаторам устройств относятся логический программатор модели 60A и модель 2900 компании Data I/O Corporation .
Одним из первых программаторов PAL был Structured Design SD20/24. Они имели встроенное программное обеспечение PALASM и требовали только терминал CRT для ввода уравнений и просмотра графиков плавления. После плавления выходные данные PAL можно было проверить, если в исходный файл были введены тестовые векторы.
После того, как MMI добилась успеха с 20-контактными частями PAL, представленными около 1978 года, AMD представила 24-контактный 22V10 PAL с дополнительными функциями. После покупки MMI (около 1987 года) AMD выделила консолидированную операцию под названием Vantis, и этот бизнес был приобретен Lattice Semiconductor в 1999 году. [12]
В 1983 году компания Altera представила EP300 (первый CMOS PAL), а затем перешла на производство ПЛИС.
Lattice Semiconductor представила семейство схем с общей матричной логикой ( GAL ) в 1985 году с функциональными эквивалентами PAL серии "V", которые использовали перепрограммируемые логические плоскости на основе технологии EEPROM (электрически стираемая программируемая постоянная память). National Semiconductor была вторым источником деталей GAL.
AMD представила похожее семейство под названием PALCE. В общем, одна часть GAL может функционировать как любое из подобных устройств семейства PAL. Например, 16V8 GAL может заменить 16L8, 16H8, 16H6, 16H4, 16H2 и 16R8 PAL (и многие другие).
В 1986 году компания ICT (International CMOS Technology) представила микросхему PEEL 18CV8. 20-контактная КМОП-память EEPROM могла использоваться вместо любого биполярного PAL с зарегистрированным выходом и потребляла гораздо меньше энергии.
Крупномасштабные программируемые логические устройства были представлены Atmel , Lattice Semiconductor и другими. Эти устройства расширили архитектуру PAL, включив несколько логических плоскостей и/или спрятав логические макроячейки в логической плоскости(ях). Термин сложное программируемое логическое устройство (CPLD) был введен для того, чтобы отличать эти устройства от их предшественников PAL и GAL, которые тогда иногда назывались простыми программируемыми логическими устройствами (SPLD).
Другим большим программируемым логическим устройством является программируемая пользователем вентильная матрица (ПЛИС). Это устройства, которые в настоящее время [ когда? ] производятся Intel (которая приобрела Altera ) и Xilinx (которая была приобретена AMD ) и другими производителями полупроводников.
Другие типы программируемых логических устройств:
Нынешние и бывшие производители программируемых логических устройств:
Нынешние и бывшие производители программаторов устройств PAL:
В 1981 году [Боб] Осанн основал Assisted Technology для разработки инструментов поддержки PLD. В сентябре 1983 года Assisted Technology выпустила версию 1.01a своего компилятора CUPL (Universal Compiler for Programmable Logic) PLD, поддерживающего 29 устройств.