Đang tải... (xem toàn văn)
Thiết kế bộ ALU Bộ xử lý logic về toán học (ALU - Arithmetic and Logic Unit) là một mạch tổ hợp để xử lý các tác vụ về logic và toán học dựa trên hai số hạng. Các tác vụ cho ALU thực hiện được điều khiển bằng các ngõ nhập function-select. Mục đích của bài thí nghiệm này là thiết kế một ALU đơn giản như sau: - Độ dài các toán hạng là 4-bit. - Các ngõ nhập function-select gồm có: M, S0 và S1. - Các tác vụ ALU thực hiện được cho trong bảng 1
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
Thiết kế vi xử lýLAB 1 : Thiết kế bộ ALU
SVTH:
Tp HCM, tháng 5 năm 2022
Trang 2I – Lý thuy t ho t đ ng c a m chết hoạt động của mạchạt động của mạchộng của mạchủa mạchạt động của mạch
Bộ xử lý logic về toán học (ALU - Arithmetic and Logic Unit) là một mạch tổ hợp để
xử lý các tác vụ về logic và toán học dựa trên hai số hạng Các tác vụ cho ALU thực
hiện được điều khiển bằng các ngõ nhập function-select Mục đích của bài thí nghiệm
này là thiết kế một ALU đơn giản như sau:- Độ dài các toán hạng là 4-bit.
- Các ngõ nhập function-select gồm có: M, S0 và S1.- Các tác vụ ALU thực hiện được cho trong bảng 1
Sơ đồ khối của ALU
Trang 3ALU gồm A và L
Nếu xét về chức năng, ta có thể phân ALU thành hai phần chuyên biệt, một về logic và một về toán học Sau đó, có thể dùng một MUX 2:1 để kết hợp hai khối này Cách này có ưu điểm là thiết kế từng khối nhỏ sẽ dễ hơn so với thiết kế một bit-slice, vốn cần thiết kế một ALU hoàn chỉnh Hình sau thể hiện sơ đồ khối của một bit-slice ALU thực hiện theo ý tưởng này
III – Code design
module alu(A,B,Op,alu_out);input[3:0]A,B;
output reg[3:0]alu_out;always@(*)
begin case(Op)
3'b000:alu_out=0; 3'b001:alu_out=A+B; 3'b010:alu_out=A-B; 3'b011:alu_out=A&B; 3'b100:alu_out=A|B; 3'b101:alu_out=~A; 3'b110:alu_out=~B; 3'b111:alu_out=0; default:alu_out=0; endcase
Trang 4module TB();reg[3:0]A,B;reg[3:0]Op;wire[3:0]alu_out;alu a1(A,B,Op,alu_out);initial
IV – Test chương trình và dạng sóng ngõ rang trình và d ng sóng ngõ raạt động của mạch
Chạy đúng với kết quả