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 im Binärsystem dargestellt.
Das Binärsystem verwendet nur zwei Ziffern: 0 und 1. Jede Binärziffer wird als Bit bezeichnet.
| Dezimal | Binär | 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 |
Binärzahlen in Verilog schreiben
Um Binärzahlen 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 teilt Verilog mit, wie viele bits der Wert hat.
So konvertierst du Dezimalzahlen in Binärzahlen
Teile die Dezimalzahl wiederholt durch 2 und lies die Reste von unten nach oben.
Beispiel: 9 in Binärzahl umwandeln
| 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 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 einträgst.
Was zu tun ist:
- Schreibe die Binärdarstellung für die Dezimalzahl 5 (4 Bits)
- Schreibe die Binärdarstellung für die Dezimalzahl 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. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – einfache MathematikBitweise Operatoren7Zuweisungen und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-GrundelementeUND-, ODER- und NICHT-GatterXOR- und XNOR-GatterRückblick – Logikgatter-Schaltung10Entscheidungsfindung
If-AnweisungIf – ElseRückblick – Einfacher KomparatorCase-AnweisungCasex und CasezRückblick – ALU-Entwurf13Zeitsteuerung und Verzögerungen
Was sind Verzögerungen?GatterverzögerungenZuweisungsverzögerungenTimescale-DirektiveTakterzeugungZusammenfassung – Zeitsteuerung2Datentypen
Wire-TypReg-TypInteger und RealVektorenArraysParameterZusammenfassung – Signale deklarieren5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenSchiebeoperatorenVerkettungsoperatorBedingter OperatorRückblick – Operatoren-Herausforderung11Schleifen
For-SchleifeWhile-SchleifeWiederholungsschleifeEndlosschleifeAnweisung deaktivierenRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit fester BreiteZahlen ohne feste BreiteNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturInput- und Output-PortsInout-PortsModulinstanziierungPortzuordnung nach NamenPortzuordnung nach ReihenfolgeRückblick – Ein Modul erstellenÜbe selbstständig: Online-Verilog-Compiler