Binäre Darstellung
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 13 von 90.
In Verilog arbeiten wir mit digitalen Schaltungen, die nur 0 und 1 verstehen. Diese werden in binary dargestellt.
Binary verwendet nur zwei Ziffern: 0 und 1. Jede binäre Ziffer wird als bit bezeichnet.
| Decimal | Binary | Bits |
|---|---|---|
| 0 | 0 | 1 bit |
| 1 | 1 | 1 bit |
| 2 | 10 | 2 bits |
| 3 | 11 | 2 bits |
| 4 | 100 | 3 bits |
| 5 | 101 | 3 bits |
Binary in Verilog schreiben
Um binary Zahlen in Verilog zu schreiben, verwende das Präfix 'b:
4'b1010 // 4-bit binary 1010 (decimal 10)
8'b11110000 // 8-Bit-Binär 11110000 (Dezimal 240)
2'b01 // 2-bit binary 01 (decimal 1)Die Zahl vor 'b gibt Verilog an, wie viele Bits der Wert hat.
Wie man Dezimalzahlen in Binärzahlen umwandelt
Teile die Dezimalzahl wiederholt durch 2 und lies die Reste von unten nach oben ab.
Beispiel: Wandle 9 in binary um
| Schritt | Division | Quotient | Rest |
|---|---|---|---|
| 1 | 9 ÷ 2 | 4 | 1 |
| 2 | 4 ÷ 2 | 2 | 0 |
| 3 | 2 ÷ 2 | 1 | 0 |
| 4 | 1 ÷ 2 | 0 | 1 |
Lies die Reste von unten nach oben (vom letzten zum ersten): 1001
9 = 4'b1001
Beispiel im Code
module binary_example;
reg [3:0] a;
initial begin
a = 4'b1010; // Binary 1010 = decimal 10
$display("a = %b (binary)", a);
$display("a = %d (decimal)", a);
$display("a = %h (hex)", a);
$finish;
end
endmoduleAusgabe:
a = 1010 (binary)
a = 10 (decimal)
a = a (hex)Aufgabe
Vervollständige den Code, indem du die fehlenden Binärwerte schreibst.
Was zu tun ist:
- Schreibe den Binärwert für den Dezimalwert 5 (4 bits)
- Schreibe den Binärwert für den Dezimalwert 14 (4 bits)
Probier es selbst
module binary_challenge;
reg [3:0] a, b;
initial begin
// Schreibe Binär für Dezimal 5 (4 Bits)
a = 4'b______;
// Write binary for decimal 14 (4 bits)
b = 4'b______;
$display("5 = %b", a);
$display("14 = %b", b);
$finish;
end
endmoduleDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle 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