Rückblick – Addiererprüfung
Teil des Abschnitts RTL-Design und Verifikation der Verilog-Journey von Coddy. Lektion 30 von 38.
Aufgabe
MittelImplementiere die Prüfung für einen vorzeichenlosen Vier-Bit-Addierer. Akkumuliere checked und errors wie in der Scoreboard-Lektion und bewahre die Abdeckungsbits: Bit 0 markiert a=b=0, Bit 1 markiert a=b=15 und Bit 2 markiert jedes andere Eingabepaar. Vergleiche actual mit der vollständigen Fünf-Bit-Summe unter Verwendung einer Ungleichheitsprüfung mit vier Zuständen. Der Aufrufer initialisiert alle Zähler und Flags. Dieses Modul enthält eine nur für die Simulation vorgesehene task, die vom gesperrten Testbench aufgerufen wird. Ausgabespalten: checked, errors, seen.
Vervollständige design.v und bewahre seine Modulnamen und Ports. Der gesperrte testbench.v liefert Eingabeänderungen und gibt die Ausgaben aus, nachdem sie sich stabilisiert haben. Er wählt ein Szenario mithilfe eines Simulatorarguments wie +CASE=1; eine Standardeingabe ist nicht erforderlich. Behalte die Ausgabe und die Szenariosteuerung im gesperrten Testbench bei; implementiere nur den Körper der task. 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;
task audit;
input [3:0] a,b;
input [4:0] actual;
inout integer checked,errors;
inout [2:0] seen;
reg [4:0] expected;
begin
// Vervollständige die Checker-Aufgabe.
checked=checked;errors=errors;seen=seen;
end
endtask
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 Summe3Wiederverwendbares RTL
Kombinatorische FunktionenBreitensichere ParameterGenerate-SchleifenBedingtes GenerateRückblick – Wiederverwendbare Bitmaske6Selbstprüfende Testbenches
VierzustandsprüfungenWiederverwendbare Checker-TasksReferenzmodelle und BewertungenGrenz- und SteuerungsabdeckungRückblick – AddiererprüfungÜbe selbstständig: Online-Verilog-Compiler