Integer And Real
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 8 von 90.
Neben wire und reg verfügt Verilog über weitere Datentypen für Zahlen mit unterschiedlichen Verwendungszwecken.
integer
integer ist eine vielseitig einsetzbare Variable zum Zählen und für Berechnungen.
- Standardgröße beträgt 32 Bits
- Vorzeichenbehaftet (can store negative numbers)
- Wird hauptsächlich in Testbenches und for-Schleifen verwendet
Deklarieren von 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 Gleitkommazahlen (Zahlen mit Dezimalstellen).
- Speichert gebrochene Werte
- Wird in Testbenches für Berechnungen verwendet
- Kann nicht zu Hardware synthetisiert werden
Eine reelle Zahl deklarieren:
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 man sie verwendet
In Testbenches: Integer und Real-Zahlen werden häufig für Schleifenzähler, Berechnungen und die Überprüfung erwarteter Werte verwendet. Dadurch lässt sich Testcode leichter schreiben und verstehen.
In der Hardware: Diese Typen sind normalerweise nicht synthetisierbar, das heißt, sie können nicht in tatsächliche Schaltungen umgewandelt werden. Für Hardware, die auf einem FPGA oder Chip eingesetzt werden soll, verwende stattdessen reg und wire.
Aufgabe
Vervollständige den Code, damit die Testbench funktioniert.
Aufgabe:
- Deklariere eine ganze Zahl namens i (für den Schleifenzähler)
- Deklariere eine real genannte 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. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicÜbe selbstständig: Online-Verilog-Compiler