Lecture 4: MẠCH TỔ HỢP
Biên soạn:Th.S Bùi Quốc Bảo
(Base on Floyd, Pearson Ed.)
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
F
B
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 Condition that a is 0, b is 0, c is 1.
0 0 0 0
0 0 1 1 a •b •c
0 1 0 1 a •b •c
0 1 1 1 a •b •c
Function F is true if any of
1 0 0 0 these and-terms are true!
1 0 1 1 a •b •c
1 1 0 1 a •b •c OR
1 1 1 0
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 F Một minterm là một tích của các
biến ngõ vào, các biến ở dạng
0 0 0 0 a •b •c = m0 bình thường hoặc là bù.
0 0 1 1 a •b •c = m1
0 1 0 1 a •b •c = m2 Note: Binary ordering
0 1 1 1 a •b •c = m3
1 0 0 0 a •b •c = m4
1 0 1 1 a •b •c = m5
a •b•c Dạng chính tắc 1 (SOP) gồm các minterm
1 1 0 1 = m6 OR lại với nhau
1 1 1 0 a •b•c = m7
F = (a • b • c ) + ( a • b • c ) + ( a • b • c ) + (a • b • c ) + ( a • b • c )
F = m1 + m2 + m3 + m5 + m6
F = ∑ m (1,2,3,5,6)
Two variables: Three variables:
a b minterm a b c minterm
0 0 0 a’b’c’ = m0
0 0 a’b’ = m0
0 0 1 a’b’c = m1
0 1 a’b = m1 0 1 0 a’b c’ = m2
1 0 a b’ = m2 0 1 1 a’b c = m3
1 1 a b = m3 1 0 0 a b’c’ = m4
1 0 1 a b’c = m5
1 1 0 a b c’ = m6
1 1 1 a b c = m7
a b c d minterm
Four variables: 0 0 0 0 a’b’c’d’ = m0
0 0 0 1 a’b’c’d = m1
0 0 1 0 a’b’c d’ = m2
0 0 1 1 a’b’c d = m3
0 1 0 0 a’b c’d’ = m4
0 1 0 1 a’b c’d = m5
0 1 1 0 a’b c d’ = m6
0 1 1 1 a’b c d = m7
1 0 0 0 a b’c’d’ = m8
1 0 0 1 a b’c’d = m9
1 0 1 0 a b’c d’ = m10
1 0 1 1 a b’c d = m11
1 1 0 0 a b c’d’ = m12
1 1 0 1 a b c’d = m13
1 1 1 0 a b c d’ = m14
RÚT GỌN HÀM Ở DẠNG
SOP
F ở dạng SOP :
F = ( a • b • c ) + (a • b • c ) + (a • b • c ) + ( a • b • c ) + (a • b • c )
Sử dụng các định lý của đại số Boolean để rút gọn
Nhóm các phần tử giống nhau lại với nhau
F = (a • b • c) + (a • b • c) + (a • b • c ) + (a • b • c) + (a • b • c ) + (a • b • c )
F = (a + a)(b • c) + (c + c)(a • b) + (a + a )(b • c )
Ta có x’+x = 1
F = (b • c) + (a • b) + (b • c )
DẠNG CHÍNH TẮC POS
A B C F A B C
0
0 0 0 0 0 0 0
0 0 1 0 0 0 1 A + B + C = M1
0 1 0 0 0 1 0 A + B + C = M2
0 1 1 1 0 1 1 A + B + C = M3
1 0 0 1 A + B + C = M4
1 0 0
1 0 1 1 A + B + C = M5
1 1 0 1 1 0 1
1 1 0 A + B + C = M6
1 1 1 1
1 1 1 A + B + C = M7
A+B+C=M
F ở dạng chuẩn 2 (POS):
F = ( A + B + C) • ( A + B + C ) • ( A + B + C)
F = M 0 • M1 • M 2
F = ∏ M(0, 1, 2)
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
F(A,B)
A 0 1
B
0 0 1
00 10
Space for A’B’ 1 1 0 Space for AB’
01 11
Space for A’B A B F Space for AB
0 0 0
0 1 1
1 0 1
1 1 0
Bản đồ Karnaugh có thể mở rộng đến 4 biến
A A
f(A,B,C) A 0
AB
1 f(A,B,C,D) CD 00 01 11 10
BC
00 000 100 00 0000 0100 1100 1000
m0 m4 m0 m4 m12 m8
01 001 101 01 0001 0101 1101 1001
m1 m5 m1 m5 m13 m9
C D
11 011 111 11 0011 0111 1111 1011
B m3 m7 C m3 m7 m15 m11
10 010 110 10 0010 0110 1110 1010
m2 m6 m2 m6 m14 m10
3-variable B
K-map 4-variable
K-map
F(A,B,C,D) = A’B’CD + AB’CD’ + A’BCD + ABCD’ + ABC’D
F (A,B,C) = A’B’C’ + A’BC + AB’C’ + ABC’ A
AB
CD 00 01 11 10
f(A,B,C) A 00
A 0 1 0 0 0 0
BC
00 1 1 01 0 0 1 0
D
01 11 1 1 0 0
0 0 C
C
10
11 1 0 0 0 1 1
B
10 0 B
1
4-variable
3-variable K-map
K-map
Trên bìa K, chỉ cần ghi hoặc giá trị 1,
hoặc giá trị 0
AB AB
CD 00 01 11 10 CD 00 01 11 10
00 00 0 0 0 0
01 1 01 0 0 0
11 1 1 11 0 0
10 10
1 1 0 0
B
Dùng bìa K để rút gọn hàm Boolean:
A 0 1
0 0 1 We can combine A’B and AB
1 0 1
B
F = A’B + AB A 0 1
=B
0 1 1
We can combine A’B’ and A’B 1 0 0
G = A’B’ + A’B
= A’
Các ô trong vòng khuyên như trên là các ô kế cận
Các ô kế cận:
C
A 0 1
BC
00
01 Đối diện
B
11
A Các ô kế cận là các ô chỉ
10 khác nhau ở một biến
Đối diện
F C
C 0 1
AB
00 1 1 F(C,B,A) = A’BC’ + AB’C + A’B’
01 1 0
B
11 0 0
A
10 0 1
F C
C 0 1
AB In the K-map, adjacency wraps from left to right
00 1 1
and from top to bottom
01 1 0
B F(C,B,A) = A’C’ + B’C
11 0 0
A
Same function, alternative “circling”
10 0 1
Note: Larger circles are better
Để rút gọn hàm Boolean bằng bìa K:
Biểu diễn hàm lên bìa K
Nhóm các ô kế cận mang cùng giá trị 1 (hoặc 0)
thành các nhóm bằng các vòng khuyên
Số phần tử trong mỗi vòng khuyên là 2n
Một phần tử có thể nằm trong nhiều vòng khuyên
Số vòng khuyên là ít nhất, số phần tử là nhiều nhất.
Viết biểu thức rút gọn.