Bài giảng Cấu trúc máy tính - Bài 4: Mạch tổ hợp
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cấu trúc máy tính - Bài 4: Mạch tổ hợp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_cau_truc_may_tinh_bai_4_mach_to_hop.ppt
Nội dung text: Bài giảng Cấu trúc máy tính - Bài 4: Mạch tổ hợp
- 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ạch tổ hợp m biến ra
- 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 Vì x’y + xy’ = x y nên: S = x y z C = xy + (x’y xy’)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 n ◼ Là mạch tổ hợp nhận thông tin từ 1 trong 2 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. n n ◼ Mạch dồn 2 -1 có 2 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 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 0 0 0 0 a • b • c biến ngõ vào, các biến ở dạng = m0 bình thường hoặc là bù. 0 0 1 1 a • b • c = m1 0 1 0 1 a • b • c Note: Binary ordering = m2 0 1 1 1 a • b • c = m3 1 0 0 0 a • b • c = m4 1 0 1 1 a • b • c = m5 Dạng chính tắc 1 (SOP) gồm các minterm 1 1 0 1 a • b • c = m 6 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 1 1 1 1 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 = (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 A + B + C = M0 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 = M 1 0 0 1 3 1 0 0 A + B + C = M 1 0 1 1 4 1 0 1 1 1 0 1 A + B + C = M5 1 1 0 1 1 1 1 A + B + C = M6 1 1 1 A + B + C = M7 F ở dạng chuẩn 2 (POS): F = ( A + B + C) • ( A + B + C ) • ( A + B + C) F = M0 • M1 • M2 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 B 0 1 0 0 1 00 10 Space for A’B’ 1 1 0 01 11 Space for AB’ 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) AB A 0 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 m m m m m m 1 5 C 1 5 13 9 D 11 011 111 11 0011 0111 1111 1011 m m m m m m B 3 7 C 3 7 15 11 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 0 0 1 1 B 1 0 10 0 1 B 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 1 1 10 0 0
- ◼ Dùng bìa K để rút gọn hàm Boolean: B 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 1 1 00 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 n ◼ Số phần tử trong mỗi vòng khuyên là 2 ◼ 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.