Menu
Coddy logo textTech

Akzeptierte Samples zählen

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

challenge icon

Aufgabe

Schwer

Erstelle über fünf Schritte einen Sample-Monitor. Verfolge die akzeptierten Samples in count: Erhöhe den Wert bei jeder en-Flanke, die nicht zurücksetzt oder löscht, und begrenze ihn bei 15. rst oder clear setzt sowohl count als auch total zurück. Akzeptierte Samples mit dem Wert null erhöhen count ebenfalls. Behalte alles aus den vorherigen Schritten bei, einschließlich der Testbench und des bisherigen Ausgabeverhaltens. Alle Eingabewerte sind bekannt. Szenarien enthalten höchstens 40 Flanken, daher passt total in 16 Bit. Die feste Testbench gibt für die Szenarien 1–9 total, für die Szenarien 10–12 total und count sowie für die Szenarien 13–15 total, count und alarm aus. Nur die für diesen Schritt aktivierten Szenarien werden bewertet.

Vervollständige design.v und bewahre die Modulnamen und Ports. Die gesperrte testbench.v liefert Eingabeänderungen und gibt die Ausgänge aus, nachdem sie sich stabilisiert haben. Sie wählt ein Szenario mithilfe eines Simulatorarguments wie +CASE=1; eine Standardeingabe ist nicht erforderlich. Füge dem Design keine Ausgaben, Verzögerungen oder Simulationsterminierung 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,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    always @(posedge clk)begin
        if(rst)total<=0;else if(clear)total<=0;else if(en)total<=total+data;
        count<=0;
    end
    assign alarm=0;
endmodule

Alle Lektionen in RTL-Design und Verifikation

Übe selbstständig: Online-Verilog-Compiler