Zusammenfassung – Operator-Challenge
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 29 von 90.
Aufgabe
Vervollständigen Sie den Code, indem Sie die korrekten Ausdrücke für jede Aufgabe schreiben. Diese Herausforderung deckt alle Operatoren aus diesem Kapitel ab.
Was zu tun ist:
- Logisch: Prüfen Sie, ob sowohl
value1als auchvalue2ungleich Null sind, und speichern Sie das Ergebnis inlogic_out - Reduktion: Prüfen Sie, ob alle Bits von
vector1 sind, und speichern Sie das Ergebnis inreduction_out - Shift: Verschieben Sie
dataum 2 Bits nach links und speichern Sie das Ergebnis inshift_out - Verkettung: Kombinieren Sie
highundlowzu einem 8-Bit-Wert und speichern Sie das Ergebnis inconcat_out - Bedingt: Speichern Sie den größeren Wert von `a` und `b` in
cond_out
Probier es selbst
module operator_challenge;
reg [3:0] value1, value2;
reg logic_out;
reg [3:0] vector;
reg reduction_out;
reg [7:0] data;
reg [7:0] shift_out;
reg [3:0] high, low;
reg [7:0] concat_out;
reg [3:0] a, b;
reg [3:0] cond_out;
initial begin
// Logisch
value1 = 4'd6;
value2 = 4'd0;
logic_out = ______; // Prüfen, ob sowohl value1 als auch value2 ungleich Null sind
// Reduktion
vector = 4'b1111;
reduction_out = ______; // Check if all bits of vector are 1
// Shift
data = 8'b00001111;
shift_out = ______; // Verschiebe data um 2 Bits nach links
// Verkettung
high = 4'b1010;
low = 4'b1100;
concat_out = ______; // Kombiniere high und low zu einem 8-Bit-Wert
// Bedingt
a = 4'd7;
b = 4'd12;
cond_out = ______; // Speichere den größeren Wert von `a` und `b`
$display("6 && 0 = %d", logic_out);
$display("&4'b1111 = %d", reduction_out);
$display("00001111 << 2 = %b", shift_out);
$display("{1010, 1100} = %b", concat_out);
$display("max(7, 12) = %d", cond_out);
$finish;
end
endmoduleAlle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareAbstraktionsebenen im DesignDein erstes ModulKommentare4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – Einfache MathematikBitweise Operatoren7Zuweisung und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-PrimitiveAND OR NOT GatterXOR XNOR GatterZusammenfassung - Logikgatterschaltung10Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher KomparatorCase-AnweisungCasex und CasezWiederholung - ALU-Design5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenShift-OperatorenVerkettungsoperatorBedingter OperatorZusammenfassung – Operator-Challenge11Schleifen
For-SchleifeWhile-SchleifeRepeat-SchleifeEndlosschleifeDisable-AnweisungRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit GrößenangabeZahlen ohne GrößenangabeNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturEingangs- und Ausgangs-PortsInout-PortsModul-InstanziierungPort-Mapping nach NamePort-Mapping nach ReihenfolgeZusammenfassung – Ein Modul erstellen