Arithmetic Operators
Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 19 de 90.
Verilog proporciona operadores aritméticos básicos: + (suma), - (resta), * (multiplicación) y / (división).
Ejemplo 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
endmoduleSalida:
9 + 4 = 13 9 - 4 = 5 9 * 4 = 36 9 / 4 = 2
Notas importantes
- Division realiza una división entera (sin fractions)
- Asegúrate de que el registro result tenga el ancho suficiente para los resultados de la multiplicación
Desafío
En este desafío, debes escribir las expresiones aritméticas correctas usando los operadores +, -, * y /.
Qué hacer:
- Calcula
a + by almacena el resultado enadd - Calcula
a - by almacena el resultado ensub - Calcula
a * by almacena el resultado enmul - Calcula
a / by almacena el resultado endiv
Pruébalo tú mismo
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 lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción
Qué es VerilogHardware frente a softwareTu primer móduloComentariosNiveles de abstracción del diseño4Operators 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 LogicPractica por tu cuenta: Compilador de Verilog online