Inhaltsverzeichnis:

Dynamischer Speicherblock zum Selbermachen - Gunook
Dynamischer Speicherblock zum Selbermachen - Gunook

Video: Dynamischer Speicherblock zum Selbermachen - Gunook

Video: Dynamischer Speicherblock zum Selbermachen - Gunook
Video: Elementare Datenstrukturen | Algorithmen und Datenstrukturen - Vorlesung 11 2024, Juli
Anonim
DIY dynamischer Speicherblock
DIY dynamischer Speicherblock

Der SLG46880 und SLG46881 führen mehrere neue Blöcke ein, die in früheren GreenPAK-Geräten nicht erschienen sind. Dieser Anwendungshinweis beschreibt die Dynamic Memory (DM)-Blöcke und ihre Verwendung.

Der Hauptvorteil von DM-Blöcken besteht darin, dass sie rekonfiguriert werden können, um verschiedene Funktionen in verschiedenen Zuständen der 12-state Asynchronous State Machine (ASM) des SLG46880/1 auszuführen. Dies macht sie zu einer sehr flexiblen Komponente, da sie sowohl in State 0 als auch in State 1 verwendet werden können.

Im Folgenden haben wir die erforderlichen Schritte beschrieben, um zu verstehen, wie der GreenPAK-Chip programmiert wurde, um den dynamischen Speicherblock zu erstellen. Wenn Sie jedoch nur das Ergebnis der Programmierung erhalten möchten, laden Sie die GreenPAK-Software herunter, um die bereits fertige GreenPAK-Designdatei anzuzeigen. Schließen Sie das GreenPAK Development Kit an Ihren Computer an und klicken Sie auf Programm, um den benutzerdefinierten IC für den dynamischen Speicher zu erstellen.

Schritt 1: DM-Block-Grundlagen

DM-Block-Grundlagen
DM-Block-Grundlagen
DM-Block-Grundlagen
DM-Block-Grundlagen

Es gibt 4 DM-Blöcke im Dialog GreenPAK SLG46880/1. Ein unkonfigurierter DM-Block ist in Abbildung 1 dargestellt.

Alle DM-Bausteine im SLG46880/1 haben folgende Ressourcen:

● 2 Nachschlagetabellen: eine 3-Bit-LUT und eine 2-Bit-LUT

● 2 Multiplexer

● 1 CNT/DLY

● 1 Ausgangsblock

Abbildung 2 zeigt den gleichen DM-Block mit eingefärbten Anschlüssen. (Diese Farben erscheinen nicht im GreenPAK™ Designer, sie dienen lediglich der Veranschaulichung.) Die grünen Anschlüsse sind Eingänge zum DM-Block von der Matrix. Die orangefarbenen Verbindungen sind dedizierte Verbindungen innerhalb des DM-Blocks, die nicht geändert oder verschoben werden können. Die blauen Anschlüsse sind Taktanschlüsse für den Zählerblock. Der violette Anschluss kann zum Auslösen eines Zustandsübergangs verwendet werden, ist jedoch keine allgemeine Matrixverbindung. Die gelben Anschlüsse sind Matrixausgänge des DM-Blocks.

Schritt 2: Erstellen neuer DM-Blockkonfigurationen

Erstellen neuer DM-Blockkonfigurationen
Erstellen neuer DM-Blockkonfigurationen
Erstellen neuer DM-Blockkonfigurationen
Erstellen neuer DM-Blockkonfigurationen

Um eine neue DM-Blockkonfiguration zu erstellen, müssen Sie einen DM-Block auswählen und sein Eigenschaftenfenster öffnen, wie in Abbildung 3 gezeigt. Jetzt können Sie eine neue Konfiguration für diesen DM-Block erstellen, indem Sie oben rechts auf das „+“-Symbol klicken. An dieser Stelle können Sie die Konfiguration bei Bedarf umbenennen und den DM-Block über das Eigenschaftenfenster beliebig konfigurieren. Sie können eine nicht benötigte Konfiguration löschen, indem Sie sie aus dem Dropdown-Menü auswählen und auf die Schaltfläche „-“klicken.

Jeder DM-Block kann bis zu 6 verschiedene Konfigurationen haben. Jede DM-Blockkonfiguration kann in jedem der 12 Zustände des ASM verwendet werden, es ist jedoch nur eine Konfiguration pro DM-Block pro Zustand zulässig. Abbildung 4 zeigt, wie die Ressourcenmanagerleiste anzeigt, dass eine der DM0_0-Konfigurationen verwendet wurde. Die Anzahl der Konfigurationen für DM0_0 wurde von 0/6 auf 1/6 erhöht.

Schritt 3: Verwenden Sie einen DM-Block, um einen Zustandsübergang auszulösen

Verwenden Sie einen DM-Block, um einen Zustandsübergang auszulösen
Verwenden Sie einen DM-Block, um einen Zustandsübergang auszulösen

