42 / 63 · Konzept
Schiebeverifikation und Ausrichtung von Daten und valid
Durch symmetrische Muster verborgene Fehler und Versatz von valid um einen Zyklus finden.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Bitfolgen wählen, die Fehler sichtbar machen
Nur 0000 oder 1111 zu schieben verdeckt eine Richtungsumkehr. Verwenden Sie asymmetrische Muster wie 1000 oder ein einzelnes gesetztes Bit. Ausschließlich Nullinitialisierung kann ebenfalls Initialisierungs- und Haltefehler verdecken.
Ein 3-Bit-RegisterRegister Speichert einen Zustand aus mehreren Bits. Die synchronen Register dieses Kurses übernehmen festgelegte Eingaben an Taktflanken. Mehr erfahren ab 000 mit Eingaben 1,0,0 liefert 001→010→100. Die Gegenrichtung liefert 100→010→001 und unterscheidet sich schon an der ersten Flanke.
Das Referenzmodell in zwei Darstellungen prüfen
Vergleichen Sie die numerische Referenz mit dem Slice-/Konkatenations-RTLSlice Auswahl eines zusammenhängenden Bitbereichs aus einem Vektor. Der Bereich bestimmt Breite und Reihenfolge des Ergebnisses. Mehr erfahren an jeder gültigen Flanke. Für N=3 ergeben acht Zustände und zwei Eingaben nur 16 Übergänge, die vollständig prüfbar sind. Ergänzen Sie reset/enable-Kombinationen gesondert.
Jede Spalte dokumentiert eine steigende FlankeSteigende Flanke Übergang des Takts von 0 auf 1. Nicht zu verwechseln mit dem gesamten hohen Pegelintervall CLK=1. Mehr erfahren. Eingänge gelten unmittelbar davor, Zustände mit „after“ unmittelbar nach der Aktualisierung. Die Spalten zeigen die Reihenfolge der Abtastungen, keine physische LaufzeitLaufzeit Zeit nach einer Eingangsänderung, bis der Ausgang auf dem richtigen Wert stabil ist. Logische Äquivalenz und zeitliche Eigenschaften sind getrennte Aussagen. Mehr erfahren. Anfangs q=000. Die zweite Flanke hat enable=0; trotz verändertem din hält q=001. Zählen Sie Flanken und Annahmen getrennt.
Wellenformdaten anzeigen
| Signal | Wellenform | Buswerte |
|---|---|---|
| edge | 2345 | E0 → E1 → E2 → E3 |
| enable | 101. | |
| din | 10.1 | |
| q after | 2.34 | 001 → 010 → 101 |
Reproduzieren Sie das Diagramm: eine Flanke mit din=1 ergibt 001; eine weitere mit enable=0, din=0 hält 001. Wieder aktiviertes enable mit din=0,1 ergibt 010,101. Dieses Modell behandelt nur das Datenregister; dass valid unter derselben Freigabe halten muss, wird im nächsten Abschnitt gesondert geprüft.
Der synchrone reset hat Vorrang vor enable. Bei enable=0 bleibt der gespeicherte Wert erhalten. q=000; q_next = (2q + din) mod 8
Valid gehört zum Datenpfad
Stoppen nur Daten, während valid weiterläuft, oder umgekehrt, konsumiert der Empfänger falsche Samples. Korrekte Ausgangsbits allein beweisen keine korrekte Schnittstelle.
| Test | Erwartetes Verhalten |
|---|---|
| Kontinuierliche normale Eingabe | Richtige Bitfolge und feste gültige Latenz |
| enable=0 zwischendurch | Daten und valid halten gemeinsam |
| Reset zwischendurch | Gültigkeit des alten Rahmens löschen |
| Direkt folgende Rahmen | Ende des alten vom Beginn des neuen unterscheiden |
Protokollieren Sie Annahmenummern, um sie nicht mit Taktnummern zu verwechseln. Ein minimales Gegenbeispiel mit Rahmengrenze hilft mehr als wiederholtes Lesen langer Zeitdiagramme.
Selbst ausprobieren
Daten schieben nur bei enable=1, die valid-Leitung aber jeden Takt. Welche Eingabe zeigt den Fehler besonders einfach?
Erklärung lesen
Fügen Sie zwischen zwei verschiedenen Datenwerten eine Stoppflanke mit enable=0 ein. valid erscheint zu früh oder gehört zum falschen Wert. Vergleichen Sie mit einem Modell, das dieselbe Annahmebedingung auf Daten und Metadaten anwendet.