Menu
CoddyTech

Ôn tập: Thiết kế ALU

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 57 trên 90.

challenge icon

Thử thách

ALU (Arithmetic Logic Unit, bộ số học và logic) là một mạch số nhận hai đầu vào, thực hiện một phép toán trên chúng và tạo ra một đầu ra. Mạch thực hiện các phép toán số học và logic trên hai đầu vào dựa vào tín hiệu chọn. Tín hiệu select chọn một phép toán để thực hiện.

Cách hoạt động

selectPhép toánĐầu ra
2'b00Phép cộnga + b
2'b01Phép trừa - b
2'b10Phép AND theo bita & b
2'b11Phép OR theo bita | b

Xây dựng ALU đơn giản bằng câu lệnh case.

Cần làm:

  1. Tạo một module có tên alu
  2. Thêm các đầu vào: a (4 bit), b (4 bit), select (2 bit)
  3. Thêm đầu ra: result (4 bit, kiểu reg)
  4. Thêm khối always @(*)
  5. Bên trong, thêm câu lệnh case (select)
  6. Thêm bốn trường hợp cho 2'b00, 2'b01, 2'b10, 2'b11
  7. Thêm trường hợp default để đặt result = 0
  8. Kết thúc bằng endcase và endmodule

Tự làm thử

// TODO: Tạo module alu 

  // TODO: Thêm các đầu vào (a, b, select)
  
  // TODO: Thêm đầu ra (result)

  // TODO: Thêm khối lệnh always @(*)
  
  // TODO: Thêm case (select)
  
  // TODO: Thêm case 2'b00: result = a + b;
  
  // TODO: Thêm case 2'b01: result = a - b;
  
  // TODO: Thêm case 2'b10: result = a & b;
  
  // TODO: Thêm case 2'b11: result = a | b;
  
  // TODO: Thêm default: result = 0;
  
  // TODO: Thêm endcase

// TODO: Thêm endmodule

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