Abbildung 5 zeigt verschiedene Möglichkeiten zum Auslösen eines Zustandsübergangs. Wir haben neue Konfigurationen für DM0_0 und DM1_0 erstellt und sie „myConfig“und „myConfig1“genannt. Der oberste DM wird einfach als 3-Bit-UND-Gatter verwendet, da der oberste Mux den Ausgang des UND-Gatters durchlässt und der 2-Bit-Puffer ihn an den Ausgangsblock weiterleitet. (Die 2-Bit-LUT hätte auch als Puffer für den CNT/DLY-Block konfiguriert werden können.) Der „to ASM Connector“wird verwendet, um einen Zustandsübergang von State 0 in State 1 auszulösen. Ebenso wird eine Matrixverbindung von Pin5 verwendet um einen Zustandsübergang von State 0 nach State 2 auszulösen. Schließlich wird DM1_0 so konfiguriert, dass beide Muxe das Signal von Pin6 passieren. Der Zähler ist als Flankenverzögerung von 100 µs konfiguriert, und die 2-Bit-LUT ist ein UND-Gatter. Genau wie in DM0_0 wird der Ausgangsblock verwendet, um einen weiteren Zustandsübergang auszulösen.

Schritt 4: Verwenden eines DM-Blocks zur Interaktion mit Blöcken außerhalb des ASM

Verwenden eines DM-Blocks zur Interaktion mit Blöcken außerhalb des ASM
Verwenden eines DM-Blocks zur Interaktion mit Blöcken außerhalb des ASM
Verwenden eines DM-Blocks zur Interaktion mit Blöcken außerhalb des ASM
Verwenden eines DM-Blocks zur Interaktion mit Blöcken außerhalb des ASM

Wie Sie vielleicht im vorherigen Abschnitt bemerkt haben, hat der Ausgangsblock von DM0_0 3 „to Matrix“-Ausgänge, während der Ausgangsblock von DM1_0 keine Matrixausgänge hat. Dies gilt auch für DM0_1 und DM1_1; DM0_1 hat 3 Matrixausgänge, während DM1_1 keine hat. Die 3 „to Matrix“-Ausgänge können mit beliebigen anderen Matrix-Anschlüssen wie Pins, LUTs, DFFs usw. verbunden werden. Dies ist in Abbildung 6 dargestellt.

Beachten Sie, dass eine einmal hergestellte Verbindung zwischen einem „to Matrix“-Pin und anderen Blöcken außerhalb des State-Machine-Bereichs in jedem Zustand existiert, unabhängig davon, welche DM-Konfiguration verwendet wird. In Abbildung 6 zeigt der obere Abschnitt myConfig0 von DM0_0, der im Zustand 0 vorhanden ist. Der untere Abschnitt zeigt myConfig1 von DM0_0, der im Zustand 1 vorhanden ist. Der obere „to Matrix“-Anschluss in beiden Konfigurationen ist mit Pin3 verbunden, während der mittlere einer ist mit 2-Bit-LUT0 verbunden. Es kann immer nur eine dieser „zu Matrix“-Verbindungen „aktiv“sein. Es gibt 4 Optionen im Eigenschaftenbedienfeldmenü für den Ausgangsblock von DM0_0 und DM0_1: ● Out0/1/2 halten ● Bypass an out0, out1/2 halten ● Bypass an out1, out0/2 halten ● Bypass an out2, out1/1 halten Mit diesen Einstellungen wird festgelegt, welcher der drei Ausgänge in jeder Konfiguration aktiv ist. Wenn die erste Option ausgewählt ist, wird die Ausgabe der 2-Bit-LUT des DM-Blocks an keinen der drei „to Matrix“-Ausgänge weitergegeben. Der Wert dieser drei Signale bleibt in diesem Zustand unverändert. Wenn jedoch eine der anderen drei Optionen verwendet wird, wird die Ausgabe der 2-Bit-LUT des DM-Blocks an out0, out1 bzw. out2 übergeben, und der Wert der anderen beiden Ausgänge bleibt unverändert.

Schritt 5: Designbeispiel

Designbeispiel
Designbeispiel

Im obigen Designbeispiel werden IN0, IN1 und IN2 miteinander ODER-verknüpft. In der Zwischenzeit wird IN3 um 1 ms verzögert und dann mit dem Ausgang des ODER-Gatters UND-verknüpft. Der to Matrix-Block ist so konfiguriert, dass die Ausgabe des DM-Blocks in STATE0 an OUT0 gesendet wird, während die Werte an OUT1 und OUT2 beibehalten werden.

Abschluss

Dynamische Speicherblöcke im Dialog GreenPAK SLG46880/1 sind durch ihre Rekonfigurierbarkeit äußerst flexibel und vielseitig einsetzbar. Sobald Sie sich mit DM-Blöcken vertraut gemacht haben, können Sie komplexere Designs erstellen, indem Sie verschiedene DM-Blockkonfigurationen in verschiedenen ASM-Zuständen zusammensetzen.

Empfohlen: