Integer und Real
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 8 von 90.
Zusätzlich zu wire und reg verfügt Verilog über weitere Datentypen für Zahlen mit unterschiedlichen Einsatzzwecken.
Integer
integer ist eine allgemeine Variable zum Zählen und für Berechnungen.
- Standardgröße ist 32 Bits
- Vorzeichenbehaftet (
canstorenegativenumbers) - Hauptsächlich in Testbenches und für Schleifen verwendet
Deklarieren eines integer:
integer i; // 32-Bit-Variable mit Vorzeichen
integer count; // Kann negative Zahlen speichernVerwendung von integer:
integer i;
initial begin
i = 0; // Starte bei 0
i = i + 1; // Zähle hoch
i = -5; // Kann negative speichern
$display("i = %d", i); // Gibt aus: i = -5
endReal
real ist für Fließkommazahlen (Zahlen mit Nachkommastellen).
- Speichert Nachkommawerte
- Wird in Testbenches für Berechnungen verwendet
- Kann nicht in Hardware synthetisiert werden
Deklaration eines real:
real pi; // Gleitkomma-Variable
real voltage;Verwendung von real:
real pi;
initial begin
pi = 3.14159; // Dezimalwert
pi = 22.0 / 7.0; // Divisionsergebnis
$display("pi = %f", pi); // Gibt aus: pi = 3.142857
endWo sie verwendet werden
In Testbenches: Integers und Reals werden häufig für Schleifenzähler, Berechnungen und das Überprüfen von erwarteten Werten verwendet. Sie machen Testcode einfacher zu schreiben und zu verstehen.
In hardware: Diese Typen sind gewöhnlich nicht synthetisierbar – das bedeutet, sie können nicht in tatsächliche Schaltkreise umgewandelt werden. Für Hardware, die auf einen FPGA oder Chip gebracht werden soll, verwende stattdessen reg und wire.
Aufgabe
Vervollständigen Sie den Code, damit die Testbench funktioniert.
Was zu tun ist:
- Declare einen integer called i (für den Schleifenzähler)
- Declare einen real called value (für die Berechnung)
Probier es selbst
module test;
// Deklariere einen Integer namens i
// Deklariere einen Real namens value
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$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