Menu
Coddy logo textTech

Enteros y Reales

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 conteo y cálculos.

  • El tamaño predeterminado es de 32 bits
  • Con signo (puede almacenar números negativos)
  • Se utiliza principalmente en bancos de pruebas (testbenches) y bucles for

Declarar un entero:

integer i;        // variable con signo de 32 bits
integer count;    // Puede almacenar números negativos

Usando integer:

integer i;

initial begin
  i = 0;           // Empezar en 0
  i = i + 1;       // Contar hacia arriba
  i = -5;          // Puede almacenar negativos
  $display("i = %d", i);  // Imprime: i = -5
end

Real

real es para números de punto flotante (números con decimales).

  • Almacena valores fraccionarios
  • Se utiliza en bancos de pruebas para cálculos
  • No se puede sintetizar en hardware

Declaración de un real:

real pi;           // Variable de punto flotante
real voltage;

Usando 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
end

Dónde usarlos

En los bancos de pruebas (testbenches): Los enteros y reales se utilizan comúnmente para contadores de bucles, cálculos y para verificar valores esperados. Hacen que el código de prueba sea más fácil de escribir y entender.

En hardware: Estos tipos generalmente no son sintetizables, lo que significa que no pueden convertirse en circuitos reales. Para el hardware que irá en una FPGA o chip, use reg y wire en su lugar.

challenge icon

Desafío

Completa el código para que el banco de pruebas funcione.

Qué hacer:

  1. Declara un integer llamado i (para el contador del bucle)
  2. Declara un real llamado value (para el cálculo)

Hoja de referencia

integer – variable con signo de 32 bits para conteo/cálculos (bancos de pruebas, bucles):

integer i;
integer count;

initial begin
  i = 0;
  i = i + 1;
  i = -5;  // can store negatives
end

real – variable de punto flotante para valores fraccionarios (solo bancos de pruebas, no sintetizable):

real pi;

initial begin
  pi = 3.14159;
  pi = 22.0 / 7.0;
  $display("pi = %f", pi);
end

Tanto integer como real se utilizan solo en bancos de pruebas. Para hardware sintetizable, use reg y wire.

Pruébalo tú mismo

module test;
  
  // Declarar un entero llamado i

  
  // Declarar un real llamado value

  
  initial begin
    i = 7;
    value = i * 0.5;
    $display("i = %0d, value = %f", i, value);
    
    $finish;
  end
  
endmodule
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos