Menu
Coddy logo textTech

One-Hot-Validierung

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

One-Hot-Daten haben genau ein gesetztes Bit. Ein Decoder erzeugt solche Daten, während die Validierung eingehende Daten vor ihrer Verwendung überprüft. Für bekannte Binärwerte ist ein Wert ungleich null One-Hot, wenn bits & (bits - 1) null ist. Dieser Abschnitt verwendet diese Abkürzung nicht, um X oder Z zu klassifizieren.

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

assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);

Die Prüfung auf einen Wert ungleich null schließt den Leerlaufzustand aus; der Bit-Trick weist mehrere gesetzte Bits zurück.

Unterscheide bei der Validierung von Anfragen zwischen null, genau einem gesetzten Bit und mehreren gesetzten Bits.

challenge icon

Aufgabe

Mittel

Für bekannte 4-Bit-Eingabe bits setze valid nur, wenn genau ein Bit high ist. Verwende die Nicht-Null-Prüfung zusammen mit bits & (bits - 1). Ausgabespalten: valid. Alle Stimuluswerte sind bekannte Binärwerte.

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; es ist keine Standardeingabe erforderlich. Füge dem Design kein Drucken, keine Verzögerungen oder Simulationsbeendigung hinzu. Die erwartete Ausgabe ist eine Zeile mit Dezimalwerten pro Beobachtung, getrennt durch ein Leerzeichen und endend mit einem Zeilenumbruch.

Probier es selbst

module dut (input [3:0] bits, output valid);
    // Ersetze diesen Platzhalter durch dein Design.
    assign valid = 0;
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