Menu
Coddy logo textTech

Integer e Real

Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 8 de 90.

Além de wire e reg, o Verilog possui outros tipos de dados para números com diferentes propósitos.

Inteiro

integer é uma variável de uso geral para contagem e cálculos.

  • O tamanho padrão é de 32 bits
  • Com sinal (pode armazenar números negativos)
  • Usado principalmente em testbenches e loops for

Declarando um inteiro:

integer i;        // variável de 32 bits com sinal
integer count;    // Pode armazenar números negativos

Usando integer:

integer i;

initial begin
  i = 0;           // Inicia em 0
  i = i + 1;       // Conta para cima
  i = -5;          // Pode armazenar negativos
  $display("i = %d", i);  // Imprime: i = -5
end

Real

real é para números de ponto flutuante (números com decimais).

  • Armazena valores fracionários
  • Usado em testbenches para cálculos
  • Não pode ser sintetizado para hardware

Declarando um real:

real pi;           // Variável de ponto flutuante
real voltage;

Usando real:

real pi;

initial begin
  pi = 3.14159;               // Valor decimal
  pi = 22.0 / 7.0;            // Resultado da divisão
  $display("pi = %f", pi);    // Imprime: pi = 3.142857
end

Onde Usá-los

Em testbenches: Inteiros e reais são comumente usados para contadores de loop, cálculos e verificação de valores esperados. Eles tornam o código de teste mais fácil de escrever e entender.

Em hardware: Esses tipos geralmente não são sintetizáveis — o que significa que não podem ser transformados em circuitos reais. Para hardware que será implementado em um FPGA ou chip, use reg e wire em vez disso.

challenge icon

Desafio

Complete o código para fazer o testbench funcionar.

O que fazer:

  1. Declare um integer chamado i (para o contador do loop)
  2. Declare um real chamado value (para o cálculo)

Folha de consulta

integer – variável de 32 bits com sinal para contagem/cálculos (testbenches, loops):

integer i;
integer count;

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

real – variável de ponto flutuante para valores fracionários (apenas testbenches, não sintetizável):

real pi;

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

Ambos integer e real são usados apenas em testbenches. Para hardware sintetizável, use reg e wire.

Experimente você mesmo

module test;
  
  // Declara um inteiro chamado i

  
  // Declara um real chamado value

  
  initial begin
    i = 7;
    value = i * 0.5;
    $display("i = %0d, value = %f", i, value);
    
    $finish;
  end
  
endmodule
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos