Menu
Coddy logo textTech

Negative Zahlen

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 16 von 90.

In Verilog werden negative Zahlen im Zweierkomplement-Format dargestellt. Das Zweierkomplement ist eine Methode, um sowohl positive als auch negative Zahlen im Binärsystem darzustellen. Das höchstwertige Bit (MSB) gibt das Vorzeichen an:

  • 0 = positive Zahl
  • 1 = negative Zahl

Wie man das Zweierkomplement berechnet

Um das Zweierkomplement einer Zahl zu finden:

  1. Schreiben Sie die positive Zahl im Binärformat
  2. Invertieren Sie alle Bits (0 wird zu 1, 1 wird zu 0)
  3. Addieren Sie 1

Beispiel: Darstellung von -5 in 4 Bit

SchrittOperationErgebnis
1Positive 5 in Binärform0101
2Alle Bits invertieren1010
31 addieren1011

-5 im 4-Bit-Zweierkomplement ist <strong>4'b1011</strong>

Schreiben von negativen Zahlen in Verilog

Sie können negative Zahlen direkt im Dezimalformat schreiben:

reg signed [3:0] a;
a = -5;        // Verilog verwendet automatisch das Zweierkomplement

Für binäre Zahlen mit Größenangabe müssen Sie den Zweierkomplementwert schreiben:

a = 4'b1011;   // Dies ist -5 im 4-Bit-Zweierkomplement

Vorzeichenbehaftet vs. Vorzeichenlos

Standardmäßig behandelt Verilog Zahlen als vorzeichenlos (unsigned). Um mit negativen Zahlen zu arbeiten, deklarieren Sie Signale als signed:

reg signed [3:0] negative;   // Kann -8 bis 7 speichern
reg [3:0] positive;          // Kann 0 bis 15 speichern

Wertebereich vorzeichenbehafteter Zahlen

Für N Bits kann eine vorzeichenbehaftete Zahl Folgendes darstellen:

  • Minimum: -2^(N-1)
  • Maximum: 2^(N-1) - 1
BitsWertebereich
4 Bits-8 bis 7
8 Bits-128 bis 127
16 Bits-32768 bis 32767

Wichtige Hinweise

  • Verwenden Sie das Schlüsselwort signed, um die Verarbeitung negativer Zahlen zu aktivieren
  • Ohne signed behandelt Verilog alle Werte als positiv
  • Zweierkomplement-Arithmetik funktioniert automatisch bei der Verwendung von signed
  • Das MSB bestimmt das Vorzeichen: 1 = negativ, 0 = positiv
challenge icon

Aufgabe

Vervollständigen Sie den Code, indem Sie die korrekten Zweierkomplement-Werte schreiben.

Was zu tun ist:

  1. Setzen Sie a auf -3 unter Verwendung des 4-Bit-Zweierkomplements in Binärform
  2. Setzen Sie b auf -8 unter Verwendung des 4-Bit-Zweierkomplements in Binärform
  3. Setzen Sie c auf -1 unter Verwendung des 4-Bit-Zweierkomplements in Binärform

Spickzettel

In Verilog verwenden negative Zahlen das Zweierkomplement-Format. Das MSB (Most Significant Bit) gibt das Vorzeichen an: 0 = positiv, 1 = negativ.

Berechnung des Zweierkomplements:

  1. Schreiben Sie die positive Zahl binär auf
  2. Invertieren Sie alle Bits
  3. Addieren Sie 1

Beispiel: -5 in 4 Bits → 010110101011 = 4'b1011

Deklarieren Sie Signale als signed, um negative Zahlen zu verarbeiten:

reg signed [3:0] negative;   // Kann -8 bis 7 speichern
reg [3:0] positive;          // Kann 0 bis 15 speichern

Weisen Sie negative Werte direkt oder über binäres Zweierkomplement zu:

reg signed [3:0] a;
a = -5;        // Verilog verwendet automatisch das Zweierkomplement
a = 4'b1011;   // Äquivalent: -5 im 4-Bit-Zweierkomplement

Bereich für N-Bit signed: -2^(N-1) bis 2^(N-1) - 1 (z. B. 4 Bits: -8 bis 7).

Probier es selbst

module negative_challenge;
  reg signed [3:0] a, b, c;
  
  initial begin
    a = 4'b______;   // -3 in 4-bit two's complement
    b = 4'b______;   // -8 in 4-bit two's complement
    c = 4'b______;   // -1 in 4-bit two's complement
    
    $display("a = %d", a);
    $display("b = %d", b);
    $display("c = %d", c);
    $finish;
  end
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 Grundlagen