Rückblick – Bank mit zwei Leseports
Teil des Abschnitts RTL-Design und Verifikation der Verilog-Journey von Coddy. Lektion 25 von 38.
Aufgabe
MittelImplementiere vier 8-Bit-Wörter mit einem getakteten Schreibvorgang und zwei registrierten Leseausgängen für alte Daten, qa und qb. we schreibt an waddr. Das synchrone rst löscht nur qa und qb. Andernfalls aktiviert re beide Lesevorgänge von raddr_a und raddr_b; deaktivierte Lesevorgänge behalten ihren Wert. Schreibvorgänge an derselben Taktflanke ändern die von diesen Lesevorgängen erfassten alten Werte nicht. Die Tests initialisieren die Wörter vor dem Lesen. Ausgabespalten: qa, qb. Alle Steuer- und Datensignale sind vor jeder steigenden Taktflanke stabil; die Ergebnisse werden danach beobachtet.
Vervollständige design.v und bewahre die Modulnamen und Ports. Das gesperrte testbench.v liefert Eingangsänderungen und gibt die Ausgänge aus, nachdem sie sich stabilisiert haben. Es wählt ein Szenario mithilfe eines Simulatorarguments wie +CASE=1 aus; eine Standardeingabe ist nicht erforderlich. Füge dem Design keine Ausgaben, Verzögerungen oder Simulationsbeendigung hinzu. Die erwartete Ausgabe besteht aus einer Zeile dezimaler Werte pro Beobachtung, durch ein Leerzeichen getrennt und mit einem Zeilenumbruch abgeschlossen.
Probier es selbst
module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr_a, input [1:0] raddr_b, input [7:0] data, output reg [7:0] qa, output reg [7:0] qb);
// Ersetzen Sie diesen Platzhalter durch Ihr Design.
initial qa = 0;
initial qb = 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