Was ist der Unterschied zwischen PLA und ROM?

8

Ich finde es schwer zu verstehen. Was ist der Unterschied zwischen PLA und ROM? Kann jemand bitte einen Link oder eine Erklärung geben?

Mithical
quelle
Niemand benutzt mehr mehr. ROMs wurden durch EEPROM oder Flash ersetzt.
Brian Carlton
1
@ Brian Carlton: Stimmt, aber masken- oder sicherungsbasierte PLAs wurden auch durch wiederbeschreibbare PLDs ersetzt. Im Allgemeinen gelten die Unterscheidungen zwischen ROMs und PLAs gleichermaßen für ihre Cousins ​​auf Flash-Basis, mit der Ausnahme, dass: (1) programmierbare Logikbausteine ​​im Allgemeinen mehr Goodies enthalten als in den vergangenen Jahren, (2) einige Flash-Chips die Adresse bei Auswahl zwischenspeichern können; und (3) der relative Geschwindigkeitsunterschied zwischen modernen Flash-Chips und modernen PLDs ist größer als zwischen älteren PLAs und älteren ROMs.
Supercat
1
@BrianCarlton erstaunlich ... Ich muss ein All-Points-Bulletin für die Halbleiterindustrie veröffentlichen, damit sie wissen, dass sie kein ROM mehr verwenden. Sie werden begeistert sein, wie viel Geld sie mit EEPROM sparen können!
Cuadue

Antworten:

10

Sie sind ganz andere Geräte.

PLA = Programmable Logic Array.

Ein PLA- oder PAL-Gerät (Programmable Array Logic) ist wie ein Baby-FPGA, das so programmiert werden kann, dass es grundlegende Logikfunktionen ausführt. Zehn bis Hunderte von Gattern auf einem PAL können angeschlossen werden, um einfache Logikfunktionen auszuführen. Ein PAL ist oft schreibgeschützt, da Sie nach dem Programmieren eine vollständige Löschung durchführen müssen, um es zu aktualisieren.

ROM = Nur-Lese-Speicher.

Ein ROM führt keine Logikfunktionen aus, sondern speichert Daten. Ein ROM-Typ kann ein EPROM sein, ein löschbarer programmierbarer Nur-Lese-Speicher.

Sie können ein ROM als Logikgerät verwenden, indem Sie eine einfache Suche nach Logiktabellen implementieren. Wie eine Wahrheitstabelle. Dies ist jedoch etwas verschwenderisch und teuer im Vergleich zur tatsächlichen Verwendung eines PAL oder sogar eines CPLD / FPGA.

Thomas O.
quelle
2
ROM führt tatsächlich Logikfunktionen aus, es ist eine komplizierte Nachschlagetabelle. Früher war es häufiger, aber wenn Sie ein großes ROM benötigen und sicher sein könnten, was es für eine lange Zeit benötigen würde, würden Sie es mit fabrizierter Logik implementieren. Dies bedeutet, dass es für jede Adresse die Logik hat, die Ausgabe mit und / oder / oder Gattern zu erzeugen. Diese Art von Funktion ist auch sehr schnell.
Kortuk
Das habe ich meiner Antwort hinzugefügt.
Thomas O
@ Thomas O: Kann ich sagen, dass ROM eine feste PLA ist?
1
Nun, etwas, aber ein ROM kann normalerweise neu programmiert werden. Sie müssen es nur elektronisch (EEPROM) oder mit UV-Licht (EPROM) löschen. Ein PAL ist kein ROM, aber ein ROM kann als PAL fungieren.
Thomas O
@Thomas O: sowieso ein bisschen schwierig zu verstehen, Implementierung von: EEPROM, EPROM, haben Sie einige Links mit Grundlagen über ROM und es Typen, PLA und es Typen usw.?
16

Ein Nur-Lese-Speicher (ROM) ist eine Logikschaltung, die alle möglichen Intervalle ihrer Eingänge erzeugen kann .

Acht-Wort-Ein-Bit-Nur-Lese-Speicher

Das sind also die Eigenschaften des ROM:

Eingangsprodukte sind fest verdrahtet und enthalten alle möglichen Zwischenzeiten. Die Ausgangssummierungsschaltung ist programmierbar.


Bei einem feldprogrammierbaren Logikarray (FPLA) werden nur die erforderlichen Intervalle generiert. Außerdem wird jedes nur einmal generiert, obwohl es in den Ausgabeausdrücken möglicherweise mehrmals vorkommt.

FPLA-Implementierung logischer Funktionen

Das sind also die Merkmale der FPLA:

Die Schaltung des Eingangsprodukts ist programmierbar. Die Ausgangssummierungsschaltung ist programmierbar.


Eine programmierbare Array-Logik (PAL) hat eine ähnliche Eingangsschaltung wie die FPLA. Die Ausgangsschaltung enthält jedoch eine festverdrahtete ODER-Logik und ist nicht programmierbar.

PAL-Implementierung von Logikfunktionen

Das sind also die Eigenschaften des PAL:

Die Schaltung des Eingangsprodukts ist programmierbar. Die Ausgangssummierungsschaltung ist fest verdrahtet.

Daniel Grillo
quelle
3

Angenommen, Sie haben ein PLA-Gerät und ein ROM mit 12 Eingängen und 8 Ausgängen.

