# Programmable Array Logic

Programmable Array Logic (kurz PAL genannt) sind elektronische Halbleiterbausteine im Bereich der Digitaltechnik, die durch Programmierung eine logische Verknüpfungsstruktur der Eingangssignale zu den Ausgangssignalen erhalten. Eine alternative deutsche Bezeichnung lautete auch "programmierbare Zellenlogik". Sie wurden 1978 durch die Firma Monolithic Memories Inc. (MMI) entwickelt und in den Folgejahren produziert. PAL wurden in einer der ersten Hardwarebeschreibungssprachen PALASM programmiert. AMD brachte 1983 den PAL AMPAL22V10 (22V10) auf den Markt. Die deutsche Philips-Tochterfirma Valvo fertigte laut Datenbuch 1984 programmierbare integrierte Logik-Schaltkreise. 1986 hatten die universelleren PLAs die entwicklungstechnisch älteren PALs bereits weitgehend vom Halbleitermarkt verdrängt.

## Allgemeines

PALs sind Sonderfälle von PLAs (Programmable Logic Arrays) und dadurch gekennzeichnet, dass ausschließlich ihr UND-Array programmierbar ist. PALs sind nur einmal beschreibbar, da die Verknüpfungen auf dem Chip im Rahmen des Programmierprozesses mittels Durchbrennen von Verbindungen (Fuse-Technologie) oder Durchbrennen von Isolierungen (Antifuse-Technologie) hergestellt werden. Für die Programmierung werden die dazu notwendigen Daten in der Regel in Dateien im JEDEC-Format gespeichert.
Eine Weiterentwicklung der PALs und PLAs sind GALs (Generic Array Logic) und die entwicklungstechnisch noch jüngeren, aber komplizierter aufgebauten CPLDs (Complex Programmable Logic Device).
Seit Mitte der 1990er Jahre werden PALs und GALs in neu entwickelten Schaltungen kaum noch eingesetzt und sind fast vollständig durch Complex Programmable Logic Devices (CPLDs) abgelöst worden. CPLDs besitzen keine Einschränkungen bezüglich der Verwendbarkeit der UND-/ODER-Matrizen im Eingangsbereich, sind elektronisch programmier- und löschbar und umfassen darüber hinaus eine bestimmte Anzahl an Registern. Die Funktion wird wie auch bei Field Programmable Gate Arrays (FPGAs) mittels abstrakter Hardware-Programmiersprachen, wie beispielsweise VHDL, spezifiziert.

## Hersteller

* ehem. Monolithic Memories Inc., USA
* ehem. Valvo GmbH, Deutschland
* ehem. Philips GmbH, Niederlande
* ehem. Texas Instruments, USA
* ehem. AMD, USA
* ehem. National Semiconductor, USA
* ehem. Lattice
* ehem. Cypress Semiconductor Corporation

## Weiterentwicklungen
### Generic Array Logic (GAL)

