MẠCH TỔ HỢP
Đại cương
Mạch tổ hợp gồm một số các cổng luận lý kết
nối với nhau với một tập các ngõ vào và ra.
Mạch tổ hợp chuyển thông tin nhị phân từ dữ
liệu nhập thành dữ liệu xuất định trước.
Mạch tổ hợp dùng trong các máy tính số để
tạo ra các quyết định điều khiển nhị phân và
cung cấp các linh kiện số để xử lý dữ liệu.
Lược đồ mạch tổ hợp
Mạch tổ hợp
n biến vào
m biến ra
Mạch tổ hợp có thể được xác định qua bảng
chân trị với n biến nhập và m biến xuất; và có
thể xác định qua m hàm boolean.
Thiết kế mạch tổ hợp
Thiết kế mạch tổ hợp bắt đầu từ việc xác
định bài toán và kết thúc là lược đồ mạch
luận lý. Quy trình gồm các bước:
1. Lập bảng chân trị xác định mối quan hệ
giữa nhập và xuất.
2. Xác định hàm Boolean đã đơn giản cho mỗi
ngõ ra.
3. Vẽ lược đồ luận lý.
Mạch cộng
Mạch nửa cộng:
Mạch tổ hợp thực hiện phép cộng số học
2bit được goị là mạch nửa cộng.
Các biến xuất mạch nửa cộng là tổng nhớ.
Cần có hai biến xuất là vì
1 + 1 = 10 chiếm 2 ký số
Gọi x, y là hai biến nhập; S (tổng) và C (nhớ)
là hai biến xuất.
Mạch cộng (tt)
C là 0 trừ khi hai ngõ vào là 1.
Ngõ ra S biểu diễn bít có nghĩa thấp nhất của
tổng.
S = x’y + xy’ = x ⊕ y
C = xy
Bảng chân trị Lược đồ
S
C
Mạch cộng (tt)
Mạch toàn cộng:
Mạch toàn cộng là mạch tổ hợp thực hiện phép
cộng 3 bit. Gồm 3 ngõ vào và 2 ngõ ra.
Hai ngõ vào x, y biểu diễn hai bit cần cộng, ngõ
vào 3 z biểu diễn bit nhớ.
Hai ngõ ra là S (tổng) và C (nhớ).
Trị các biến xuất do phép cộng các bit nhập.
Khi tất cả các bít nhập là 0 thì xuất là 0
Ngõ ra S là 1 khi có 1 hoặc tất cả ngõ vào là 1.
Ngõ ra C là 1 khi hai hoặc 3 ngõ vào là 1
Mạch cộng (tt)
Bảng chân trị mạch toàn cộng
S= x’y’z + x’yz’ + xy’z’ + xyz
= x ⊕ y ⊕ z
C = xy + xz + yz
= xy + (x’y ⊕ xy’)z
Vì x’y + xy’ = x ⊕ y nên:
S = x ⊕ y ⊕ z
C = xy + (x’y ⊕ xy’)z
Các ô trong bảng đồ S không thể kết hợp vì
không có các ô liền kề.
Ngoài ra S bằng 1 khi số ngõ vào 1 là lẻ nên
S là hàm lẻ.
Các ô trong bảng đồ C có thể kết hợp theo
nhiều cách khác nhau như:
C = xy + (x’y + xy’)z
Với cách này cho phép ghép 2 mạch nữa cộng
thành mạch cộng.
Mạch cộng (tt)
Mạch giải mã và mã hoá
Mạch giải mã:
- Là mạch tổ hợp đổi thông tin nhị phân với n
ngõ nhập thành 2
n
ngõ xuất.
- Nếu ngõ nhập có một số tổ hợp không dùng thì
số ngõ ra có thể ít hơn 2
n
; mạch giải mã này gọi
là mạch giải mã n –m, với m ≤ 2
n
- Mục đích của mạch giải mã là tạo ra 2
n
(hoặc ít
hơn) tổ hợp nhị phân của n biến nhập.
- Khi các biến nhập tạo số nhị phân có trị k thì
ngõ ra thứ k sẽ cao, các ngõ khác sẽ thấp.
- Mạch giải mã có n nhập và m xuất còn gọi là
mạch giải mã n x m
Mạch giải mã và mã hoá (tt)
Sơ đồ mạch giải mã
Mạch toàn cộng
Mạch giải mã và mã hoá (tt)
Mạch giải mã cổng NAND:
- Một số mạch giải mã tạo ra từ cổng NAND
thay vì AND. Nó tạo ra ngõ xuất theo dạng
đảo.
- Ngoài ra ta có thể ghép hai hoặc nhiều
mạch nhỏ để tạo ra mạch lớn hơn
Mạch giải mã và mã hoá (tt)
Mạch mã hoá:
- Mạch mã hóa thực hiện tác vụ ngược lại với
mạch giải mã.
- Mạch mã hóa có 2
n
(hoặc ít hơn) ngõ nhập
và n ngõ nhập.
- Ngõ xuất tạo mã nhị phân tương ứng trị
nhập.
- Giả sử chỉ có một ngõ vào 1 tại một thời
điểm. Nếu ngõ đó là ngõ thứ k thì các ngõ
tạo thành số nhị phân trị k.
Mạch dồn
Là mạch tổ hợp nhận thông tin từ 1 trong 2
n
ngõ nhập và đưa ra ngõ xuất.
Việc xác định đường nhập vào được xuất do
các ngõ nhập chọn.
Mạch dồn 2
n
-1 có 2
n
nhập, 1 xuất và n ngõ
nhập chọn.
RÚT GỌN HÀM BOOLEAN
( , )F A B A AB
= +
A
B
F
( )F A AB A B B AB
AB AB AB AB A B
= + = + +
= + + + = +
A
B
F
RÚT GỌN HÀM BOOLEAN
Hai hàm Boolean bằng nhau khi với
cùng ngõ vào chúng cho ngõ ra giống
nhau.
Khi thực hiện mạch, ta nên đưa hàm
Boolean về dạng tối ưu nhất
Điều đó giúp thực hiện hàm Boolean với
số cổng ít nhất, giảm chi phí thực hiện
và tăng tốc độ của mạch.
DẠNG CHÍNH TẮC SOP
a b c F
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
a b c
• •
a b c
• •
a b c
• •
a b c
• •
a b c
• •
Function F is true if any of
these and-terms are true!
Condition that a is 0, b is 0, c is 1.
OR
F a b c a b c a b c a b c a b c= • • + • • + • • + • • + • •( ) ( ) ( ) ( ) ( )
Sum-of-Products form (SOP)
CÁC DẠNG CHÍNH TẮC
a b c
• •
a b c
• •
a b c
• •
a b c
• •
a b c
• •
a b c
• •
a b c
• •
a b c
• •
= m
0
= m
1
= m
2
= m
3
= m
4
= m
5
= m
6
= m
7
Note: Binary ordering
Một minterm là một tích của các
biến ngõ vào, các biến ở dạng
bình thường hoặc là bù.
Dạng chính tắc 1 (SOP) gồm các minterm
OR lại với nhau
a b c F
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
F a b c a b c a b c a b c a b c
F
= • • + • • + • • + • • + • •
=
∑
( ) ( ) ( ) ( ) ( )
( , , , , )
m + m + m + m + m
F =
1 2 3 5 6
m
1 2 3 5 6
Two variables:
a b minterm
0 0 a’b’ = m
0
0 1 a’b = m
1
1 0 a b’ = m
2
1 1 a b = m
3
Three variables:
a b c minterm
0 0 0 a’b’c’ = m
0
0 0 1 a’b’c = m
1
0 1 0 a’b c’ = m
2
0 1 1 a’b c = m
3
1 0 0 a b’c’ = m
4
1 0 1 a b’c = m
5
1 1 0 a b c’ = m
6
1 1 1 a b c = m
7
Four variables:
a b c d minterm
0 0 0 0 a’b’c’d’ = m
0
0 0 0 1 a’b’c’d = m
1
0 0 1 0 a’b’c d’ = m
2
0 0 1 1 a’b’c d = m
3
0 1 0 0 a’b c’d’ = m
4
0 1 0 1 a’b c’d = m
5
0 1 1 0 a’b c d’ = m
6
0 1 1 1 a’b c d = m
7
1 0 0 0 a b’c’d’ = m
8
1 0 0 1 a b’c’d = m
9
1 0 1 0 a b’c d’ = m
10
1 0 1 1 a b’c d = m
11
1 1 0 0 a b c’d’ = m
12
1 1 0 1 a b c’d = m
13
1 1 1 0 a b c d’ = m
14
1 1 1 1 a b c d = m
15
RÚT GỌN HÀM Ở DẠNG SOP
F a b c a b c a b c a b c a b c
= • • + • • + • • + • • + • •
( ) ( ) ( ) ( ) ( )
F ở dạng SOP :
Sử dụng các định lý của đại số Boolean để rút gọn
)()()()()()( cbacbacbacbacbacbaF
••+••+••+••+••+••=
))(())(())(( cbaabacccbaaF
•++•++•+=
)()()( cbbacbF
•+•+•=
Ta có x’+x = 1
Nhóm các phần tử giống nhau lại với nhau
DẠNG CHÍNH TẮC POS
F ở dạng chuẩn 2 (POS):
F A B C A B C A B C
F M M M
F
= + + • + + • + +
= • •
=
∏
( ) ( ) ( )
0 1 2
M(0, 1, 2)
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F
0
0
0
1
1
1
1
1
A B C
A + B + C = M
7
A + B + C = M
6
A + B + C = M
5
A + B + C = M
4
A + B + C = M
3
A + B + C = M
2
A + B + C = M
1
A + B + C = M
0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
BẢN ĐỒ KARNAUGH (BÌA K)
Ngoài 3 phương pháp biểu diễn hàm
Boolean đã nói, ta còn dùng bìa K để
biểu diễn hàm Boolean.
Bìa K là 1 bảng các ô, mỗi ô ứng với
một tổ hợp các ngõ vào của hàm
Boolean, và chứa giá trị của hàm
Boolean tại giá trị ngõ vào đó
Thực chất, bìa K là một bảng chân trị
BẢN ĐỒ KARNAUGH
2-variable K-map
A
0
0
1
1
B
0
1
0
1
F
0
1
1
0
0
1
1
0
A
B
0 1
0
1
00
01
10
11
F(A,B)
Space for AB’
Space for AB
Space for A’B’
Space for A’B
Bản đồ Karnaugh có thể mở rộng đến 4 biến
3-variable
K-map
4-variable
K-map
B
f(A,B,C)
f(A,B,C,D)
BC
A
00
01
11
10
0 1
000 100
001 101
011 111
010 110
C
CD
AB
00 01 11 10
00
01
11
10
0000 0100
0001 0101
0011 0111
0010 0110
1100 1000
1101 1001
1111 1011
1110 1010
C
D
A
B
A
m
0
m
4
m
1
m
5
m
3
m
7
m
2
m
6
m
0
m
4
m
1
m
5
m
3
m
7
m
2
m
6
m
12
m
8
m
13
m
9
m
15
m
11
m
14
m
10