23 / 37 · Konzept
Abtastzeitpunkte und Kausalität im Zeitdiagramm
Zeitdiagramme unter Trennung von kombinatorischem Einschwingen, Taktabtastung und Ereignisfolge lesen.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Auch innerhalb eines Zeitpunkts gibt es eine Reihenfolge
Änderungen mit demselben Zeitstempel geschehen nicht gleichzeitig ohne Ursache. In ereignisgesteuerter RTL-Simulation stabilisieren sich Werte nach aktiven Ereignissen und nichtblockierendenNonblocking Sequenzielle RTL-Zuweisung mit <=. Nach Auswertung der rechten Seite wird die Aktualisierung geplant, sodass Register derselben Flanke den alten Zustand verwenden. Mehr erfahren Aktualisierungen. Reale Bauelemente ändern sich nach Clock-to-Q und kombinatorischer 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. Unterscheiden Sie beide Modelle.
Die Vorhersagetabelle trennt Eingabe anlegen → kombinatorisch auswerten → an steigender FlankeSteigende Flanke Übergang des Takts von 0 auf 1. Nicht zu verwechseln mit dem gesamten hohen Pegelintervall CLK=1. Mehr erfahren erfassen → Zustand aktualisieren. Prüfen Sie im verwendeten Werkzeug Eingabe- und Aufzeichnungszeitpunkte.
Der tatsächliche Ereignisplan und die Ausgabeaufzeichnung sind maßgeblich. Die vier folgenden Schritte sind Kategorien der Vorhersage und bedeuten keine vier Taktzyklen.
- Eingänge treiben: a, b und sel ändern
- Kombinatorisch auswerten: y = sel ? b : a
- Steigende Flanke: y unmittelbar vor der Flanke übernehmen
- Nach Aktualisierung beobachten: sampled_y vergleichen
Erwartungswerte unabhängig berechnen
Berechnen Sie y für jedes Eingabepaket und tragen Sie gesondert ein, an welcher Flanke es q erreicht. Die erste abweichende Zeile grenzt die Ursache auf Eingabezeitpunkt, Auswahlfunktion oder Speicherung ein.
Übergänge von stabilen Zuständen unterscheiden
Sind beide Daten gleich, muss ein Auswahlwechsel denselben Endwert liefern; unterschiedliche interne Laufzeiten können dennoch einen kurzen Glitch erzeugen. Umgekehrt ist nicht jeder normale Ausgangswechsel ein Glitch. Logische Zeitdiagramme und physische Timing-Analyse beantworten verschiedene Fragen.
Ein Testbench, der Stimuli an derselben steigenden Flanke wie das DUT ändert und sofort liest, kann einen Race erzeugen. Trennen Sie Treiben und Beobachten oder verwenden Sie klare Synchronisation wie Clocking-Blocks. Die DDS-Übung verwendet Eingabe-JSON und feste Einzeltaktregeln; fügen Sie keinen beliebigen #delay-Testbench hinzu.
Selbst ausprobieren
Wenn y und sampled_y am Ende beide 1 sind, sind dann auch alle Zwischenzyklen korrekt?
Erklärung lesen
Nein. Vertauschte Auswahl oder eine um einen Zyklus verspätete Speicherung können bei abschließendem a=b=1 dieselben Endwerte liefern. Vergleichen Sie jede Flanke und schließen Sie sel-Wechsel bei a≠b ein.