RTL-Entwurf: systolische Arrays
Entwickeln Sie ein parametrisierbares Array zur Matrixmultiplikation aus vorzeichenbehafteter MAC-Arithmetik, Eingabeversatz und Verarbeitungselementen und verifizieren Sie anschließend Kachelung, Flusssteuerung und das exakte Verhalten von Flanke zu Flanke.
Das wirst du lernen
- Matrixindizes und Skalarprodukte auf Verarbeitungselemente abbilden
- Breiten für vorzeichenbehaftetes Produkt, Akkumulator und Festkommaausgabe wählen
- Ausgabestationäre 2×2- und N×N-Arrays mit versetzten Eingaben zeitlich planen
- Valid, Tags, Wartezyklen und Reset mit exakten Flankenregeln spezifizieren
- Kachelgrenzen, Bandbreite und Abschlussprojekt mit einem Scoreboard verifizieren
Bevor du beginnst
Diese Browserübungen verwenden Lehrmodelle und kompilieren oder starten kein HDL. Um den Quellcode separat auszuführen, folge der Digital Design Studio-Anleitung für dein Betriebssystem und melde dich an, wenn der Vorgang es erfordert.
Installation und erster Start ↗ · Downloads ↗Lehrplan
- Matrizen und arithmetische Verhaltensregeln
- Skalarprodukte auf Verarbeitungselemente abbildenKonzept
Trennen Sie Zeilen-, Spalten- und Reduktionsindizes und berechnen Sie eine kleine Referenzmatrix.
- Vorzeichenbehaftete Produkte und AkkumulatorbreiteKonzept
Leiten Sie eine Akkumulatorbreite aus dem ungünstigsten Operandenbereich ab.
- Ausgaberegeln für FestkommawerteKonzept
Trennen Sie Eingabeskalierung, Rundung negativer Werte, Sättigung und Umlauf.
- Die arithmetischen Verhaltensregeln prüfenWissensprüfung
Wählen Sie die Akkumulatorbreite anhand der vollständigen Reduktionslänge.
- Verarbeitungselemente und gültige Tokens
- Die Verhaltensregeln an einer steigenden FlankeKonzept
Legen Sie Flankennummerierung, registrierte Weitergabe, Akkumulation und Initialisierungsvorrang fest.
- Praktikum: ein vorzeichenbehaftetes MAC-VerarbeitungselementÜbung
Prüfen Sie gültige Operanden, Wartezyklen und Löschen mit einem eigenständigen Modell.
- Gültigkeitsflags, Tags und LeerenKonzept
Unterscheiden Sie numerische Null, Leerstellen und Tokens eines anderen Auftrags.
- Steuerung des Verarbeitungselements prüfenWissensprüfung
Erkennen Sie den Zustand, der während einer Pause gehalten werden muss.
- Arrays und Eingabeabläufe
- Ausgabestationäre und andere DatenflüsseKonzept
Vergleichen Sie Speicherung und Transport, indem Sie bestimmen, was im PE verbleibt.
- Praktikum: ein 2×2-Array mit EingabeversatzÜbung
Modellieren Sie Weitergabeverzögerungen um eine Flanke und prüfen Sie jeden Akkumulatorzwischenwert.
- Auf N×N skalieren und Abschlussflanken zählenKonzept
Parametrisieren Sie die räumliche Größe N getrennt von der Reduktionslänge K.
- Ablauf und Abschluss prüfenWissensprüfung
Unterscheiden Sie letzte Einspeisung und Verfügbarkeit des letzten Ergebnisses.
- Kachelung, Bandbreite und Flusssteuerung
- Kachelung und Auffüllen an GrenzenKonzept
Bilden Sie größere Matrizen auf ein kleineres Gitter ab und behandeln Sie Nullauffüllung und Ausgabemasken.
- Bandbreite und nutzbare AuslastungKonzept
Trennen Sie maximale MAC-Kapazität von Füllen, Auslaufen, Auffüllung und Speicheraufwand.
- Praktikum: Rückstau und ResetÜbung
Führen Sie globale Pause, Ergebniserhaltung und Reset eines unterbrochenen Auftrags aus.
- Auffüllung und Bandbreite prüfenWissensprüfung
Unterscheiden Sie Operandengültigkeit und Gültigkeit der Ergebnisadresse.
- Verifikation und Abschlussprojekt
- Scoreboards und InvariantenKonzept
Prüfen Sie neben der endgültigen Matrix auch Terme, Tags, Flanken und Ausgabeübertragungen.
- Vorzeichen- und Grenztests entwerfenKonzept
Kombinieren Sie arithmetische, Form- und Steuerungsgrenzen über ein einfaches Erfolgsbeispiel hinaus.
- Abschlussprojekt: ein Verifikationsmodell für gekachelte N×N-ArraysÜbung
Kombinieren Sie beliebiges N und K mit Auffüllung und Pausen und vergleichen Sie mit einer unabhängigen Referenz.
- RTL-Integrationsprüfung und ErweiterungenKonzept
Verbinden Sie das Lernmodell mit RTL-Schnittstellen und Verifikationsnachweisen.