Menu
CoddyTech

Toán tử số học

Thuộc phần Kiến thức nền tảng trong hành trình Verilog của Coddy. Bài học 19 trên 90.

Verilog cung cấp các toán tử số học cơ bản: + (phép cộng), - (phép trừ), * (phép nhân) và / (phép chia).

Ví dụ code:

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
endmodule

Đầu ra:

9 + 4 = 13 9 - 4 = 5 9 * 4 = 36 9 / 4 = 2 

Lưu ý quan trọng

  • Phép chia thực hiện phép chia số nguyên (không có phần thập phân)
  • Đảm bảo thanh ghi kết quả có đủ độ rộng để lưu kết quả phép nhân
challenge icon

Thử thách

Trong thử thách này, bạn cần viết các biểu thức số học chính xác bằng các toán tử +, -, * và /.

Cần làm:

  1. Tính a + b và lưu vào add
  2. Tính a - b và lưu vào sub
  3. Tính a * b và lưu vào mul
  4. Tính a / b và lưu vào div

Tự làm thử

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
endmodule
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Verilog online