Ich finde es schwer zu verstehen. Was ist der Unterschied zwischen PLA und ROM? Kann jemand bitte einen Link oder eine Erklärung geben?
digital-logic
programmable-logic
rom
Mithical
quelle
quelle
Antworten:
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.
quelle
Ein Nur-Lese-Speicher (ROM) ist eine Logikschaltung, die alle möglichen Intervalle ihrer Eingänge erzeugen kann .
Das sind also die Eigenschaften des ROM:
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.
Das sind also die Merkmale der FPLA:
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.
Das sind also die Eigenschaften des PAL:
quelle
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.
quelle
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.
quelle