Altifigence Academy

20 / 20 · Konzept

RTL-Integrationsprüfung und Erweiterungen

Verbinden Sie das Lernmodell mit RTL-Schnittstellen und Verifikationsnachweisen.

Aufgaben von Kern und Hülle aufteilen

Der Arraykern übernimmt registrierte Operandenweitergabe, vorzeichenbehaftete MACs, valid/Tags und globales advance. Die Hülle übernimmt Start/Löschen, Matrixdimensionen, Kachelkoordinaten, versetzte Randzufuhr, maskierte Ergebnissammlung und Ausgabehandshakes. Definieren Sie jede Aufgabe mit Signalnamen und Flankenregeln.

Eine einfache Hülle verwendet IDLE, CLEAR, RUN, COLLECT und SEND. CLEAR garantiert eine Initialisierungsflanke vor den Daten. RUN durchläuft die logischen Schritte Null bis K+2N−3. Ergebnisse sind unmittelbar nach der letzten RUN-Flanke vollständig; COLLECT kopiert sie an der folgenden Flanke. So wird vermieden, den alten Akkumulator an derselben Flanke wie seine letzte nichtblockierende Aktualisierung zu kopieren.

Ein Beispiel zur Integrationslatenz durchrechnen

Für N=K=2 erfolgt Löschen an E−1 und Berechnung an E0..E3. Nehmen Sie an, E4 kopiert vier Ergebnisse parallel in einen Ergebnispuffer. Eine Ausgabe mit einem Ergebnis pro Flanke und stets wahrem ready sendet neunzehn, zweiundzwanzig, dreiundvierzig und fünfzig an E5..E8 in Zeilenreihenfolge. Die Messung vom Löschen bis zur letzten Übertragung enthält zehn steigende Flanken E−1..E8 gegenüber vier Rechenflanken. Blockierte Ausgabe verlängert SEND ohne Veränderung fertiger Werte.

Ergebnisnutzdaten benötigen job und globale Koordinaten sowie eine definierte rohe oder quantisierte Darstellung. Löschen Sie keinen Akkumulator, bevor sein Ergebnis sicher kopiert oder verbraucht wurde. Überlappung der nächsten Berechnung mit SEND erfordert Pufferzuständigkeit und Auftragstrennung.

Bei Erweiterungen die Verhaltensregeln neu prüfen

Ein Multiplizierer mit Pipeline verändert Akkumulations-, Tag- und Abschlusstiming. Reduktionskachelung benötigt erhaltene Teilsummen und eine neue Breitenanalyse. Überlappende Aufträge benötigen getrennten Akkumulationszustand. Ein FIFO speichert Wert, valid und Tags als eine Nutzdateneinheit und erfordert Überlauf-/Unterlaufprüfungen.

Die Gemmini-Architekturdokumentation bietet ein Primärquellenbeispiel, bei dem lokaler Speicher und Datenbewegung das Array begleiten. Unsere Zustandsmaschine und das Zeitbeispiel sind unabhängig definierte Lernregeln.

Reichen Sie Dimensionen, Breiten, einen Randablauf, Abschlussdefinition, Pausen-/Reset-Regeln, Ausgabereihenfolge und Scoreboard-Protokolle ein. Node-Prüfungen belegen das Verhalten des Referenzmodells. RTL-Simulation, Synthese, Timing-Abschluss und Produktintegration benötigen eigene ausgeführte Befehle und Nachweise, bevor Erfolg behauptet werden kann.

Selbst ausprobieren

Blockieren Sie im Integrationsbeispiel ready für zwei Flanken nach E6. Welche Flanke ist nun die letzte Übertragung und wie groß ist die gemessene Gesamtzahl der Flanken?

Erklärung lesen

Warten Sie an E7 und E8 und senden Sie die zwei verbleibenden Ergebnisse an E9 und E10. Die letzte Übertragung ist E10; die Messung E−1..E10 enthält zwölf Flanken. Die Berechnung bleibt bei vier Flanken E0..E3 und blockierte Daten müssen gehalten werden.

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