Programmierbare logische Anordnung
Eine programmierbare logische Anordnung, häufig in englischsprachiger Fachliteratur als Programmable Logic Array oder kurz PLA bezeichnet, ist eine Form der programmierbaren logischen Schaltung, die aus zwei hintereinander geschalteten UND- und ODER-Matrizen besteht. Eine seltener verwendete Bezeichnung ist Fieldprogrammable Logic Array (FPLA).
Allgemeines
Ein PLA wird zur Herstellung von Schaltnetzen und -werken für logische Funktionen in disjunktiver Form verwendet. Die UND-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 UND-Matrix. Die disjunktive Verknüpfung der Konjunktionsterme erfolgt mittels der ODER-Matrix. Die technische Realisierung beider Matrizen erfolgt allerdings häufig mittels NAND-Gliedern. 1986 hatten die universelleren PLAs die entwicklungstechnisch älteren PALs bereits weitgehend vom Halbleitermarkt verdrängt[1].
Heute werden PLAs nur noch selten eingesetzt und sind fast vollständig durch CPLDs abgelöst worden. CPLDs besitzen wie PLAs keine Einschränkungen betreffend der Verwendbarkeit der UND-/ODER-Matrizen im Eingangsbereich, sind elektrisch programmierbar und auch wieder löschbar, sind wie FPGAs in einheitlichen Hardwareprogrammiersprachen wie beispielsweise VHDL zu programmieren und besitzen darüber hinaus eine bestimmte Anzahl an Registern.
Realisierung
Ursprünglich wurde eine Matrix aus Sicherungen (engl. fuse) verwendet, wobei beim Programmieren entsprechend dem zu programmierenden Bit-Muster, einzelne Sicherungen mit einem hohen Strom durchgebrannt wurden. Eines der Probleme dieser Technologie war, dass sich mit der Zeit einzelne Sicherungen durch Kristallisationsprozesse wieder „reparieren“ konnten.
Bei der neueren Antifuse-Technologie besteht das PLA aus einer Diodenmatrix, in welcher jede Diode ein Bit repräsentiert. Im Gegensatz zur Fuse-Technologie, wo eine leitende Verbindung unterbrochen wird, sind hier die Dioden so verschaltet, dass sie normalerweise den Strom sperren. Beim Programmiervorgang werden nun gezielt bestimmte Dioden mit einem sehr hohen Strom belastet. Diese Dioden werden dadurch zerstört und bilden so eine leitende Verbindung.
Nach dem „Brennvorgang“ des PLA werden die geschriebenen Daten durch ein Bit-Muster defekter und funktionierender Dioden repräsentiert. Diese Daten lassen sich nun beliebig oft auslesen. PLAs gehören in die Gruppe der OTP-Bauelemente.
Die Anzahl der Ein- und Ausgänge muss dabei nicht identisch sein. Ein einmal programmierter Baustein kann nicht mehr geändert werden, was in der Serienfertigung nicht weiter störend ist. Während der Entwicklungsphase elektronischer Schaltungen werden hingegen häufig so genannte GALs (Generic Array Logic) eingesetzt, die sich mehrfach löschen und neu programmieren lassen.
Anschauliches Beispiel
Eingangssignal 1: Anschaltknopf (an/aus) Eingangssignal 2: Sicherheitsschalter (an/aus)
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 ODER wenn Anschaltknopf = aus UND Sicherheitsschalter = an ODER wenn Anschaltknopf = aus UND Sicherheitsschalter = aus, dann Motor = aus.
Der Motor könnte auch mit zwei in Reihe liegenden Schaltern gesteuert werden, so dass der Stromkreis nur dann geschlossen ist, wenn der Anschaltknopf UND der Sicherheitsschalter geschlossen sind. Im Beispiel soll aber der Einsatz eines PLA verdeutlicht werden. In PLAs können nun auf engstem Raum Ein- und Ausgangssignale auf sehr komplizierte Weise 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.
Siehe auch
- EPROM – Erasable Programmable Read Only Memory
Literatur
- Erwin Böhmer, Dietmar Ehrhardt, Wolfgang Oberschelp: Elemente der angewandten Elektronik. 15. Aufl. Vieweg Verlag, Wiesbaden 2007, Kapitel ROMs, PROMs und PLDs. (ROM, PLD und PAL auf S. 268–269, Aufbau und Programmierung von GALs im Anhang S. 418–419).
- Hans Martin Lipp: Grundlagen der Digitaltechnik. Oldenburg Wissenschaftsverlag, ISBN 978-3-486-25916-2 (ULA auf S. 169–170; PLA auf S. 172).
- A. Auer: Programmierbare Logik-IC, Eigenschaften, Anwendung, Programmierung. Hüthig Buch Verlag, Heidelberg 1990 (Aufbau und Programmierung von Programmable Logic Device (PLD), Generic Array Logic (GAL), Abänderbarer Gatteranordnung (AGA) und Logic Cell Array (LCA)).
- Edgar Gaßner, Max Reidl: ttl 7400 IC integrierte schaltungen, datenlexikon, vergleichstabelle. Section 6: FPLA feld-programmierbare logikeinheit, S."6-2" bis "6-10" sowie S."2-349" (Aufbau und genaue Programmierweise von FPLAs der Typen 74S330J/N, 74S331J/N, 54S330J und 54S331J -mit je 12 Eingängen und 6 Ausgängen- von Texas Instruments).
- Manfred Seifart: Digitale Schaltungen. VEB Verlag Technik Berlin, Berlin 1986, 2. Auflage, ISBN 3-341-00148-4, Kapitel: "Programmierbare Logikanordnungen/Prinzipielle Struktur einer PLA", "Wirkungsweise einer PLA", S. 274–278, "Entwurfsmethodik für die PLA-Programmierung", S. 278–280 (u.a. Vergleich des strukturellen Aufbaus von PROM, PLA und PAL).
Weblinks
- Applet zum Experimentieren mit ROM, PLA und PAL-Strukturen Funktionseingabe durch Klick in der Wertetabelle oder Programmiermatrix
Einzelnachweise
- Manfred Seifart: Prinzipielle Struktur einer PLA. In: Digitale Schaltungen. 2., durchges. Auflage. Verlag Technik, Berlin 1986, ISBN 3-341-00148-4, S. 273.