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.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
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.
| Flanke | Alter Zustand | Aktion | Neuer acc |
|---|---|---|---|
| 0 | IDLE | 3,5,7,9 erfassen und acc löschen | 0 |
| 1 | ADD0 | 3 addieren | 3 |
| 2 | ADD1 | 5 addieren | 8 |
| 3 | ADD2 | 7 addieren | 15 |
| 4 | ADD3 | 9 addieren, nach DONE wechseln | 24 |
| 5 | DONE | Empfänger übernimmt Ergebnis | 24 |
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.
- IDLE: Alle vier Werte übernehmen und erfassen
- ADD0..ADD3: Einen Addierer an vier Flanken wiederverwenden
- 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.