HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA ĐIỆN TỬ VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN MÔN
ĐIỆN TỬ SỐ
Bài số 11: 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: ThS. TRẦN THÚY HÀ
Nhóm Sinh viên thực hiện: TRỊNH CÔNG THỨC
NGUYỄN VĂN HUY
MAI XUÂN DUY
NGUYỄN VIỆT TIẾN
Hà Nội, tháng 5/2012
1
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
3.2
Nhân hai số nhị phân
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
2
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 là 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 :
Hình 1: Kí hiệu khối và chân ra của 74LS138
Trong đó
o
A0, A1, A2 là 3 đường địa chỉ ngõ vào
o
E1, E2 là các ngõ vào cho phép (tác động mức thấp)
o
E3 là ngõ vào cho phép tác động mức cao
o
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
1.2 Ứng dụng IC 74138 vào thiết kế mạch thực hiện chức năng logic.
3
A1B1
A2B2
A3B3
A4B4
0
0
0
1
1
0
1
1
U86
U93
U94
U95
OR
OR
OR
OR
U87
U90
U91
U92
AND
AND
AND
AND
IC 74LS138
U88
T1 1
T2 0
T3 0
1
2
3
6
4
5
T4 1
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
E1
E2
E3
15
14
13
12
11
10
9
7
U89
NOT
74LS138
0
1
1
1
OR
Hình 3: mạch thực hiện chức năng logic OR sử dụng IC 74138
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
4
1
1
0
1
74LS138
6
4
5
A
B
C
E1
E2
E3
74LS138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
U34
U35
U36
U37
U43
U42
U44
U45
U50
U51
U52
U53
NOT
NOT
NOT
NOT
NAND
NAND
NAND
NAND
NOR_2
NOR_2
NOR_2
NOR_2
U58
U59
U60
U61
XOR
XOR
XOR
XOR
12
OR
13
U25
OR
8
U20
OR
9
U19
OR
5
U18
AND
6
U29
AND
U66:A
U66:B
U66:C
U66:D
4077
4077
4077
4077
U71
U72
11
1
2
3
U28
AND
10
U17
U27
AND
4
T1
T2
T3
1
0
0
U26
3
IC giai ma dia chi
1
0
1
0
1
2
A1
A2
A3
A4
B1
B2
B3
B4
NOT
U73
NOT
U74
NOT
U75
NOT
U76
NOT
U77
NOT
T4
1
M
1
NOT
U30
U31
U32
U33
U16
U15
U14
U13
U38
U39
U40
U41
U46
U47
U48
U49
U54
U55
U56
U57
U62
U63
U64
U65
U67
U68
U69
U70
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
0
0
0
0
XOR
0
0
0
0
NOR
0
0
NAND
0
0
0
0
0
NOT
0
0
0
0
0
OR
1
0
1
1
0
0
0
0
AND
XNOR
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
Để thiết kế mạch thực hiện chức năng cộng trừ ta sử dụng IC 74LS83
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 (C 4) của tầng
đầu được nối tới ngõ vào nhớ ban đầu (C0) của tầng sau.
5
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:
Sơ đồ 1: mạch cộng 4 bít
6
Đâ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 bít
Mạch cộng trừ kết hợp
7
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ừ tuỳ theo ngõ 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
Khi CT = 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.
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 bên 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 :
sơ đồ 4: Mạch cộng trừ dùng bù 2
Ta có mạch cộng trừ 2 số 4 bít được mô phỏng bởi proteus như hình vẽ:
8
U77
1
Dieu Khien Cong (M=0) Va Tru (M=1)
M
NOT
0
U30
U31
U32
U33
U16
U15
AND
AND
AND
AND
AND
AND
0
0
0
0
0
0
AND
OR
Ket Qua Cong / Tru
U79
74LS38
0
1
1
1
1
S1S2S3S4C4
U78
14
C4
C0
B4
B3
B2
B1
15
2
6
9
S4
S3
S2
S1
A4
A3
A2
A1
13
U80
XOR
16
4
7
11
U81
XOR
1
3
8
10
U82
XOR
74LS83
XOR
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ảng3: Bảng điều khiển tính năng cộng trừ:
Ví dụ:
Cộng: 11(1011) + 5(0101) = 16(10000)
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.
9
Nhân 2 số thập phân
Nhân 2 số nhị phân
10
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:
B4B3B2B1
A4A3A2A1
P1
U24
?
?
?
?
?
?
?
?
P8P7
U83
AND
U84
AND
U1
14
C4
U85
C0
B4
B3
B2
B1
15
2
6
9
S4
S3
S2
S1
A4
A3
A2
A1
13
16
4
7
11
AND
AND
1
3
8
10
U23
U22
74LS83
AND
U21
AND
U2
14
C4
C0
B4
B3
B2
B1
15
2
6
9
S4
S3
S2
S1
A4
A3
A2
A1
U12
13
AND
16
4
7
11
1
3
8
10
AND
U4
U3
14
C4
C0
B4
B3
B2
B1
74LS83
15
2
6
9
S4
S3
S2
S1
A4
A3
A2
A1
13
16
4
7
11
U5
AND
U6
AND
1
3
8
10
U7
AND
74LS83
U9
AND
U10
AND
U11
AND
U8
AND
AND
Hình 8: mạch nhân 2 số 4 bit
VD: nhân 2 số
1101(13) x 0110(6) =01001110(78)
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.
11
Chia 2 số thập phân
12
Chia 2 số nhị phân
Bài 5: Tìm hiểu cấu tạo,tính năng của khối ALU 74LS181.
5.1 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 1
S
3
S
2
S
1
S
0
Chức
M năng
T
ác vụ
A
H
L
H
H
H
A.B
ND
H
H
H
L
H
A+B
R
L
L
L
L
H
~A
O
N
13
OT
N
L
H
L
H
H
~B
OT
L
H
L
L
H
~(A.B)
AND
L
L
L
H
H)
L
H
H
L
H
H
L
L
H
H (+) Bi)
N
~(A+B
N
OR
X
A(+)B
OR
~(Ai
X
NOR
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à
14
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:
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.
15
Sơ đồ 7: Sơ đồ khối của bộ xử lý tóan học
X
S
Y
S
i
Ai
(A
1
logic )
S
0
0
0
.
0
0
0
.
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
.
1
0
S
0
i
Bi
(B
logic )
Bảng 5: Bảng sự thật cho hai khối A logic và B logic
ALU 74LS181
A0 – A3 : dữ liệu nhị phân 4 bit vào (A = A3A2A1A0)
Hình 9:Khối ALU 74LS181
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ả :
16
o
Logic 0 chỉ kết quả dương.
o
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.
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.
Hoạt động logic của 74181 được trình bày ở bảng chức năng dưới đây
17
B0
B1
B2
B3
1
0
0
1
S0
S1
S2
S3
1
0
0
1
IC 74LS181
U1
2
23
21
19
1
22
20
18
7
6
5
4
3
8
A0
A1
A2
A3
F0
F1
F2
F3
B0
B1
B2
B3
A=B
CN+4
G
P
9
10
11
13
14
16
17
15
0
0
1
1
0
0
CN
S0
S1
S2
S3
M
74LS181
1
0
1
0
1
0
A0
A1
A2
A3
Cn
M
Hình 10: ALU 74LS181
Đầu vào lựa chọn chế độ hoạt động
Khối
Logic
Khối
số học
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
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
Chia
x
x
x
x
x
x
Bảng 6: bảng điều khiển chế độ hoạt động của ALU 74181
18
Hình 11: cấu tạo mạch logic của ALU 74181.
19
BỔ SUNG HOÀN THIỆN MẠCH:
MẠCH CHÍNH
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
Logic
Cong
Tru
Nhan
1
2
15
14
3
13
B
A
1E
2E
B4B3B2B1
U95
1C
2C
A4A3A2A1
U79P
74LS155
U96
AND
2Y3
2Y2
2Y1
2Y0
1Y3
1Y2
1Y1
1Y0
0
1
0
1
B
U97
12
11
10
9
4
5
6
7
0
0
1
1
0
0
A
0
1
0
0
IC 74LS155
Y0 Y1 Y2 Y3
0
0
1
0
IC GIAI MA DIA CHI 2 VAO 4 RA
AB
AND
U98
AND
U94 U93 U92 U91
NOT
NOT
NOT
AND
U99
NOT
Y3 Y2 Y1 Y0
U100
AND
U101
AND
U102
MACH LOGIC
U80
AND
U81
AND
AND
U82
AND
A1
U86
A2
A3
A4
B1
B2
B3
B4
AND
AND
U87
U88
AND
AND
U90
AND
Tru (M=1)
1
MACH TRU 2 SO 4 BIT
U89
U341
AND
74LS138
A
B
C
E1
E2
E3
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
U25
OR
U34
U35
U36
U37
U43
U42
U44
U45
U50
U51
U52
U53
NOT
NOT
NOT
NOT
NAND
NAND
NAND
NAND
NOR_2
NOR_2
NOR_2
NOR_2
U58
U59
U60
U61
XOR
XOR
XOR
XOR
U66:A U66:B
U66:C U66:D
4077
4077
4077
U25D
NOT
C4
15
2
6
9
U75
NOT
U76
S4
S3
S2
S1
AND
U5D
AND
U
6D
AND
AND
U9
1
3
8
10
A4
A3
A2
A1
AND
U
8D
XOR
U27D
16
4
7
11
B4
B3
B2
B1
NOT
U4D
AND
13
C0
U74
74LS138
U26D
U78P
14
U7D
AND
74LS38
B-A
NOT
U3D
AND
S1S2S3S4
4077
?
?
?
?
U72
U73
U2D
U28D
Ket Qua Tru
12
U20
OR
8
U19
OR
13
U18
OR
5
U29
AND
9
U28
AND
1
U27
AND
6
U26
AND
U71
11
1
6
4
5
4
T4
U17P
1
2
3
3
1
0
1
10
IC giai ma dia chi
T1
T2
T3
2
AND
U11D
XOR
AND
U
10D
XOR
U12D
74LS83
NOT
AND
U77
XOR
U13D
NOT
AND
NOT
U31
U32
U33
U16
U15
U14
U13
U38
U39
U40
U41
U46
U47
U48
U49
U54
U55
U56
U57
U62
U63
U64
U65
U67
U68
U69
U70
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
AND
Tru (M=1)
AND
U14E
1
U30
AND
U33E
U109P
U15E
5
6
7
NOT
U16E
U32E
Ket Qua Tru
?
XOR
A-B
XNOR
NOT
U17E U18E
S1S2S3S4
AND_3
U29E
AND_3
74LS38
?
?
?
?
?
?
?
?
?
NOR
?
?
?
?
NAND
?
?
?
NOT
?
?
?
?
?
?
?
OR
?
?
?
?
?
?
?
?
AND
QA>B
QA=B
QA
B
A=B
A
- Xem thêm -