Menu
Coddy logo textTech

Herausforderung – Begrenzte Summe

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

challenge icon

Aufgabe

Mittel

Akkumuliere das 8-Bit-Sample signed bei aktivierten steigenden Flanken in signed q und begrenze den Wert auf -128 und 127. Setze clipped immer dann dauerhaft, wenn eine Sättigung auftritt; sobald es gesetzt ist, bleibt es bis rst oder clear gesetzt. Beide synchronen Steuerungen löschen q und clipped und haben Vorrang vor en. Deaktivierte Flanken behalten beide Werte bei. Ausgabespalten: q, clipped. Alle Steuerungen und Daten sind vor jeder steigenden Taktflanke stabil; die Ergebnisse werden danach beobachtet.

Vervollständige design.v und bewahre seine Modulnamen und Ports. Das gesperrte testbench.v liefert Eingabeänderungen und gibt die Ausgaben 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 clear, input en, input signed [7:0] sample, output reg signed [7:0] q, output reg clipped);
    // Ersetzen Sie diesen Platzhalter durch Ihr Design.
    initial q = 0;
    initial clipped = 0;
endmodule

Alle Lektionen in RTL-Design und Verifikation

Übe selbstständig: Online-Verilog-Compiler