Der ROM hat 8 Bitzellen für jede der 2 ^ 12 = 4096 Adressen. Dieses ROM hätte daher 32768 einzelne Bitzellen. Die Logik auf dem Chip würde (zumindest in größeren Teilen) einen Demultiplexer für die Eingangsbits hoher Ordnung enthalten, der eine Bank von beispielsweise 1024 Zellen auswählen würde, und einen Multiplexer für die Eingänge niedriger Ordnung, um die 8 tatsächlichen Ausgänge auszuwählen Bits von der Bank. Dies würde in der Größenordnung von vier Gate-Verzögerungen für das Muxen plus der Technologie für die erforderlichen Bitzellen ergeben. Alte UV-EPROMs benötigen möglicherweise 120 ns, um ein Ergebnis zu erzielen, aber es gab (gibt es noch?) Einmal programmierbare ROMs, die dieselbe Aufgabe in wenigen zehn Nanosekunden erledigen konnten.

Ein PLA hingegen verfügt über ein Array programmierbarer "Sicherungen", die normalerweise viel kleiner sind als die 32768-Bit-Zellen im entsprechenden ROM. Intern stellt eine PLA eine Bank von UND-Gattern bereit, gefolgt von einer Bank von ODER-Gattern und optional einem Flip-Flop pro Ausgang. Ein PLA dieser Größe kann 16 UND-Gatter mit jeweils 8 bis 16 Eingängen haben. Im gelöschten Zustand sind die "Sicherungen" Kurzschlüsse, so dass jeder Eingang jedes UND mit (normalerweise) jedem der Chip-Ein- oder Ausgänge oder deren Inversionen verbunden werden kann. Wenn Sie die PLA programmieren, bläst der Programmierer die Sicherungen durch, um nur die gewünschten Verbindungen zu belassen. Dann kann das ODER-Array auf ähnliche Weise so programmiert werden, dass verschiedene Kombinationen der UND-Ausgänge zusammen ODER-verknüpft werden. Die Sicherungstechnologie verursacht eine minimale Verzögerung, so dass die Ausbreitungsverzögerung von Eingangsstift zu Ausgangsstift so klein wie zwei Gate-Verzögerungen oder bis zu vier sein kann.

Mit der gleichen Anzahl von Ein- und Ausgängen kann ein ROM allgemeinere Logik verwenden, indem Sie jede beliebige Wahrheitstabelle in das ROM brennen können. Als Logikgerät ist das ROM jedoch nicht optimal. Wenn Sie versuchen, mehrere unabhängige kleine Funktionen in ein ROM zu brennen, werden Sie feststellen, dass es viele "egal" -Fälle gibt, die dennoch in das ROM programmiert werden müssen, um die gewünschte Ausgabe zu erhalten. Die PLA ist besser für die Logik, da Sie sich nicht mit den Nicht-Sorgen befassen müssen, aber der Nachteil ist, dass Sie keine völlig beliebigen Funktionen der Bits programmieren können. Sie sind jedoch ausreichend flexibel, um für viele gängige "Klebelogik" -Aufgaben nützlich zu sein, und sie erzeugen im Allgemeinen schneller eine Ausgabe.

JustJeff
quelle
2
Eine weitere Unterscheidung zwischen einem PLA und einem ROM: Wenn beispielsweise ein 16x1-ROM mit einer Zugriffszeit von 50 ns an den Adressen 1100 und 1101 eine "1" aufweist, wird innerhalb von 50 ns nach Auftreten eines dieser Muster eine hohe Ausgabe ausgegeben, wenn jedoch die Adresse 1100 ausgewählt ist und das LSB der Adresse geht hoch, dann kann für die nächsten 50 ns der Ausgang in einem beliebigen Muster niedrig und hoch gehen (es muss hoch enden). Im Gegensatz dazu weist eine PLA, die so konfiguriert ist, dass sie ein High ausgibt, wenn die ersten drei Eingänge 110 sind, keine Störungen am Ausgang auf, wenn sich der vierte Eingang ändert.
Supercat
0

Wir können uns eine einfache programmierbare Logikvorrichtung als ein Array von UND-Gattern vorstellen, gefolgt von einem Array von ODER-Gattern (in Wirklichkeit kann es tatsächlich als zwei Arrays von NAND-Gattern implementiert werden).

In einem PROM ist das "AND-Array" fest und das "OR-Array" programmierbar. Jede Kombination von Eingaben erzeugt genau eine Ausgabe aus dem AND-Array. Das "ODER-Array" wird dann programmiert, um die Logikfunktion zu definieren. Dadurch kann jeder Ausgang eine beliebige Logikfunktion der Eingänge implementieren.

Die Möglichkeit, beliebige Logikfunktionen zu implementieren, klingt attraktiv, aber es gibt zwei praktische Probleme bei der Verwendung von PROMs für die Logik. Erstens lässt es sich nicht gut skalieren. Jeder zusätzliche Eingang, den Sie hinzufügen, verdoppelt die erforderliche Größe des Arrays und. Zweitens ist es sehr anfällig für Ausgabestörungen, da die verwendeten Produktbegriffe jeweils genau eine Eingabekombination abdecken.

In einem PAL ist das "OR-Array" fest und das "AND-Array" programmierbar. Jede Ausgabe muss aus einer begrenzten Anzahl von Produktbegriffen gebildet werden, aber diese Produktbegriffe können jeweils mehrere Eingabekombinationen abdecken.

In einer PLA sind beide Arrays programmierbar. Dies gibt Ihnen mehr Flexibilität, wenn einige Ausgaben mehr Produktbegriffe als andere benötigen oder wenn mehrere Ausgaben Produktbegriffe gemeinsam haben.

Peter Green
quelle