Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Verilog

Verilog-Datentypen: Bits, Wires und Logikwerte erklärt

Der Hauptzweck von Datentypen in Verilog ist die Repräsentation von Datenspeicherelementen (Bits in Flipflops) und Übertragungselementen (Wires, die Logikgatter und sequenzielle Strukturen verbinden).

Welche Werte können Variablen annehmen?

Fast alle Datentypen können nur einen von vier Werten annehmen (Ausnahme: real und event):

0Logik Null / False
1Logik Eins / True
x / XUnbekannter Logikwert (kann 0 oder 1 sein)
z / ZHigh-Impedance-Zustand (high-Z)

In Timing-Diagrammen und Simulations-Waveforms: Rot = X, Orange (Mitte) = High-Z / Z.

Was impliziert das Verilog-Wertesystem?

Verilog modelliert Hardware-Elemente (Flipflops, NAND, NOR). Logik 1 = Versorgungsspannung Vdd (0.8 V bis >3 V je Technologie-Node). Logik 0 = Ground (0 V).

X/x = Wert zum Zeitpunkt unbekannt (kann 0 oder 1 sein). Anders als in Boolescher Logik („Don't Care“).

Z/z = High-Impedance, wie ein nicht angeschlossener Draht. In Verilog hat jeder unverbundene Wire High-Z.

Nets und Variables

Nets und Variables sind die zwei Hauptgruppen, die unterschiedliche Hardware-Strukturen repräsentieren und sich in Zuweisung und Werterhaltung unterscheiden.

Nets

Verbinden Hardware-Entitäten (Logikgatter), speichern keinen eigenen Wert. Beispiel: Net net_11 verbindet AND-Gatter-Ausgang mit Flipflop-Eingang data_0. Eingänge des AND-Gatters an net_45, net_67.

Verschiedene Net-Typen, aber der beliebteste in digitalen Designs ist wire. Ein wire verbindet Elemente, getrieben von einem einzelnen Gatter oder Continuous Assignment. Analogie: Elektrischer Draht auf Breadboard.

Mehrere Nets können zu einem wire gebündelt werden (Vektoren). Beispiel: wire [3:0] n0; – 4-Bit-Wire (Vektor).

Redeclaration eines bereits deklarierten Namens (Net, Parameter, Variable) ist illegal.

Variables

Abstraktion eines Datenspeicherelements, kann Werte halten. Flipflop = gutes Beispiel.

Verilog-Typ reg modelliert Hardware-Register, da er Werte zwischen Zuweisungen hält. Hinweis: reg muss nicht immer ein Flipflop sein – kann auch kombinatorische Logik darstellen.

Weitere Datentypen

integer

Allzweck-Variable, 32 Bit breit, speichert Integer-Werte.

integer count; // count > 0

time

time: unsigned, 64 Bit, für Simulationszeit. realtime: Gleitkomma-Zeit.

time end_time;      // z. B. 50ns
realtime rtime;     // z. B. 40.25ps

real

Gleitkommawerte, Zuweisung wie integer/reg.

real float; // float = 12.344

Beispiel

module testbench;
    integer int_a;
    real real_b;
    time time_c;
    initial begin
        int_a = 32'hcafe_1234;
        real_b = 0.1234567;
        #20;
        time_c = $time;
        $display("int_a = 0x%0h", int_a);
        $display("real_b = %0.5f", real_b);
        $display("time_c = %0t", time_c);
    end
endmodule

Simulationslog:

ncsim> run
int_a = 0xcafe1234
real_b = 0.12346
time_c = 20
ncsim: *W,RNQUIE: Simulation is complete.

Verilog Strings

Strings werden in reg gespeichert. Breite des reg muss ausreichen (1 Byte pro Zeichen = 8 Bit).

  • Variable zu klein → linke Bits werden abgeschnitten (Trunkierung).
  • Variable zu groß → linke Bits werden mit Nullen aufgefüllt (Padding).
// "Hello World" = 11 Bytes
reg [8*11:1] str = "Hello World"; // passt genau
reg [8*5:1] str = "Hello World";  // nur 5 Bytes → "World"
reg [8*20:1] str = "Hello World"; // 20 Bytes → Padding links: "         Hello World"

Vollständiges Simulationsbeispiel zeigt das Verhalten.

Verilog

  1. C# Variablen & Primitive Datentypen meistern: Der komplette Guide
  2. C++-Datentypen verstehen: Grundlagen, Modifizierer und Best Practices
  3. C Datentypen erklärt: int, float, char und mehr – Ein vollständiger Leitfaden
  4. Python-Datentypen meistern: Praxisleitfaden
  5. Java Primitive Datentypen: Vollständiger Leitfaden mit Beispielen
  6. 5 Rechenzentrums-Modelle erklärt: Design, Use Cases & Beispiele
  7. 8 Schlüssel-Cloud-Computing-Modelle 2021
  8. 8 häufige Datenschutzverletzungsarten – reale Beispiele & Auswirkungen
  9. Verilog meistern: Komplettes Tutorial für digitales Schaltungsdesign
  10. Verilog Concatenation meistern: Praktischer Leitfaden