lOMoARcPSD| 58457166
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1
BÁO CÁO BÀI TẬP LỚN MÔN
ĐIỆN TỬ SỐ
Bài số 10: Thiết kế 1 khối ALU 4 bit thực hiện các phép tính toán học và logic
Mô hình hệ thống
Thực hiện chức năng logic: AND, OR, NOT, NAND, NOR, XOR, XNOR Thực
hiện các phép toán: cộng, trừ, nhân, chia.
Giảng viên hướng dẫn: TS. TRẦN THỊ THÚY
Nhóm sinh viên thực hiện: ĐOÀN THANH HẢI - B23DCVT131
TRẦN ANH TUẤN - B23DCVT443
HOÀNG LONG TUẤN - B23DCVT437
Hà Nội, tháng 5/2025
lOMoARcPSD| 58457166
MỤC LỤC
Bài 1: Thiết kế mạch thực hiện chức năng logic.
1.1. Khảo sát IC tách kênh/giải mã tiêu biểu 74LS138
1.2. Ứng dụng IC 74138 vào thiết kế mạch thực hiện chức năng logic.
Bài 2: Thiết kế mạch thực hiện chức năng cộng trừ 2 số nhị phân 4 bit.
2.1. Tìm hiểu IC 74LS83
2.2. Thiết kế mạch cộng trừ sử dụng IC 74LS83
Bài 3: Thiết kế mạch thực hiện chức năng nhân 2 số nhị phân 4 bit.
3.1. Nhân hai số nhị phân
3.2. Mạch nhân 2 số nhị phân 4 bit dùng 3 IC 74LS38 thiết kế như hình
Bài 4: Thiết kế mạch thực hiện chức năng chia 2 số nhị phân 4 bit.
4.1. Chia 2 số nhị phân
Bài 5: Tìm hiểu cấu tạo,tính năng của IC 74LS181 và khối ALU 4 bit.
5.1. Mục đích
5.2. Thiết kế ALU
Bài 1: Thiết kế mạch thực hiện chức năng logic: AND, OR, NOT, NAND,
NOR, XOR, XNOR .
1.1. Khảo sát IC tách kênh/giải mã tiêu biểu 74LS138
74LS138 IC MSI giải mã 3 đường sang 8 đường hay tách kênh 1 đường sang 8
đường thường dùng và có hoạt động logic tiêu biểu, nó còn thường được dùng như mạch giải
mã địa chỉ trong các mạch điều khiển và trong máy tính.
Sơ đồ chân và kí hiệu logic như hình dưới đây :
lOMoARcPSD| 58457166
Hình 1: Kí hiệu khối và chân ra của 74LS138
Trong đó
A0, A1, A2 là 3 đường địa chỉ ngõ vào
E1, E2 là các ngõ vào cho phép (tác động mức thấp)
E3 là ngõ vào cho phép tác động mức cao
O0 đến O7 là 8 ngõ ra (tác động ở mức thấp )
Hình 2: Cấu trúc bên trong 74LS138
Để hiểu được hoạt động, chúng ta hãy xem xét bảng chân trị của thiết bị.
Ứng dụng IC 74LS138 vào thiết kế mạch ALU 4 bit thực hiện chức năng logic:
1.2 Ứng dụng IC 74138 vào thiết kế mạch thực hiện chức năng logic.
lOMoARcPSD| 58457166
Khối Logic
Đầu vào lựa chọn chế độ hoạt động
T4
T3
T2
T1
AND
1
0
0
0
OR
1
0
0
1
NOT
1
0
1
0
NAND
1
0
1
1
NOR
1
1
0
0
XOR
1
1
0
1
XNOR
1
1
1
0
Khối logic
Khối tính toán
1
1
1
1
0
x
x
x
Bảng 1: Bảng điều khiển lựa chọn chế độ hoạt động của mạch thực hiện chức năng logic
lOMoARcPSD| 58457166
Hình 4: Mạch thực hiện chức năng logic
Bài 2: Thiết kế mạch thực hiện chức năng cộng trừ 2 số nhị phân 4 bit.
2.1 Tìm hiểu IC 74LS83
74LS83 là một full adder nhị phân 4 bit tốc độ cao. Nó chấp nhận hai từ nhị
phân 4 bit (A1 – A4, B1 – B4) và một đầu vào mang (C0). Nó tạo ra các đầu ra sum nhị
phân (R1 – R4) và đầu ra mang (C4) từ bit quan trọng nhất. Đầu ra của IC luôn ở dạng
TTL giúp dễ dàng làm việc với các thiết bị TTL và vi điều khiển khác. IC 74LS83 có kích
thước nhỏ và tốc độ nhanh nên đáng tin cậy trong mọi loại thiết bị.
Hình 5:Kí hiệu khối và chân ra 74LS83
Trong đó 2 số 4 bit vào là A
4
A
3
A
2
A
1
và B
4
B
3
B
2
B
1
Số nhớ ban đầu là C
0
Vậy tổng ra sẽ là C
4
S
4
S
3
S
2
S
1
, với C
4
là số nhớ của phép cộng
Ta cũng có thể nối chồng IC cộng lại với nhau để cho số bit gấp đôi. Khi đó bit MSB (C
4
) của
tầng đầu được nối tới ngõ vào nhớ ban đầu (C
0
) của tầng sau.
lOMoARcPSD| 58457166
Hình 6: Mạch logic của 74LS83
Bảng 2: Bảng sự thật của mạch cộng 4 bit 74LS83:
2.2 Thiết kế mạch cộng trừ sử dụng IC 74LS83 Mạch cộng 4 bit:
lOMoARcPSD| 58457166
Sơ đồ 1: mạch cộng 4 bit
Đây là một mạch cộng song song vì các hàng được cộng cùng một lúc tuy nhiên như cấu trúc
mạch trên thì các bit ra của tổng không phải đồng thời bởi các phép cộng các bit cao thì
chậm hơn do phải chờ bit nhớ ở phép cộng trước đưa tới. Tức đã trì hoãn làm giảm tính đồng
bộ của mạch. Nếu thêm vào mạch cho phép cung cấp sẵn các bit nhớ để phục vụ cho các phép cộng
các hàng được cùng lúc thì sẽ khắc phục được điểm này. Với công nghệ tích hợp cao, việc thêm
mạch cung cấp sẵn các bit nhớ trở nên dễ dàng hơn khi đó mạch trở thành mạch cộng có số nhớ nhìn
trước.
Mạch trừ 4 bit:
Mạch trừ 4 bit song song Trừ 4 bit nối tiếp
Sơ đồ 2: mạch trừ 4 bit
Mạch cộng trừ kết hợp
Bây giờ nếu thêm vào một số cổng logic cần thiết ta đã có 1 mạch có thể cộng
hay trừ tùy theo ngõ đầu vào điều khiển CT
Khi CT = 0, các cổng XOR có 1 ngõ ở thấp nên cho số B qua không bị đảo, tức
là mạch thực hiện phép cộng 1, các cổng XOR có 1 ngõ ở cao nên hoạt
động như 1 cổng NOT, số B bị đảo, khi này mạch thực hiện phép cộng A + (-B) tức
là phép trừ.
Co3 là bit LSB của tổng được vòng trở lại (qua cổng AND) về Ci0; sẽ cho
phép cộng nhiều bit.
lOMoARcPSD| 58457166
Sơ đồ 3: Mạch cộng trừ dùng bù 1
Ngoài cách dùng bù 1, ta cũng có thể dùng bù 2 (lấy bù 1 rồi cộng thêm 1) để thực
hiện phép toán trừ nhị phân kể cả số có dấu. Cách này được sử dụng phổ biến ở VXL
máy tính.
Hình dưới là mạch cộng trừ 2 số 4 bit dùng bù 2. Để ý là mạch khá giống như nó ở
cách dùng bù 1 nhưng bit nhớ ra cuối cùng không cần đem về tầng đầu. Tổng hay hiệu ra
ở dạng bù 2, muốn lấy đúng kết quả thì phải chuyển trở lại.
Khi đó mạch cộng trừ nhị phân 4 bit dùng bù 2 sẽ như sau:
lOMoARcPSD| 58457166
Downloaded by Lam Tam (thudong11@gmail.com)
Sơ đồ 4: Mạch cộng trừ dùng bù 2
Ta có mạch cộng trừ 2 số 4 bit được mô phỏng bởi proteus như hình vẽ:
Hình 7: mạch thiết kế cộng trừ 4 bit
M
Phép Tính
M=0
Cộng
M=1
Trừ
Bảng 3: Bảng điều khiển tính năng cộng trừ:
9
Ví dụ: Cộng: 11(1011) + 5(0101) = 16(10000)
lOMoARcPSD| 58457166
Trừ: 11(1011) - 5(0101) = 6(0110)
Bài 3: Thiết kế mạch thực hiện chức năng nhân 2 số nhị phân 4 bit.
3.1. Nhân hai số nhị phân
Phép tính nhân trong hệ nhị phân cũng tương tự như phương pháp làm trong hệ thập
phân. Hai số A và B được nhân với nhau bởi những tích số của các kí số 0 và 1 của A và B:
với mỗi con số ở B, tích của nó với số một con số trong A được tính và viết xuống một hàng
mới, mỗi hàng mới phải chuyển dịch vị trí sang bên trái 1 bit. Tổng của các tích cục bộ này
cho ta kết quả tích số cuối cùng.
Ví dụ: 9 x 6 = 54 (1001 x 110 = 110110)
Để dễ hiểu, bạn xem 2 hình dưới đây, hình thứ nhất biểu diễn cách nhân 2 số thập
phân và hình thứ 2 là cách nhân 2 số nhị phân.
VD: Nhân 2 số
1101(13) x 0110(6) =01001110(78)
lOMoARcPSD| 58457166
3.2 Mạch nhân 2 số nhị phân 4 bit phải dùng 3 IC 74LS38 được thiết kế như hình sau:
lOMoARcPSD| 58457166
Hình 8: Mạch nhân 2 số 4 bit
Bài 4: Thiết kế mạch thực hiện chức năng chia 2 số nhị phân 4 bit.
4.1 Chia 2 số nhị phân
Phép chia số nhị phân tương đối phức tạp hơn phép cộng, trừ nhân. Cách chia số nhị
phân cũng giống như chia 2 số thập phân, do đó các bạn cần nắm vững cách chia trên số thập phân,
đồng thời cần nắm vững cách trừ 2 số nhị phân. Đầu tiên hãy xem hình 1 để nhớ lại cách chia 2 số thập
phân, sau đó xem hình 2 các bạn sẽ hiểu cách chia số nhị phân.
lOMoARcPSD| 58457166
lOMoARcPSD| 58457166
Bài 5: Thiết kế khối ALU 4 bit
5.1. Tìm hiểu cấu tạo, chức năng của IC 74LS181
Mục đích:
Thực hiện chức năng logic: AND, OR, NOT, NAND, NOR, XOR, XNOR.
Độ dài các toán hạng là 4-bit.
Các ngõ nhập function-select gồm có: M, S0, S1, S2, S3.
Các tác vụ ALU thực hiện được cho trong Bảng 4:
S3
S2
S1
S4
M
Chức năng
Tác vụ
H
H
L
H
H
A.B
AND
H
H
H
L
H
A+B
OR
L
L
L
L
H
~A
NOT
L
H
L
H
H
~B
NOT
lOMoARcPSD| 58457166
L
H
L
L
H
~(A.B)
NAND
L
L
L
H
H
~(A+B)
NOR
L
H
H
L
H
A(+)B
XOR
H
L
L
H
H
~[A(+)B]
XNOR
Bảng 4: Bảng chức năng của ALU cần Thiết kế
Sơ đồ 5: Sơ đồ khối của một ALU 4 bit
5.2 Thiết kế ALU
Ta dùng nguyên tắc "chia để trị" để thiết kế ALU. Các này module hoá bản thiết kế thành các
phần nhỏ hơn, dễ quản lý hơn và có thể tái sử dụng. Cách tiếp cần này giúp mọi thứ có tính hệ thống
hơn và có thể phát triển những hệ thống phức tạp.
ALU 4-bit là 4 ALU 1-bit
Nếu xét về cấu trúc, ta có thể xem một ALU n-bit được cấu thành từ n ALU 1-bit. Như vậy để
thiết kế một ALU 4-bit, ta chỉ cần thiết kế một ALU 1-bit. Sau đó, có thể ghép nối 4 ALU 1-bit này lại
với nhau để tạo thành ALU 4-bit. Mỗi ALU 1-bit như vậy được gọi là một bit-slice. Cách này có tính
sử dụng lại rất cao và được dùng khá nhiều trong kỹ thuật thiết kế phần cứng, chẳng hạn thiết kế bộ
nhớ.
Để thiết kế một bit-slice, có nhiều cách khác nhau. Một cách có thể là viết bảng sự thật để thiết
kế. Bảng này có 8 ngõ nhập (M, S3 , S2 , S1, S0, C0, Ai, Bi) và hai ngõ xuất là Fi và Ci+1. Cách này
nếu viết bằng tay thì khá công phu, nhưng hiệu quả.
ALU 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:
lOMoARcPSD| 58457166
Sơ đồ 6: Sơ đồ khối của một ALU phân theo chức năng
Những việc cần làm:
Thiết kế MUX Những việc sau đây nên làm trước:
Thiết kế MUX: bộ phận này được dùng nhiều và nên được thiết kế sẵn. Sau khi thiết kế,
ghi lại chi tiết vào bản báo cáo thí nghiệm
Thiết kế bộ phận xử lý logic: có thể lựa một trong các cách sau, tuy nhiên phải nêu được
nguyên nhân tại sao lại chọn cách đó. Sử dụng các cổng logic và MUX 4:1
Thiết kế bộ phận xử lý toán học: vẫn có thể dùng nhiều cách khác nhau. Cách khá hay là
dùng lại các module thiết kê trước đây như bộ Full Adder. Khi đó chỉ cần quan tâm đến xử lý đầu vào
dùng cho bộ cộng này. Như hình 3, ta chỉ cần thiết kế thêm hai thành phần A logic và B logic. Hai
hành phần này có chức năng đưa ra các tín hiệu thích hợp tùy thuộc tín hiệu nhập S1 và S0. Để thiết
kế hai thành phần này, cách thông dụng là dùng bảng sự thật, sau đó dùng bảng Karnaugh để tối ưu
hóa hàm kết quả, và hiện thực trong Verilog với dạng instance các cổng.
Sơ đồ 7: Sơ đồ khối của bộ xử lý toán học
S1
S0
Ai
Xi(A logic)
S1
S2
Bi
Yi(B logic)
0
0
0
.
0
0
0
.
lOMoARcPSD| 58457166
0
0
1
.
0
0
1
.
0
1
0
.
0
1
0
.
0
1
1
.
0
1
1
.
1
0
0
.
1
0
0
.
1
0
1
.
1
0
1
.
1
1
0
.
1
1
0
.
1
1
1
.
1
1
1
.
Bảng 5: Bảng sự thật cho hai khối A logic và B logic
ALU 74LS181
A
0
A
3
: dữ liệu nhị phân 4 bit vào (A = A
3
A
2
A
1
A
0
)
B
0
– B
3
: dữ liệu nhị phân 4 bit vào (B= B
3
B
2
B
1
B
0
)
C
YN
: số nhớ ban đầu vào (tác động ở mức thấp)
S
0
– S
3
: Mã số chọn (S = S
3
S
2
S
1
S
0
) để chọn chức năng của ALU.
M điều khiển kiểu (chế độ) hoạt động logic (M =1) hay số học (M = 0).
Q
0
– Q
3
: dữ liệu nhị phân 4 bit ra tác động ở thấp (Q = Q
3
Q
2
Q
1
Q
0
).
C
YN + 4
số nhớ ra (tác động thấp). Ở phép trừ nó chỉ dấu của kết quả :
Logic 0 chỉ kết quả dương.
Logic 1 chỉ kết quả âm ở dạng số bù 2. Ngõ số nhớ vào Cn và ngõ số
nhớ ra CYN+4 cho phép nối chồng nhiều IC 74LS181.
A = B : logic 1 ngõ vào này chỉ A = B, logic 0 chỉ A ≠ B.
lOMoARcPSD| 58457166
G (carry generate output) và P (carry propagate input) : hai ngõ này được dùng khi
nối chồng các IC 74LS181.
Bảng chức năng hoạt động của IC 74LS181
Hình 10: ALU 74LS181
Đầu vào lựa chọn chế độ hoạt động
lOMoARcPSD| 58457166
S3
S2
S1
S0
Cn
M
Khối
Logic
AND
1
0
1
1
x
1
OR
1
1
1
0
x
1
NOT
0
0
0
0
x
1
NAND
0
1
0
0
x
1
NOR
0
1
1
1
x
1
XOR
0
1
1
0
x
1
XNOR
1
0
0
1
x
1
Khối số
học
Cộng
1
0
0
1
1
0
Trừ(A-B trừ
1)
0
1
1
0
0
0
Nhân
x
x
x
x
x
x
Chia
x
x
x
x
x
x
Bảng 6: Bảng điều khiển chế độ hoạt động của ALU 74181
lOMoARcPSD| 58457166
Hình 11: Cấu tạo mạch logic của ALU 74181.
BỔ SUNG HOÀN THIỆN MẠCH:
MẠCH CHÍNH

Preview text:

lOMoAR cPSD| 58457166
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG 1
BÁO CÁO BÀI TẬP LỚN MÔN ĐIỆN TỬ SỐ
Bài số 10: Thiết kế 1 khối ALU 4 bit thực hiện các phép tính toán học và logic
Mô hình hệ thống
Thực hiện chức năng logic: AND, OR, NOT, NAND, NOR, XOR, XNOR Thực
hiện các phép toán: cộng, trừ, nhân, chia.
Giảng viên hướng dẫn: TS. TRẦN THỊ THÚY HÀ
Nhóm sinh viên thực hiện: ĐOÀN THANH HẢI - B23DCVT131
TRẦN ANH TUẤN - B23DCVT443
HOÀNG LONG TUẤN - B23DCVT437
Hà Nội, tháng 5/2025 lOMoAR cPSD| 58457166 MỤC LỤC
Bài 1: Thiết kế mạch thực hiện chức năng logic.
1.1. Khảo sát IC tách kênh/giải mã tiêu biểu 74LS138
1.2. Ứng dụng IC 74138 vào thiết kế mạch thực hiện chức năng logic.
Bài 2: Thiết kế mạch thực hiện chức năng cộng trừ 2 số nhị phân 4 bit.
2.1. Tìm hiểu IC 74LS83
2.2. Thiết kế mạch cộng trừ sử dụng IC 74LS83
Bài 3: Thiết kế mạch thực hiện chức năng nhân 2 số nhị phân 4 bit.
3.1. Nhân hai số nhị phân
3.2. Mạch nhân 2 số nhị phân 4 bit dùng 3 IC 74LS38 thiết kế như hình
Bài 4: Thiết kế mạch thực hiện chức năng chia 2 số nhị phân 4 bit.
4.1. Chia 2 số nhị phân
Bài 5: Tìm hiểu cấu tạo,tính năng của IC 74LS181 và khối ALU 4 bit.
5.1. Mục đích
5.2. Thiết kế ALU
Bài 1: Thiết kế mạch thực hiện chức năng logic: AND, OR, NOT, NAND,
NOR, XOR, XNOR .
1.1. Khảo sát IC tách kênh/giải mã tiêu biểu 74LS138
74LS138 IC MSI giải mã 3 đường sang 8 đường hay tách kênh 1 đường sang 8
đường thường dùng và có hoạt động logic tiêu biểu, nó còn thường được dùng như mạch giải
mã địa chỉ trong các mạch điều khiển và trong máy tính.
● Sơ đồ chân và kí hiệu logic như hình dưới đây : lOMoAR cPSD| 58457166
Hình 1: Kí hiệu khối và chân ra của 74LS138 ● Trong đó
➢ A0, A1, A2 là 3 đường địa chỉ ngõ vào
➢ E1, E2 là các ngõ vào cho phép (tác động mức thấp)
➢ E3 là ngõ vào cho phép tác động mức cao
➢ O0 đến O7 là 8 ngõ ra (tác động ở mức thấp )
Hình 2: Cấu trúc bên trong 74LS138
Để hiểu được hoạt động, chúng ta hãy xem xét bảng chân trị của thiết bị.
Ứng dụng IC 74LS138 vào thiết kế mạch ALU 4 bit thực hiện chức năng logic:
1.2 Ứng dụng IC 74138 vào thiết kế mạch thực hiện chức năng logic. lOMoAR cPSD| 58457166 Khối Logic
Đầu vào lựa chọn chế độ hoạt động T4 T3 T2 T1 AND 1 0 0 0 OR 1 0 0 1 NOT 1 0 1 0 NAND 1 0 1 1 NOR 1 1 0 0 XOR 1 1 0 1 XNOR 1 1 1 0 Khối logic 1 1 1 1 Khối tính toán 0 x x x
Bảng 1: Bảng điều khiển lựa chọn chế độ hoạt động của mạch thực hiện chức năng logic lOMoAR cPSD| 58457166
Hình 4: Mạch thực hiện chức năng logic
Bài 2: Thiết kế mạch thực hiện chức năng cộng trừ 2 số nhị phân 4 bit. 2.1 Tìm hiểu IC 74LS83
74LS83 là một full adder nhị phân 4 bit tốc độ cao. Nó chấp nhận hai từ nhị
phân 4 bit (A1 – A4, B1 – B4) và một đầu vào mang (C0). Nó tạo ra các đầu ra sum nhị
phân (R1 – R4) và đầu ra mang (C4) từ bit quan trọng nhất. Đầu ra của IC luôn ở dạng
TTL giúp dễ dàng làm việc với các thiết bị TTL và vi điều khiển khác. IC 74LS83 có kích
thước nhỏ và tốc độ nhanh nên đáng tin cậy trong mọi loại thiết bị.
Hình 5:Kí hiệu khối và chân ra 74LS83
Trong đó 2 số 4 bit vào là A4A3A2A1 và B4B3B2B1 Số nhớ ban đầu là C0
Vậy tổng ra sẽ là C4S4S3S2S1, với C4 là số nhớ của phép cộng
Ta cũng có thể nối chồng IC cộng lại với nhau để cho số bit gấp đôi. Khi đó bit MSB (C4) của
tầng đầu được nối tới ngõ vào nhớ ban đầu (C0) của tầng sau. lOMoAR cPSD| 58457166
Hình 6: Mạch logic của 74LS83
Bảng 2: Bảng sự thật của mạch cộng 4 bit 74LS83:
2.2 Thiết kế mạch cộng trừ sử dụng IC 74LS83 Mạch cộng 4 bit: lOMoAR cPSD| 58457166
Sơ đồ 1: mạch cộng 4 bit
Đây là một mạch cộng song song vì các hàng được cộng cùng một lúc tuy nhiên như cấu trúc
mạch ở trên thì các bit ra của tổng không phải là đồng thời bởi vì các phép cộng ở các bit cao thì
chậm hơn do phải chờ bit nhớ ở phép cộng trước đưa tới. Tức là đã có trì hoãn làm giảm tính đồng
bộ của mạch. Nếu thêm vào mạch cho phép cung cấp sẵn các bit nhớ để phục vụ cho các phép cộng
ở các hàng được cùng lúc thì sẽ khắc phục được điểm này. Với công nghệ tích hợp cao, việc thêm
mạch cung cấp sẵn các bit nhớ trở nên dễ dàng hơn khi đó mạch trở thành mạch cộng có số nhớ nhìn trước. Mạch trừ 4 bit:
Mạch trừ 4 bit song song
Trừ 4 bit nối tiếp
Sơ đồ 2: mạch trừ 4 bit
● Mạch cộng trừ kết hợp
➢ Bây giờ nếu thêm vào một số cổng logic cần thiết ta đã có 1 mạch có thể cộng
hay trừ tùy theo ngõ đầu vào điều khiển CT
➢ Khi CT = 0, các cổng XOR có 1 ngõ ở thấp nên cho số B qua không bị đảo, tức
là mạch thực hiện phép cộng 1, các cổng XOR có 1 ngõ ở cao nên hoạt
động như 1 cổng NOT, số B bị đảo, khi này mạch thực hiện phép cộng A + (-B) tức là phép trừ.
➢ Co3 là bit LSB của tổng được vòng trở lại (qua cổng AND) về Ci0; sẽ cho phép cộng nhiều bit. lOMoAR cPSD| 58457166
Sơ đồ 3: Mạch cộng trừ dùng bù 1
Ngoài cách dùng bù 1, ta cũng có thể dùng bù 2 (lấy bù 1 rồi cộng thêm 1) để thực
hiện phép toán trừ nhị phân kể cả số có dấu. Cách này được sử dụng phổ biến ở VXL và máy tính.
Hình dưới là mạch cộng trừ 2 số 4 bit dùng bù 2. Để ý là mạch khá giống như nó ở
cách dùng bù 1 nhưng bit nhớ ra cuối cùng không cần đem về tầng đầu. Tổng hay hiệu ra
ở dạng bù 2, muốn lấy đúng kết quả thì phải chuyển trở lại.
Khi đó mạch cộng trừ nhị phân 4 bit dùng bù 2 sẽ như sau: lOMoAR cPSD| 58457166
Sơ đồ 4: Mạch cộng trừ dùng bù 2
Ta có mạch cộng trừ 2 số 4 bit được mô phỏng bởi proteus như hình vẽ:
Hình 7: mạch thiết kế cộng trừ 4 bit M Phép Tính Biểu Thức M=0 Cộng
A4A3A2A1+B4B3B2B1=C4S4S3S2S1 M=1 Trừ
A4A3A2A1- B4B3B2B1=S4S3S2S1
Bảng 3: Bảng điều khiển tính năng cộng trừ: 9
Ví dụ: Cộng: 11(1011) + 5(0101) = 16(10000) Downloaded by Lam Tam (thudong11@gmail.com) lOMoAR cPSD| 58457166
Trừ: 11(1011) - 5(0101) = 6(0110)
Bài 3: Thiết kế mạch thực hiện chức năng nhân 2 số nhị phân 4 bit.
3.1. Nhân hai số nhị phân
Phép tính nhân trong hệ nhị phân cũng tương tự như phương pháp làm trong hệ thập
phân. Hai số A và B được nhân với nhau bởi những tích số của các kí số 0 và 1 của A và B:
với mỗi con số ở B, tích của nó với số một con số trong A được tính và viết xuống một hàng
mới, mỗi hàng mới phải chuyển dịch vị trí sang bên trái 1 bit. Tổng của các tích cục bộ này
cho ta kết quả tích số cuối cùng.
Ví dụ: 9 x 6 = 54 (1001 x 110 = 110110)
Để dễ hiểu, bạn xem 2 hình dưới đây, hình thứ nhất biểu diễn cách nhân 2 số thập
phân và hình thứ 2 là cách nhân 2 số nhị phân. VD: Nhân 2 số
1101(13) x 0110(6) =01001110(78) lOMoAR cPSD| 58457166
3.2 Mạch nhân 2 số nhị phân 4 bit phải dùng 3 IC 74LS38 được thiết kế như hình sau: lOMoAR cPSD| 58457166
Hình 8: Mạch nhân 2 số 4 bit
Bài 4: Thiết kế mạch thực hiện chức năng chia 2 số nhị phân 4 bit.
4.1 Chia 2 số nhị phân
Phép chia số nhị phân tương đối phức tạp hơn phép cộng, trừ và nhân. Cách chia số nhị
phân cũng giống như chia 2 số thập phân, do đó các bạn cần nắm vững cách chia trên số thập phân,
đồng thời cần nắm vững cách trừ 2 số nhị phân. Đầu tiên hãy xem hình 1 để nhớ lại cách chia 2 số thập
phân, sau đó xem hình 2 các bạn sẽ hiểu cách chia số nhị phân. lOMoAR cPSD| 58457166 lOMoAR cPSD| 58457166
Bài 5: Thiết kế khối ALU 4 bit
5.1. Tìm hiểu cấu tạo, chức năng của IC 74LS181 Mục đích:
Thực hiện chức năng logic: AND, OR, NOT, NAND, NOR, XOR, XNOR. ●
Độ dài các toán hạng là 4-bit. ●
Các ngõ nhập function-select gồm có: M, S0, S1, S2, S3. ●
Các tác vụ ALU thực hiện được cho trong Bảng 4: S3 S2 S1 S4 M Chức năng Tác vụ H H L H H A.B AND H H H L H A+B OR L L L L H ~A NOT L H L H H ~B NOT lOMoAR cPSD| 58457166 L H L L H ~(A.B) NAND L L L H H ~(A+B) NOR L H H L H A(+)B XOR H L L H H ~[A(+)B] XNOR
Bảng 4: Bảng chức năng của ALU cần Thiết kế
Sơ đồ 5: Sơ đồ khối của một ALU 4 bit 5.2 Thiết kế ALU
Ta dùng nguyên tắc "chia để trị" để thiết kế ALU. Các này module hoá bản thiết kế thành các
phần nhỏ hơn, dễ quản lý hơn và có thể tái sử dụng. Cách tiếp cần này giúp mọi thứ có tính hệ thống
hơn và có thể phát triển những hệ thống phức tạp.
ALU 4-bit là 4 ALU 1-bit
Nếu xét về cấu trúc, ta có thể xem một ALU n-bit được cấu thành từ n ALU 1-bit. Như vậy để
thiết kế một ALU 4-bit, ta chỉ cần thiết kế một ALU 1-bit. Sau đó, có thể ghép nối 4 ALU 1-bit này lại
với nhau để tạo thành ALU 4-bit. Mỗi ALU 1-bit như vậy được gọi là một bit-slice. Cách này có tính
sử dụng lại rất cao và được dùng khá nhiều trong kỹ thuật thiết kế phần cứng, chẳng hạn thiết kế bộ nhớ.
Để thiết kế một bit-slice, có nhiều cách khác nhau. Một cách có thể là viết bảng sự thật để thiết
kế. Bảng này có 8 ngõ nhập (M, S3 , S2 , S1, S0, C0, Ai, Bi) và hai ngõ xuất là Fi và Ci+1. Cách này
nếu viết bằng tay thì khá công phu, nhưng hiệu quả.
ALU 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: lOMoAR cPSD| 58457166
Sơ đồ 6: Sơ đồ khối của một ALU phân theo chức năng Những việc cần làm:
Thiết kế MUX Những việc sau đây nên làm trước: ●
Thiết kế MUX: bộ phận này được dùng nhiều và nên được thiết kế sẵn. Sau khi thiết kế,
ghi lại chi tiết vào bản báo cáo thí nghiệm ●
Thiết kế bộ phận xử lý logic: có thể lựa một trong các cách sau, tuy nhiên phải nêu được
nguyên nhân tại sao lại chọn cách đó. Sử dụng các cổng logic và MUX 4:1 ●
Thiết kế bộ phận xử lý toán học: vẫn có thể dùng nhiều cách khác nhau. Cách khá hay là
dùng lại các module thiết kê trước đây như bộ Full Adder. Khi đó chỉ cần quan tâm đến xử lý đầu vào
dùng cho bộ cộng này. Như hình 3, ta chỉ cần thiết kế thêm hai thành phần A logic và B logic. Hai
hành phần này có chức năng đưa ra các tín hiệu thích hợp tùy thuộc tín hiệu nhập S1 và S0. Để thiết
kế hai thành phần này, cách thông dụng là dùng bảng sự thật, sau đó dùng bảng Karnaugh để tối ưu
hóa hàm kết quả, và hiện thực trong Verilog với dạng instance các cổng.
Sơ đồ 7: Sơ đồ khối của bộ xử lý toán học S1 S0 Ai Xi(A logic) S1 S2 Bi Yi(B logic) 0 0 0 . 0 0 0 . lOMoAR cPSD| 58457166 0 0 1 . 0 0 1 . 0 1 0 . 0 1 0 . 0 1 1 . 0 1 1 . 1 0 0 . 1 0 0 . 1 0 1 . 1 0 1 . 1 1 0 . 1 1 0 . 1 1 1 . 1 1 1 .
Bảng 5: Bảng sự thật cho hai khối A logic và B logic ALU 74LS181
A 0 – A3 : dữ liệu nhị phân 4 bit vào (A = A3A2A1A0) ●
B0 – B3 : dữ liệu nhị phân 4 bit vào (B= B3B2B1B0) ●
CYN : số nhớ ban đầu vào (tác động ở mức thấp) ●
S0 – S3 : Mã số chọn (S = S3S2S1S0) để chọn chức năng của ALU. ●
M điều khiển kiểu (chế độ) hoạt động logic (M =1) hay số học (M = 0). ●
Q0 – Q3 : dữ liệu nhị phân 4 bit ra tác động ở thấp (Q = Q3Q2Q1Q0). ●
CYN + 4 số nhớ ra (tác động thấp). Ở phép trừ nó chỉ dấu của kết quả :
★ Logic 0 chỉ kết quả dương.
★ Logic 1 chỉ kết quả âm ở dạng số bù 2. ●
Ngõ số nhớ vào Cn và ngõ số
nhớ ra CYN+4 cho phép nối chồng nhiều IC 74LS181. ●
A = B : logic 1 ở ngõ vào này chỉ A = B, logic 0 chỉ A ≠ B. lOMoAR cPSD| 58457166 ●
G (carry generate output) và P (carry propagate input) : hai ngõ này được dùng khi
nối chồng các IC 74LS181.
Bảng chức năng hoạt động của IC 74LS181 Hình 10: ALU 74LS181
Đầu vào lựa chọn chế độ hoạt động lOMoAR cPSD| 58457166 S3 S2 S1 S0 Cn M AND 1 0 1 1 x 1 OR 1 1 1 0 x 1 NOT 0 0 0 0 x 1 NAND 0 1 0 0 x 1 NOR 0 1 1 1 x 1 XOR 0 1 1 0 x 1 Khối Logic XNOR 1 0 0 1 x 1 Cộng 1 0 0 1 1 0 Trừ(A-B trừ 1) 0 1 1 0 0 0 Nhân x x x x x x Khối số học Chia x x x x x x
Bảng 6: Bảng điều khiển chế độ hoạt động của ALU 74181 lOMoAR cPSD| 58457166
Hình 11: Cấu tạo mạch logic của ALU 74181.
BỔ SUNG HOÀN THIỆN MẠCH:MẠCH CHÍNH