Menu
Coddy logo textTech

Grenz- und Steuerungsabdeckung

Teil des Abschnitts RTL-Design und Verifikation der Verilog-Journey von Coddy. Lektion 29 von 38.

Einige Tests zu bestehen, ist etwas anderes, als die wichtigen Szenarien zu prüfen. Verfolge, ob Minimal-, Maximal- und gewöhnliche Werte getestet wurden und ob konkurrierende Steuerungen gemeinsam auftraten. Ein Abdeckungsindikator hält fest, dass ein case beobachtet wurde; er beweist nicht, dass das Design korrekt reagiert hat. Kombiniere die Abdeckung mit Ergebnisprüfungen.

Relevanter Auszug; umgebende Deklarationen und Verbindungen werden in der Aufgabe bereitgestellt.

if(value==0) seen[0]=1;
else if(value==15) seen[1]=1;
else seen[2]=1;

Die Bitmaske merkt sich, welche Kategorien aufgetreten sind, ohne frühere Treffer zu ersetzen.

Kombiniere die Abdeckung von Grenzwerten und Steuerungskombinationen mit unabhängigen Korrektheitsprüfungen.

challenge icon

Aufgabe

Mittel

Verfolge drei Eingangsabdeckungs-Bins in seen, ohne frühere Treffer zu löschen: Bit 0 zeichnet value=0 auf, Bit 1 zeichnet value=15 auf und Bit 2 zeichnet Werte von 1 bis 14 auf. Die Eingänge enthalten bekannte Bits. Der Aufrufer initialisiert seen=0 vor einem Szenario. Dieses Modul enthält eine nur für die Simulation vorgesehene task, die von der gesperrten Testbench aufgerufen wird. Ausgabespalten: seen als Dezimalzahl.

Vervollständige design.v und bewahre seine Modulnamen und Ports. Die gesperrte testbench.v liefert Eingangsänderungen und gibt die Ausgaben aus, sobald sie sich stabilisiert haben. Sie wählt ein Szenario mithilfe eines Simulatorarguments wie +CASE=1; eine Standardeingabe ist nicht erforderlich. Belasse die Ausgabe und die Szenariosteuerung in der gesperrten Testbench; implementiere nur den Körper der task. Die erwartete Ausgabe besteht aus einer Zeile mit Dezimalwerten pro Beobachtung, durch ein Leerzeichen getrennt und mit einem Zeilenumbruch abgeschlossen.

Probier es selbst

module dut;
    task observe;
        input [3:0] value;
        inout [2:0] seen;
        begin
            // Vervollständige die Checker-Aufgabe.
            seen=seen;
        end
    endtask
endmodule
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in RTL-Design und Verifikation

Übe selbstständig: Online-Verilog-Compiler