Menu
Coddy logo textTech

Kombinatorische Funktionen

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

Eine Verilog-function kapselt eine Berechnung ohne Zeitaufwand zur Wiederverwendung innerhalb eines Moduls. Deklariere ihre Rückgabebreite, Eingabeargumente und lokalen Variablen und assign dann das Ergebnis dem Namen der function zu. Kombinatorische Funktionen enthalten keine Verzögerungen oder Ereignissteuerungen; eine Schleife mit festen Grenzen kann wiederholte Logik beschreiben.

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

function [7:0] gray;
    input [7:0] value;
    begin gray = value ^ (value >> 1); end
endfunction

Das Aufrufen der function berechnet einen Ausdruck, ohne Simulationszeit hinzuzufügen.

Weise auf jedem Pfad das Ergebnis der function zu und halte kombinatorische Funktionen frei von Zeitsteuerungen.

challenge icon

Aufgabe

Mittel

Implementiere eine Verilog-function gray, die einen vorzeichenlosen 8-Bit-Binärwert mithilfe von value XOR (value um eins nach rechts verschoben) in Gray-Code umwandelt. Weise y durch Aufrufen der function mit a zu. Ausgabespalten: y. Alle Stimuluswerte sind bekannte Binärwerte.

Vervollständige design.v und bewahre dessen Modulnamen und Ports. Die gesperrte testbench.v liefert Eingabeänderungen und gibt die Ausgaben aus, nachdem sie sich stabilisiert haben. Sie 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 [7:0] a, output [7:0] y);
    // Ersetzen Sie diesen Platzhalter durch Ihr Design.
    assign y = 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