21 / 24 · Konzept
Ein Scoreboard mit lokalen Invarianten kombinieren
Prüfen Sie Werte, Reihenfolge, Belegung und Wartestabilität anhand übernommener Transaktionen.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Verifikation an der Eingabeübernahme verankern
Ein Scoreboard berechnet für jede übernommene Eingabe ein erwartetes Ergebnis und reiht es ein. Vergleichen Sie bei der Ausgabe das älteste erwartete Element. Die direkte Berechnung aus den Verhaltensregeln statt der Nachbildung jedes Pipelineregisters verringert gemeinsame Fehler. Fügen Sie Einträge nur bei einem Eingabehandshake hinzu; eine anliegende, aber abgelehnte Eingabe ist keine ausstehende Arbeit.
Für übernommene ADD-Eingaben tag10:(250,10) und tag11:(3,5) erwarten Sie [(10,4,carry1),(11,8,carry0)]. Eine gültige, aber wartende Ausgabe entfernt keinen Eintrag. Die Ausgabe von tag10 entfernt nur diesen Eintrag. Ein wiederholtes tag10 oder Wert 8 mit Tag 12 ist falsch, selbst wenn einige Zahlen passen. Berücksichtigen Sie alle relevanten Flags und Begleitfelder.
| Prüfung | Fehlerbeispiele |
|---|---|
| Ausgabe gegen Referenzwarteschlange | Arithmetik, Reihenfolge, falsche Tags |
| Accepted-delivered=Belegung | Verlust, Verdopplung, falsche Ausgabe |
| Stabile wartende Nutzdaten | Überschreiben vor Übernahme |
| Belegung innerhalb der Grenzen | FIFO-Überlauf oder -Unterlauf |
| Leere Referenzwarteschlange nach Auslaufen | Fehlendes letztes Ergebnis |
Lokale Invarianten erkennen die erste fehlerhafte Flanke statt nur einer abschließenden Abweichung. Die interne Belegung ist FIFO-Zähler plus Gültigkeitsbits der Stufen. Ergänzen Sie eine Abbruchbilanz, wenn Reset oder Leeren erlaubt sind, und verwenden Sie dieselben Flankenregeln in beiden Beobachtern.
Kombinieren Sie numerische Grenzen mit zeitlichen Fällen: Null, Maximalwerte, Übertrag und Entlehnung, aufeinanderfolgender Verkehr, Leerstellen, lange Wartezeiten, Ersatz bei voller Belegung und abschließendes Auslaufen. Erfassen Sie Zufallsstartwerte für wiederholbare Fehler. Durchlaufen Sie kleine Steuerungsräume vollständig, wo praktikabel.
Abschlussprüfungen benötigen eine Fortschrittsannahme und eine Zeitgrenze. Sobald der Empfänger dauerhaft bereit ist, sollte ausstehende Arbeit auslaufen. Fordern Sie bei unbegrenzten Wartezeiten stattdessen Erhaltung und begrenzte Belegung. Absichtlich verfälschter Übertrag oder Tag-Verzögerung sollte Prüfungen fehlschlagen lassen; dieser Mutationstest misst ihre Empfindlichkeit. Erfolgreiche Node-Modelle bestätigen keine HDL-Verdrahtung, kein X/Z-Verhalten, keine Taktdomänenübergänge und kein Implementierungs-Timing. Berichten Sie nur den tatsächlich beobachteten Ausführungsumfang.
Selbst ausprobieren
Accepted=9 und delivered=5. Der FIFO-Zähler beträgt zwei und beide Stufen sind gültig. Ist die Bilanz konsistent? Was ist wahrscheinlich geschehen, wenn eine weitere Eingabe ohne Ausgabe übernommen wird und die Belegung bei vier bleibt?
Erklärung lesen
Die Bilanz stimmt: 9-5=2+1+1=4. Nach einer weiteren Übernahme ohne Ausgabe wird die Differenz fünf. Belegung vier deutet auf Annahme ohne Kapazität oder ein überschriebenes Element hin. Prüfen Sie die Bereitschaft an der ersten fehlerhaften Flanke.