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 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.
n biến vào
m biến ra
Mạch tổ hợp
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.
y
S = x’y + xy’ = x ¯ 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
y nên:
Vì x’y + xy’ = x ¯ y ¯ S = x ¯ z C = xy + (x’y ¯
xy’)z
S= x’y’z + x’yz’ + xy’z’ + xyz = x ¯ y ¯ z
C = xy + xz + yz = xy + (x’y ¯ xy’)z
Mạch cộng (tt)
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 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 2n 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 2n ; mạch giải mã này gọi là mạch giải mã n –m, với m ≤ 2n Mục đích của mạch giải mã là tạo ra 2n (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ó 2n (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 2n
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 2n1 có 2n 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
F
B
=
= +
+
+
(
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
Condition that a is 0, b is 0, c is 1.
a b c F
• • a b c • • a b c • • a b c
0 0 0 0 0 1 0 1 0 0 1 1
0 1 1 1
Function F is true if any of these and-terms are true!
1 0 0 0
• • a b c • • a b c
1 0 1 1
1 1 0 1 OR
1 1 1 0
Sum-of-Products form (SOP)
= + + + + F • • a b c ( ) • • a b c ( ) • • a b c ( ) • • a b c ( ) • • a b c ( )
CÁC DẠNG CHÍNH TẮC
ộ
ủ d ng
ế ở ạ
M t ộ minterm là m t tích c a các bi n ngõ vào, các bi n ế ng ho c là bù. bình th ặ
ườ
Note: Binary ordering
a b c F
0 0 0 0 0 1 0 1 0 0 1 1
0 1 1 1
1 0 0 0
ắ
ồ
1 0 1 1
D ng chính t c 1 (SOP) g m các minterm ạ OR l
i v i nhau
ạ ớ
• • a b c • • a b c • • a b c • • a b c • • a b c • • a b c • • a b c • • a b c
1 1 0 1
•
•
+
+
+
•
•
1 1 1 0
a b c
)
(
)
(
)
(
• • a b c
• • a b c
• • a b c
)
a b c ( m + m + m + m + m
3
5
6
2
= m0 = m1 = m2 = m3 = m4 = m5 = m6 = m7 + ( )
= F = F F =
1 m 1 2 3 5 6 ( , , , , )
(cid:229)
Two variables:
a 0 0 1 1 b minterm a’b’ = m0 0 a’b = m1 1 a b’ = m2 0 a b = m3 1
Three variables: minterm a’b’c’ = m0 a’b’c = m1 a’b c’ = m2 a’b c = m3 a b’c’ = m4 a b’c = m5 a b c’ = m6 a b c = m7
a b c 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Four variables:
a b c d minterm 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 a’b’c’d’ = m0 a’b’c’d = m1 a’b’c d’ = m2 a’b’c d = m3 a’b c’d’ = m4 a’b c’d = m5 a’b c d’ = m6 a’b c d = m7 a b’c’d’ = m8 a b’c’d = m9 a b’c d’ = m10 a b’c d = m11 a b c’d’ = m12 a b c’d = m13 a b c d’ = m14 a b c d = m15
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
cba
)
(
cba
)
(
•• cba
(
)
cba
)
(
•• cba
(
)
•• cba
(
)
=
+
+
+
•
F
cbaa )(
+• )
(
(
c
bac )(
+• )
(
cbaa )(
)
=
•+•
F
ba
cb (
)
(
)
+• cb ( )
Ta có x’+x = 1
DẠNG CHÍNH TẮC POS
A
B
C
0 0 0 0 0 1 0 1 0
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
0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
A + B + C = M0 A + B + C = M1 A + B + C = M2 A + B + C = M3 A + B + C = M4 A + B + C = M5 A + B + C = M6 A + B + C = M7
F
ở ạ
d ng chu n 2 (POS): ẩ
•
+
+
(
+ + A B C
)
(
(
A B C
)
1
2
0
= = = (cid:213)
• + + ) A B C F • • F M M M M(0, 1, 2) F
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
F(A,B)
A
0
1
B
1
0
0
2-variable K-map
00
10
1
0
1
Space for A’B’ Space for AB’
01
11
A 0 0 1 1
B 0 1 0 1
F 0 1 1 0
Space for A’B Space for AB
A
B n đ Karnaugh có th m r ng đ n 4 bi n ể ở ộ ế ế ả ồ
AB
A 1
0
00
01
11
10
f(A,B,C)
CD
A BC
00
00
f(A,B,C,D)
000 100 m4
0000 0100 m4
m0
m0
1100 1000 m12 m8
01
01
001 101 m5
0001 0101 m5
m1
m1
1101 1001 m13 m9
D
C
11
11
011 111 m7
0011 0111 m7
m3
m3
1111 1011 m15 m11
B
C
10
10
010 110 m6
0010 0110 m6
m2
m2
1110 1010 m14 m10
B
3-variable K-map
4-variable K-map
F(A,B,C,D) = A’B’CD + AB’CD’ + A’BCD + ABCD’ + ABC’D
A
F (A,B,C) = A’B’C’ + A’BC + AB’C’ + ABC’
AB
00
01
11
10
CD
f(A,B,C)
00
0
A 1
A BC
01
00
0 0 0 0
D
11
01
1 1 0 0 1 0
C
C
10
11
1 1 0 0 0 0
B
B
10
0 0 1 1 1 0
4-variable K-map
3-variable K-map
0 1
Trên bìa K, chỉ cần ghi hoặc giá trị 1,
hoặc giá trị 0
AB
AB
00
01
11
10
00
01
11
10
CD
CD
00
00
01
01
0 0 0 0
11
11
0 0 0 1
10
10
0 0 1 1
0 0 1 1
1
0
Dùng bìa K để rút gọn hàm Boolean: B A
We can combine A’B and AB
0
0
1
1
0
1
B
0
1
A
F = A’B + AB = 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
ế ậ
ư
0
Các ô k c n: ế ậ
C 1
00
01
A BC
Đ i di n ệ ố
11
B
10
Các ô kế cận là các ô chỉ khác nhau ở một biến
Đối diện
A
F
0
C 1
C AB
1
1
00
1
01
0
B
11
0
0
A
10
0
1
F
0
C 1
C AB
1
1
00
In the K-map, adjacency wraps from left to right and from top to bottom
1
01
0
F(C,B,A) = A’BC’ + AB’C + A’B’
B
11
0
0
A
10
0
1
Same function, alternative “circling” Note: Larger circles are better
F(C,B,A) = A’C’ + B’C
Để 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.