Menu
Coddy logo textTech

Samples sammeln

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

Erstelle einen wiederverwendbaren Monitor für einen Datenstrom vorzeichenloser Abtastwerte. Du sammelst Werte, berücksichtigst die Steuerungen zum Aktivieren und Löschen, zählst angenommene Abtastwerte und meldest, ob ein Schwellenwert erreicht wurde. Alle fünf Schritte behalten dieselbe Modulschnittstelle und die unveränderte Testbench bei. Reservierte Ausgänge erhalten in späteren Schritten ihr Verhalten.

challenge icon

Aufgabe

Schwer

Erstelle einen Sample Monitor in fünf Schritten. Bei jeder steigenden Flanke löscht das synchrone rst total; andernfalls wird unsigned data zu total addiert. Verwende das 16-Bit-total-Register. In diesem ersten Schritt werden en und clear nicht verwendet, und die Szenarien behalten en=1 und clear=0 bei. count und alarm sind reservierte Ausgänge, die auf null bleiben. Alle Eingabewerte sind bekannt. Die Szenarien enthalten höchstens 40 Flanken, sodass total in 16 Bit passt. Die feste Testbench gibt total für die Szenarien 1–9, total und count für die Szenarien 10–12 sowie total, count und alarm für die Szenarien 13–15 aus. Nur die für diesen Schritt aktivierten Szenarien werden bewertet.

Vervollständige design.v und bewahre seine Modulnamen und Ports. Die gesperrte testbench.v liefert Eingangsä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 die Beendigung der Simulation hinzu. Die erwartete Ausgabe besteht aus einer Zeile mit Dezimalwerten pro Beobachtung, durch jeweils 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);
    initial begin total=0;count=0;end
    assign alarm=0;
endmodule

Alle Lektionen in RTL-Design und Verifikation

Übe selbstständig: Online-Verilog-Compiler