Integer And Real
Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 8 de 90.
Además de wire y reg, Verilog tiene otros tipos de datos para números con diferentes propósitos.
integer
integer es una variable de propósito general para realizar conteos y cálculos.
- El tamaño predeterminado es de 32 bits
- Con signo (can almacenar negative numbers)
- Se usa principalmente en testbenches y en bucles for
Declarar un integer:
integer i; // variable con signo de 32 bits
integer count; // Puede almacenar números negativosUsando integer:
integer i;
initial begin
i = 0; // Empieza en 0
i = i + 1; // Cuenta hacia arriba
i = -5; // Puede almacenar negativos
$display("i = %d", i); // Imprime: i = -5
endReal
real se utiliza para números de punto flotante (números con decimales).
- Almacena valores fraccionarios
- Se utiliza en bancos de pruebas para realizar cálculos
- No se puede sintetizar en hardware
Declarar un real:
real pi; // Variable de punto flotante
real voltage;Uso de real:
real pi;
initial begin
pi = 3.14159; // Valor decimal
pi = 22.0 / 7.0; // Resultado de la división
$display("pi = %f", pi); // Imprime: pi = 3.142857
endDónde usarlos
En bancos de pruebas: Los tipos integer y real se usan habitualmente para contadores de bucle, cálculos y comprobación de valores esperados. Facilitan la escritura y la comprensión del código de test.
En hardware: Estos tipos normalmente no son sintetizables, lo que significa que no pueden convertirse en circuitos reales. Para el hardware que se implementará en una FPGA o un chip, usa reg y wire en su lugar.
Desafío
Completa el código para que el banco de pruebas funcione.
Qué hacer:
- Declara un integer llamado i (para el contador del bucle)
- Declara un real llamado value (para el cálculo)
Pruébalo tú mismo
module test;
// Declara un entero llamado i
// Declara un real llamado value
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmoduleEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción
Qué es VerilogHardware frente a softwareTu primer móduloComentariosNiveles de abstracción del diseño4Operators 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 LogicPractica por tu cuenta: Compilador de Verilog online