Altifigence Academy

6 / 24 · Konzept

Gemeinsam genutzte Ressourcen mit einer FSM zeitlich planen

Akkumulieren Sie vier Werte mit einem Addierer und definieren Sie Zustandsübergänge und Erfassung.

Der Steuerzustand beschreibt den Operationsablauf

Bei einer gemeinsam genutzten Ressource müssen Operationen zeitlich geplant werden. Betrachten Sie die Summierung von x0 bis x3 mit einem Addierer und einem Zehn-Bit-Akkumulator. Erfassen Sie alle vier Operanden bei der Übernahme einer Anfrage. Spätere externe Änderungen dürfen eine ausstehende Anfrage nicht verändern. Das Steuerwerk wählt einen Operanden, gibt die Akkumulation frei und entscheidet, wann das Ergebnis gültig wird.

Verwenden Sie die Zustände IDLE, ADD0, ADD1, ADD2, ADD3 und DONE. Die Übernahmeflanke in IDLE erfasst die Eingaben und löscht acc. Die nächsten vier Flanken addieren jeweils einen gespeicherten Operanden. Unmittelbar nach der ADD3-Flanke ist die endgültige Summe gespeichert und der Zustand wird DONE. DONE hält das Ergebnis, bis der Empfänger es übernimmt. Diese einfache Variante kehrt an jener Flanke nach IDLE zurück und übernimmt nicht gleichzeitig eine neue Anfrage.

FlankeAlter ZustandAktionNeuer acc
0IDLE3,5,7,9 erfassen und acc löschen0
1ADD03 addieren3
2ADD15 addieren8
3ADD27 addieren15
4ADD39 addieren, nach DONE wechseln24
5DONEEmpfänger übernimmt Ergebnis24

Unterscheiden Sie die Verfügbarkeit nach Flanke 4 von der Übertragung an Flanke 5. Wartezyklen des Empfängers können DONE unbegrenzt verlängern. Die Wiederverwendung einer Ressource verringert die arithmetische Hardware, begrenzt aber den Durchsatz gegenüber einer Pipeline, die in jedem Takt Eingaben übernimmt. Gleichzeitiger Abschluss und Übernahme einer neuen Anfrage erfordern einen ausdrücklich definierten Vorrang zwischen der Ausgabe des alten Ergebnisses und der Initialisierung der neuen Anfrage.

Akkumulator für vier Werte
  1. IDLE: Alle vier Werte übernehmen und erfassen
  2. ADD0..ADD3: Einen Addierer an vier Flanken wiederverwenden
  3. DONE: Ergebnis bis zur Übernahme halten

Leiten Sie die Steuersignale aus dem Zustand ab: Akkumulatorfreigabe in ADD-Zuständen, zum Zustand passende Operandenauswahl und Ergebnisgültigkeit in DONE. Geben Sie kombinatorischen Steuerausgängen Standardwerte. Definieren Sie die Übernahme so, dass eine dauerhaft gesetzte Anfrage nicht unbeabsichtigt wiederholt wird. Reset kehrt nach IDLE zurück und verwirft ausstehende Arbeit. Eine zählerbasierte Implementierung kann die Zustandskodierung verkleinern, benötigt aber denselben Ablauf von Flanke zu Flanke.

Selbst ausprobieren

Welche Werte hat acc nach ADD0 bis ADD3 bei vier Eingaben von 255? Was muss geschehen, wenn output ready an Flanke 5 Null ist?

Erklärung lesen

Die Werte sind 255, 510, 765 und 1020 und passen alle in zehn Bits. Bei ready=0 erfolgt keine Ausgabe; halten Sie DONE, acc=1020 und valid=1.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.