Ich finde es schwer zu verstehen. Was ist der Unterschied zwischen PLA und ROM? Kann jemand bitte einen Link oder eine Erklärung geben?
Das sind ganz unterschiedliche Geräte.
PLA = Programmierbares Logikarray.
Ein PLA- oder PAL-Baustein (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 verbunden werden, um einfache Logikfunktionen auszuführen. Ein PAL ist oft nur lesbar, insofern muss nach dem Programmieren ein komplettes Löschen durchgeführt werden, um es zu aktualisieren.
ROM = Nur-Lese-Speicher.
Ein ROM führt keine logischen Funktionen aus, sondern speichert Daten. Ein ROM-Typ könnte ein EPROM sein, ein löschbarer programmierbarer Nur-Lese-Speicher.
Sie können ein ROM als Logikgerät verwenden, indem Sie eine einfache Logiktabellensuche implementieren. Wie eine Wahrheitstafel. Dies ist jedoch im Vergleich zur tatsächlichen Verwendung eines PAL oder sogar eines CPLD/FPGA etwas verschwenderisch und teuer.
Ein Nur-Lese-Speicher (ROM) ist eine Logikschaltung, die alle möglichen Minterms ihrer Eingänge erzeugen kann.
Das sind also die Merkmale des ROM:
Eingabeprodukte sind fest verdrahtet und beinhalten alle möglichen Minterms. Die Ausgangssummierungsschaltung ist programmierbar.
Ein feldprogrammierbares Logikarray (FPLA) erzeugt nur die Minterms, die benötigt werden. Außerdem wird jede nur einmal generiert, auch wenn sie in den Ausgabeausdrücken mehrmals vorkommen kann.
Das sind also die Merkmale des FPLA:
Die Eingangsproduktschaltung 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.
Das sind also die Eigenschaften des PAL:
Die Eingangsproduktschaltung ist programmierbar. Die Ausgangssummierungsschaltung ist fest verdrahtet.
Nehmen wir zum Beispiel an, Sie haben ein PLA-Gerät und ein ROM, beide mit 12 Eingängen und 8 Ausgängen.
Das ROM hat 8-Bit-Zellen 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 höherwertigen Eingangsbits enthalten, der eine Bank von beispielsweise 1024 Zellen auswählen würde, und einen Multiplexer für die niederwertigen Eingänge, um die 8 tatsächlichen Ausgänge auszuwählen Stückchen von der Bank. Dies würde in der Größenordnung von vier Gate-Verzögerungen für das Multiplexen ergeben, plus was auch immer die Technologie für die erforderlichen Bitzellen ist. Alte UV-EPROMs brauchten vielleicht 120 ns, um ein Ergebnis auszuhusten, aber es gab (gibt es noch?) einmalig programmierbare ROMs, die die gleiche Aufgabe in einigen 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 ein 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, sodass jeder Eingang jedes UND mit (normalerweise) jedem der Chip-Eingänge oder -Ausgänge oder deren Inversionen verbindbar ist. Wenn Sie das PLA programmieren, brennt der Programmierer die Sicherungen durch, um nur die gewünschten Verbindungen zu hinterlassen. Dann kann das ODER-Array in ähnlicher Weise programmiert werden, um verschiedene Kombinationen der UND-Ausgänge ODER zu verknüpfen. Die Sicherungstechnologie verursacht eine minimale Verzögerung, sodass die Ausbreitungsverzögerung vom Eingangspin zum Ausgangspin nur zwei Gate-Verzögerungen oder bis zu vier betragen kann.
Mit der gleichen Anzahl von Ein- und Ausgängen ist ein ROM zu einer allgemeineren Logik in der Lage, indem Sie jede beliebige Wahrheitstabelle in das ROM brennen können. Als Logikbaustein ist das ROM jedoch nicht optimal. Wenn Sie versuchen, mehrere unabhängige kleine Funktionen in ein ROM zu brennen, werden Sie feststellen, dass Sie viele 'egal'-Fälle haben, die dennoch in das ROM programmiert werden müssen, um die gewünschte Ausgabe zu erhalten. Die PLA ist besser für die Logik, weil Sie sich nicht mit den Don-t-Cares auseinandersetzen müssen, aber der Kompromiss besteht darin, dass Sie keine völlig willkürlichen Funktionen der Bits programmieren können. Sie sind jedoch dennoch ausreichend flexibel, um für viele gängige 'Glue-Logic'-Aufgaben nützlich zu sein, und sie produzieren im Allgemeinen schneller Ergebnisse.
Wir können uns ein einfaches programmierbares Logikgerät 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“ festgelegt und das „ODER-Array“ programmierbar. Jede Kombination von Eingängen erzeugt genau einen Ausgang des AND-Arrays. Das "OR-Array" wird dann programmiert, um die Logikfunktion zu definieren. Dadurch kann jeder Ausgang eine beliebige Logikfunktion der Eingänge realisieren.
In der Lage zu sein, beliebige Logikfunktionen zu implementieren, klingt attraktiv, aber es gibt zwei praktische Probleme bei der Verwendung von PROMs für Logik. Erstens skaliert es nicht gut, jede zusätzliche Eingabe, die Sie hinzufügen, verdoppelt die erforderliche Größe des Arrays and . Zweitens ist es sehr anfällig für Ausgabestörungen, da die verwendeten Produktbegriffe jeweils genau eine Eingabekombination abdecken.
In einem PAL ist das "ODER-Array" festgelegt und das "UND-Array" programmierbar. Jede Ausgabe muss aus einer begrenzten Anzahl von Produktbegriffen gebildet werden, aber diese Produktbegriffe können jeweils mehrere Eingabekombinationen abdecken.
In einem PLA sind beide Arrays programmierbar. Dies gibt Ihnen mehr Flexibilität, wenn einige Ausgaben mehr Produktbegriffe benötigen als andere oder wenn mehrere Ausgaben Produktbegriffe gemeinsam haben.
Brian Carlton
Superkatze
Cuadue