Rückblick – Request-Router
Teil des Abschnitts RTL-Design und Verifikation der Verilog-Journey von Coddy. Lektion 5 von 38.
Aufgabe
MittelAkzeptiere eine 4-Bit-Anfrage nur, wenn genau ein Bit gesetzt ist. Wenn gültig, gib den Index des ausgewählten Bits in code aus und setze valid. Bei Leerlauf oder mehreren Anfragen sind sowohl code als auch valid null. Ausgabespalten: code, valid. Alle Stimuluswerte sind bekannte Binärwerte.
Vervollständige design.v und bewahre seine Modulnamen und Ports. Das gesperrte testbench.v liefert Eingabeänderungen und gibt die Ausgaben aus, nachdem sie sich stabilisiert haben. Es wählt ein Szenario mithilfe eines Simulatorarguments wie +CASE=1; es ist keine Standardeingabe erforderlich. Füge dem Design kein Drucken, keine Verzögerungen oder Simulationsbeendigung hinzu. Die erwartete Ausgabe ist eine Zeile mit Dezimalwerten pro Beobachtung, getrennt durch ein Leerzeichen und endend mit einem Zeilenumbruch.
Probier es selbst
module dut (input [3:0] req, output reg [1:0] code, output reg valid);
// Ersetze diesen Platzhalter durch dein Design.
initial code = 0;
initial valid = 0;
endmoduleAlle Lektionen in RTL-Design und Verifikation
1Zuverlässige kombinatorische RTL
Standardwerte verhindern LatchesPrioritätsencoderOne-Hot-ValidierungSichere Case-DekodierungRückblick – Request-Router4Kontrolliertes sequentielles RTL
Priorität von Reset und EnableSättigungszählerPipelining von Daten und ValidErkennen abgetasteter FlankenRückblick – Ereigniszähler2Bitbreiten und vorzeichenbehaftete Arithmetik
Übertragsbits bewahrenVorzeichenbehaftete VergleicheArithmetische RechtsschiebungenÜberlauf und SättigungRückblick – vorzeichenbehaftete Differenz5Speicher und Nachschlagetabellen
Kombinatorische ROM-TabellenSpeicherung in Register-ArraysRegistrierte LeseportsRead-Write-WeiterleitungRückblick – Bank mit zwei Leseports8Abschließende Herausforderungen
Herausforderung – Paritäts-PipelineHerausforderung – MusterereignisseHerausforderung – Begrenzte SummeÜbe selbstständig: Online-Verilog-Compiler