Programmierbare logische Anordnung

Eine programmierbare logische Anordnung, häufig auch in deutschsprachiger Fachliteratur als Programmable Logic Array oder kurz PLA, und gelegentlich als Fieldprogrammable Array Logic (FPLA) bezeichnet, ist ein Halbleiterschaltkreis, der aus zwei hintereinander geschalteten AND- und OR-Matritzen besteht. Er wird zur Herstellung von Schaltwerken für logische Funktionen in disjunktiver Normalform verwendet. Die AND-Matrix repräsentiert dabei die Konjunktionsterme. Die Auswahl der Konjunktionsterme erfolgt im Rahmen der Programmierung (meist mittels eines speziellen Gerätes) durch das Entfernen von Schaltgliedern aus der AND-Matrix. Die disjunktive Verknüpfung der Konjunktionsterme erfolgt mittels der ODER-Matrix. Die technische Realisierung beider Matrizen erfolgt allerdings häufig mittels NAND-Gliedern.
Zur Realisierung von Schaltungen mittels PLAs werden durch das Ausbrennen von Verbindungsstrukturen (fuses) mittels elektrischer Impulse die endgültigen Verknüpfungen geschaffen. Die Anzahl der Ein- und Ausgänge muss dabei nicht identisch sein. Ein einmal programmierter Baustein kann dabei allerdings nicht mehr geändert werden, was in der endgültigen Serienfertigung nicht weiter störend ist. Während der Entwicklungsphase elektronischer Schaltungen werden hingegen gerne so genannte GALs (Generic Array Logic) eingesetzt, die sich mehrfach löschen und neu programmieren lassen.
Beispiel
Eingangssignal 1 : Anschaltknopf Eingangssignal 2 : Sicherheitsschalter
Ausgangssignal : Motor (An / Aus)
Eine mögliche Programmierung wäre:
Wenn Anschaltknopf = An UND Sicherheitsschalter = An >> Dann Motor = An Wenn Anschaltknopf = An UND Sicherheitsschalter = Aus >> Dann Motor = Aus
Es reicht im Beispiel nicht den Motor direkt mit dem Schalter einzuschalten, sondern es ist eine zusätzliche Logik nötig. In PALs können nun auf engstem Raum sehr komplizierte Ein- und Ausgangssignale miteinander verknüpft werden.
Abgrenzung und Sonderfälle
Im Sprachgebrauch hat sich der Begriff PLA bzw. GAL für den Bereich der "kleineren" Bausteine programmierbarer Logik durchgesetzt, während sich für Bausteine "höherer" Komplexität die Begriffe ASIC, FPGA und CPLD in Abhängigkeit von der Art der Implementierung durchgesetzt haben.
Um Sonderfälle von PLAs handelt es sich bei den folgenden programmierbaren logischen Schaltungen:
- Programmable Array Logic (PAL): Hier ist nur das UND-Array programmierbar.
- Programmable Read Only Memory (PROM): Hier ist nur das ODER-Array programmierbar.