Operadores Aritméticos
Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 19 de 90.
O Verilog fornece operadores aritméticos básicos: + (adição), - (subtração), * (multiplicação) e / (divisão).
Exemplo de Código:
module arithmetic_demo;
reg [3:0] a, b;
reg [7:0] add, sub, mul, div;
initial begin
a = 4'd9;
b = 4'd4;
add = a + b; // 9 + 4 = 13
sub = a - b; // 9 - 4 = 5
mul = a * b; // 9 * 4 = 36
div = a / b; // 9 / 4 = 2
$display("9 + 4 = %d", add);
$display("9 - 4 = %d", sub);
$display("9 * 4 = %d", mul);
$display("9 / 4 = %d", div);
$finish;
end
endmoduleSaída:
9 + 4 = 13 9 - 4 = 5 9 * 4 = 36 9 / 4 = 2
Notas Importantes
- Divisão realiza divisão inteira (sem frações)
- Certifique-se de que o registrador de resultado seja largo o suficiente para os resultados da multiplicação
Desafio
Neste desafio, você precisa escrever as expressões aritméticas corretas usando os operadores +, -, * e /.
O que fazer:
- Calcule
a + be armazene emadd - Calcule
a - be armazene emsub - Calcule
a * be armazene emmul - Calcule
a / be armazene emdiv
Folha de consulta
Operadores aritméticos Verilog: +, -, *, /
reg [3:0] a, b;
reg [7:0] add, sub, mul, div;
add = a + b;
sub = a - b;
mul = a * b;
div = a / b; // divisão inteira (sem frações)Nota: Certifique-se de que o registrador de resultado seja largo o suficiente, especialmente para multiplicação.
Experimente você mesmo
module arithmetic_challenge;
reg [3:0] a, b;
reg [7:0] add, sub, mul, div;
initial begin
a = 4'd12;
b = 4'd5;
add = ______; // a + b
sub = ______; // a - b
mul = ______; // a * b
div = ______; // a / b
$display("12 + 5 = %d", add);
$display("12 - 5 = %d", sub);
$display("12 * 5 = %d", mul);
$display("12 / 5 = %d", div);
$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 SoftwareNíveis de Abstração de ProjetoSeu Primeiro MóduloComentários4Operadores Parte 1
Operadores AritméticosOperador de MóduloOperadores de ComparaçãoRecapitulação - Matemática SimplesOperadores Bitwise7Atribuição e Portas Lógicas
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ão
Instrução IfIf - ElseRecapitulação - Comparador SimplesInstrução CaseCasex e CasezRecapitulação - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteger e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores Parte 2
Operadores LógicosOperadores de ReduçãoOperadores de DeslocamentoOperador de ConcatenaçãoOperador CondicionalRecapitulação - Desafio de Operadores3Sistemas de Numeração
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRecapitulação - Formatos de Números6Módulos
Estrutura de MóduloPortas de Entrada e SaídaPortas InoutInstanciação de MóduloMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação - Construa um Módulo