Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (258.41 KB, 4 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>SVTH: </b>
<b>I – 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>
Bợ xử lý logic về tố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 tố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
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>ALU gồm A và L</b>
Nếu xét về chức năng, ta có thể phân ALU thành hai phần chun biệt, mợt về logic và mợt về tố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 hồ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
<b>III – Code design</b>
<small>module alu(A,B,Op,alu_out);input[3:0]A,B;</small>
<small>output reg[3:0]alu_out;always@(*)</small>
<small>begin case(Op)</small>
<small> 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</small>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><small>module TB();reg[3:0]A,B;reg[3:0]Op;wire[3:0]alu_out;alu a1(A,B,Op,alu_out);initial</small>
<b>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</b>
<small>Chạy đúng với kết quả </small>
</div>