Integer And 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 negative)
- Usado principalmente em testbenches e em loops for
Declarando um integer:
integer i; // variável assinada de 32 bits
integer count; // Pode armazenar números negativosUsando integer:
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 (numbers 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 integer 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 projeto4Operators 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 LogicPratique por conta própria: Compilador de Verilog online