Inteiro e Real
Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 8 de 90.
Além de wire e reg, Verilog tem outros tipos de dados para números com diferentes finalidades.
Inteiro
integer é uma variável de uso geral para contagens e cálculos.
- O tamanho padrão é de 32 bits
- Com sinal (pode armazenar números negativos)
- Usado principalmente em bancos de teste e em loops
Declarando um inteiro:
integer i; // Variável com sinal de 32 bits
integer count; // Pode armazenar números negativosUsando inteiro:
integer i;
initial begin
i = 0; // Começa em 0
i = i + 1; // Incrementa
i = -5; // Pode armazenar valores negativos
$display("i = %d", i); // Exibe: i = -5
endReal
real é usado para números de ponto flutuante (números com casas decimais).
- Armazena valores fracionários
- Usado em bancadas de teste para cálculos
- Não pode ser sintetizado em hardware
Declarando uma variável 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); // Exibe: pi = 3.142857
endOnde usá-los
Em bancadas de teste: Inteiros e números 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: O tipo real não é sintetizável, ou seja, não pode ser transformado em um circuito real. O tipo integer pode ser sintetizado e costuma ser usado como contador de loop, mas, para os sinais do hardware que será implementado em um FPGA ou chip, use reg e wire.
Desafio
Complete o código para fazer o testbench funcionar.
O que fazer:
- Declare um inteiro chamado i (para o contador do loop)
- Declare um real chamado value (para o cálculo)
Experimente você mesmo
module test;
// Declare um inteiro chamado i
// Declare um número real chamado value
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmoduleEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
1Introdução
O que é VerilogHardware vs. SoftwareSeu primeiro móduloComentáriosNíveis de abstração de projeto4Operadores Parte 1
Operadores aritméticosOperador móduloOperadores de comparaçãoRecapitulação - Matemática simplesOperadores bit a bit7Atribuições e Portas
Atribuição ContínuaAtribuição com OperadoresPrimitivas de Portas IntegradasPortas AND, OR e NOTPortas XOR e XNORRecapitulação - Circuito de Portas Lógicas10Tomada de Decisões
Declaração IfIf - ElseRevisão - Comparador SimplesDeclaração CaseCasex e CasezRevisão - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteiro e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores - Parte 2
Operadores lógicosOperadores de reduçãoOperadores de deslocamentoOperador de concatenaçãoOperador condicionalRevisão - Desafio de operadores3Sistema Numérico
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRevisão - Formatos Numéricos6Módulos
Estrutura de MódulosPortas de Entrada e SaídaPortas InoutInstanciação de MódulosMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação — Construindo um MóduloPratique por conta própria: Compilador de Verilog online