Als Weiterentwicklung der PALs kamen zuerst durch die Lattice Semiconductor Corporation die wiederbeschreibbaren Generic Array Logic (kurz GAL genannt) -Bausteine auf den Markt. Sie bestehen aus einer programmierbaren UND-Matrix und einer fest verdrahteten ODER-Matrix. Im Gegensatz zum PAL sind sie elektrisch beschreibbar und entweder durch UV-Licht (EPLD) oder elektrisch (EEPLD) löschbar, wodurch eine Neuprogrammierung möglich wird.
Die Bezeichnung GAL ist ein Warenzeichen der Firma Lattice, wodurch es einige Firmen gibt, die diese Bausteine mit ihrem Originalnamen unter Lizenz bezeichnen, und andere Firmen, welche diese Bausteine umbenannt haben (bei AMD beispielsweise unter dem Namen PALCE) – hierbei unterscheidet sich der Programmieralgorithmus, jedoch nicht die Pinbelegung und Funktion.
Die Bezeichnung gibt im Muster an, um was für einen Logikbaustein es sich handelt, und gibt Informationen über seine Eigenschaften an. Ein GAL16v8 ist ein GAL-Baustein mit 16 Matrixeingängen für die Logikmatrix, dem Ausgangstyp v (variable Architektur) und verfügt über acht Ausgänge. Anschließend kommt nach einem Minus die Gatterdurchlaufverzögerung in ns und weitere Informationen über Betriebstemperaturen und das Chipgehäuse.
GAL-Bausteine haben drei verschiedene Betriebsmodi, welche durch zwei Architekturbits beim Programmieren festgelegt werden. Ein drittes Bit setzt für Ausgänge die Funktion, ob sie als Eingang oder Ausgang fungieren sollen (AC1(n), n=Pinnummer). Das bedeutet, dass generell jeder Ausgang auch als Eingang verwendet werden kann. Der Simple-Mode (SYN=1, AC0=0) ermöglicht die Verwendung des GAL-Bausteins als einfaches Logikgatter, mit Verknüpfung der AND-Bausteine mit nachfolgenden OR-Bausteinen. Der Complex-Mode (SYN=1, AC0=1) lässt das Multiplexen mithilfe von Tri-State-ausgängen zu und der letzte der Modi, der Registermodus, ermöglicht die Verschaltung von Logikgattern mit Registern durch integrierte D-Flipflops. Dadurch kann man sogar kleinere komplexere Schaltungen aufbauen, ohne ständig die Schaltungen durch weitere externe Logikbausteine erweitern zu müssen.
Ende 1988 brachte SGS-Thomson laut genanntem Datenbuch GALs auf den Markt.
Hersteller von GALs:
* Lattice
* SGS-Thomson
* AMD
* Cypress Semiconductor Corporation

### Sonstige

Seit Mitte der 1990er Jahre werden PALs/PLAs und GALs in neu entwickelten Schaltungen kaum noch eingesetzt und sind fast vollständig durch die komplexer aufgebauten Complex Programmable Logic Devices (CPLDs) abgelöst worden. CPLDs besitzen keine Einschränkungen bezüglich der Verwendbarkeit der UND-/ODER-Matrizen im Eingangsbereich, sind elektronisch programmier- und löschbar, sind wie Field Programmable Gate Arrays (FPGAs) in einheitlichen Hardware-Programmiersprachen, wie beispielsweise VHDL, programmierbar und umfassen darüber hinaus eine bestimmte Anzahl an Registern. siehe: Complex Programmable Logic Device
CPLD gehört laut Böhmer noch zur Gruppe der PAL/PLA/PLD(Programmable Logic Device) und GAL, hat aber einen komplizierteren Innenaufbau im IC. Die noch neueren FPGAs gehören hingegen zu einer anderen Technologie.

## PIN-Kompatibilität und Benennung von PALs und GALs

Die Bezeichnung 16L8 des PAL bedeutet, dass dieser 16 Eingänge hat und 8 Ausgänge mit negativer Ausgangslogik (L="Low" als Ausgangslogik). Ein H anstelle des L steht für positive Ausgangslogik. Ein R steht für die Nutzung als Register (Speicher für Dualzahlen).
Die älteren GALs von Lattice sind mit den deutlich älteren PALs pinkompatibel. So kann anstelle des PAL "16L8" der GAL "16V8" von Lattice eingesetzt werden. Auch dieser hat 16 Eingänge und 8 Ausgänge.

## IC-Typen

PALs:
* PAL16R4… (kurz: 16R4) von Texas Instruments
* PAL16R6CN (kurz: 16R6) von MMI, 20PIN DIP, seit 1978
* PAL16R8BCN (kurz: 16R8) von MMI, 20PIN DIP
* PAL16L8… (kurz: 16L8) von MMI, 20PIN DIP
* AMPAL22V10APC (kurz: 22V10) von AMD, 24PIN DIP, seit 1983
* TI16L8-25 (kurz: 16L8), philippinischer Produzent
* 16X4, Hersteller?
GALs:
* PALCE16V8H-25JC (kurz: 16V8H) von AMD, 20PIN DIP
* PALCE16V8Z-12PI (kurz: 16V8Z) von AMD, 20PIN DIP
* PALCE16V8H-25 (kurz: 16V8H) von AMD, 20PIN DIP
* PALCE 16V8H-25JC/4 (kurz: 16V8H) von AMD, 20PIN (4x5PINs)