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, o Verilog tem outros tipos de dados para números com diferentes finalidades.
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
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; // Conta para cima
i = -5; // Pode armazenar negativo
$display("i = %d", i); // Imprime: i = -5
endReal
real é usado para números de ponto flutuante (números com casas decimais).
- Armazena valores fracionários
- Usado em testbenches para cálculos
- Não pode ser sintetizado em 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
endOnde usá-los
Em ambientes 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.
No 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 uma FPGA ou chip, use reg e wire em vez disso.
Desafio
Complete o código para fazer o testbench funcionar.
O que fazer:
- Declare um inteiro chamado i (contador do loop)
- Declare um real chamado value (para o cálculo)
Experimente você mesmo
module test;
// Declare um inteiro chamado i
// Declare um 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