Tải bản đầy đủ (.pdf) (20 trang)

báo cáo thiết kế luận lý số lab 3

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 (1.38 MB, 20 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH

LỚP CE118.H12.1
--------------------------------

BÁO CÁO THỰC HÀNH LAB 3
THIẾT KẾ LUẬN LÝ SỐ

NHÓM THỰC HIỆN

9

Trương Hoàng Minh_14520536
Nguyễn Văn Nam_14520559

1


LAB : THIẾT KẾ ALU

I. MỤC TIÊU
Trong bài lab này sinh viên sẽ tham khảo thiết kế một ALU 8-bit trên phần mềm mô phỏng
LogiSim. Sinh viên sẽ thiết kế một ALU 4-bit trên phần mềm LogiSim. Sau đó, thiết kế và
kiểm chứng hoạt động của ALU này trên KIT DE2.

II. NỘI DUNG THỰC HÀNH
Thiết kế bộ ALU 4-bit có sơ đồ khối và các chức năng như bên dưới

Chú ý: Lệnh Add (cộng) và Subtract (trừ) được thực hiện trên 2 số có dấu 4-bit A và B. Kết
quả sẽ được biểu diễn trong số có dấu 4-bit (R). Cờ báo add_sub_overflow sẽ được bật lên 1


khi mạch phát hiện có overflow xảy ra.
Hỏi: tầm biểu diễn của 2 toán hạng A, B và kết quả Add và Subtract ở trên?
Trả lời :Đối với số nhị phần n bit biểu diễn là số có dấu ( theo kiểu bù thì tầm biểu diễn là từ
sẽ từ -2(mũ n – 1) đến +2(mũ n – 1) – 1. Cho nên tầm biểu diễn của A và B R sẽ là từ -8 đến
+7

III. THỰC HIỆN
1. Thiết kế ALU 1-bit


Ta thấy bài toán chia làm phép toán số học và phép toán logic. Với các phép toán
logic. Ta chỉ cần sử dụng các cộng logic 2 bit ngõ vào And, Or, Xor, Not để thực
hiện. Đối với phép toán cộng, trừ, tăng, giảm ta cần tiến hành thiết kế.

2




Bộ cộng 1-bit : Có sẵn trên LogiSim. Thiết kế trên Quartus: Mạch có 3 ngõ vào. 2 ngõ
vào 2 số 1-bit vào 1 ngõ vào số nhớ. 2 ngõ ra 1-bit là tổng S và số nhớ COUT. Khi lắp
thành bộ cộng 4-bit. Ta cho bit nhớ đầu tiên của bộ cộng bằng 0. Số nhớ của các bit
tiếp theo sẽ là bit nhớ (COUT) của phép cộng trước đó.

BẢNG THUỘC TÍNH MẠCH CỘNG

MẠCH CỘNG TRÊN QUARTUS

3





Tương tự bộ trừ 1-bit có sẵn trên LogiSim. Thiết kế bộ trừ 1-bit có chức năng tương
tự bộ cộng đã nêu trên.

BẢNG THUỘC TÍNH MẠCH TRỪ

MẠCH TRỪ THIẾT KẾ TRÊN QUARTUS

4




Thiết kế mạch tăng giảm A: Nhận thấy tăng A đồng nghĩa với việc cộng A với 1.
Giảm A là trừ A với 1. Ta có bộ tăng giảm như sau :

MẠCH TĂNG

MẠCH GIẢM

Mọi chân B sẽ được nối đất tức là A + 0 hoặc A – 0; Cin sẽ được tăng 1. Khi nối thánh mạch
tăng 4-Bit. Đối với bit đầu tiên của mạch tăng giảm, Cin được mặc định là 1. Các đầu vào
Cin của các bit sau được lấy từ Output Cout và Carry của bit trước như các chân trong hình.


Khối MUX 8-1 có sẵn trong LogiSim và được thiết kế trong Quartus. Với 3 tín hiệu
điều khiển là MS1S0. Thực hiện chọn các chức năng như yêu cầu bài ra


=>>>> Kết nối các khối và các cổng. Thiết kế ALU 1 bit .

5


LOGISIM 1 BIT

6


QUARTUS 1 BIT

ĐÓNG GÓI

7


2. Thiết kế ALU-4bit
ALU 4 BIT TRÊN LOGISIM

HOẠT ĐỘNG:
 Chân CD: Cin Decrement : bit nhớ cho phép giảm A. Bit đầu nhớ đầu tiên sẽ được
gán = 0. Các bit nhớ tiếp theo chính bằng bit nhớ ra của phép giảm A là DOC :
DecrementOutCarry
 Tương tự ta có chân CA: CinAdd là bit nhớ phép cộng. hoạt động như chân CD. Bit
nhớ ra tương ứng là AC: AddCarry
 Tương tự là chân CS: CinSub, bit nhớ phép trừ; Tương ứng ngõ ra là SC: SubCarry
 Chân CI: CinInCrement, bit nhớ vào phép tăng A; Tương ứng ngõ ra là IOC:
IncOutCarry;
 Cờ ZeroFlag: Bật lên 1 khi kết quả ngõ ra sau cùng R = 0;

 Cờ OverFlow sẽ được bật khi thực hiện phép cộng hoặc trừ mà kết quả vượt qua giới
hạn của số có dấu 2bit

8


MẠCH ALU 4-BIT TRÊN QUARTUS

MẠCH KHỐI ALU 4BIT

9


IV.

THỰC HIỆN MÔ PHỎNG
Lưu ý: Khi thực hiện mô phỏng trên Kit. Các chân được gán như yêu cầu bài ra

1. Ngõ điều khiển có giá trị 000



Mạch thực hiện chức năng ComplementA có nghĩa là đảo các bit của A. bit 0 chuyển
thành 1. Bit 1 chuyển thành 0. Thực hiện như bên trong hình

KẾT QUẢ MÔ PHỎNG TRÊN KIT
A = 0010. Kết quả trả về là 1101

10



2. Ngõ điều khiển có giá trị 001


Thực hiện chức năng AND từng bit A và B. Bit trả về là 1 nếu cả bit A và B đều là 1

MÔ PHỎNG TRÊN KIT
A = 0010, B = 0011, kết quả trả về là 0010

11


3. Ngõ điều khiển có giá trị 010


Thực hiện chức năng Xor từng bit của A và B. Bit trả về là 1 khi Bit A và B khác
nhau. Giống nhau sẽ trả về 0

MÔ PHỎNG TRÊN KIT
A = 0110, B = 0011. Kết quả trả về là 0101

4. Ngõ điều khiển có giá trị 011


Thực hiện chức năng OR từng bit của A và B. Kết quả chỉ trả về 0 khi cả 2 bit của A
và B đồng thời là 0.

12



MÔ PHỎNG TRÊN KIT
A = 0010, B = 0011. Kết quả trả về là 0011

5. Ngõ điều khiển có giá trị 100


Thực hiện chức năng giảm A xuống 1

MÔ PHỎNG TRÊN KIT
A = 0110. Kết quả trả về là 0101.

13


6. Ngõ điều khiển có giá trị 101


Thực hiện chức năng cộng 2 số có dấu A B ( theo kiểu bù 2). Cờ OverFlow sáng báo
kết quả bị tràn.

14


15


MÔ PHỎNG TRÊN KIT
A=0110(6), B = 1111 (-1). Kết quả là 0101 ( 5)

A = 0110(6), B = 0001(1). Kết quả là 0111(7)


A= 0110(6), B = 0111(7). Kết quả là 1101(sai). Cờ tràn bật lên

16


7. Ngõ điều khiển có giá trị 110


Thực hiện chức năng trừ 2 số có dấu A B ( theo kiểu bù 2). Cờ OverFlow sáng báo
kết quả bị tràn.

17


18


MÔ PHỎNG TRÊN KIT
A= 0011, B = 0001. Kết quả là 0010

A = 0011(2), B = 1001(-7). Kết quả là 1010(sai). Cờ báo tràn (-9)

8. Ngõ điều khiển có giá trị 111


Thực hiện IncrementA. Tăng A lên 1.

19



MÔ PHỎNG TRÊN KIT
A = 0010. Kết quả khi tăng là 0011

A = 1111(-1). Kết quả khi tăng là 0000

END

20



×