Bài giảng Nhập môn tin học - Chương 6: Đại số Boolean và mạch Logic

pdf 59 trang phuongnguyen 11330
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn tin học - Chương 6: Đại số Boolean và mạch Logic", để 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:

  • pdfbai_giang_nhap_mon_tin_hoc_chuong_6_dai_so_boolean_va_mach_l.pdf

Nội dung text: Bài giảng Nhập môn tin học - Chương 6: Đại số Boolean và mạch Logic

  1. Chương 6 ĐẠI SỐ BOOLEAN VÀ MẠCH LOGIC 1
  2. Nội dung 6.1. Giới thiệu 6.2. Đại số Boolean 6.3. Hàm Boolean 6.4. Các cổng luận lý 6.5. Mạch Logic 6.6. Thiết kế của mạch kết hợp 6.7. Câu hỏi và bài tập 2
  3. GIỚI THIỆU Đại số Boole được phát minh bởi nhà toán học Anh George Boole vào năm 1854. Đại số Boole nghiên cứu các phép toán thực hiện trên các biến chỉ có 2 giá trị 0 và 1, tương ứng với hai trạng thái luận lý "sai" và "đúng" (hay "không" và "có") của đời thường. 3
  4. GIỚI THIỆU Tương tự các hệ đại số khác được xây dựng thông qua những vấn đề cơ bản sau:  Miền (domain) là tập hợp (set) các phần tử (element)  Các phép toán (operation) thực hiện được trên miền  Các định đề (postulate), hay tiên đề (axiom) được công nhận không qua chứng minh  Tập các hệ quả (set of consequences) được suy ra từ định đề, định lý (theorem), định luật (law) hay luật(rule) 4
  5. NHỮNG NGUYÊN TẮC CƠ BẢN Sử dụng hệ cơ số nhị phân. Các phép toán:  Phép cộng luận lí (logical addition) : (+) hay (OR )  Phép nhân luận lí (logical multiplication): (.) hay ( AND )  Phép bù ( NOT ) Độ ưu tiên của các phép toán Tính đóng (closure): tồn tại miền B với ít nhất 2 phần tử phân biệt và 2 phép toán (+) và (•) sao cho: Nếu x và y là các phần tử thuộc B thì (x + y), (x•y) cũng là 1 phần tử thuộc B 5
  6. PHÉP CỘNG LUẬN LÍ Phép toán: Dấu ‘+’ hay OR Biểu thức : A + B = C Hay A OR B = C Nguyên tắc: • Kết quả trả về 0 (FALSE) khi và chỉ khi tất cả giá trị đầu vào là 0 (FALSE). • Kết quả là 1 (TRUE) khi có bất kì một giá trị nhập vào có giá trị là 1 (TRUE). Ví dụ: 1 0 0 1 1 0 1 0 A B 1 1 0 0 1 0 0 1 A + B hay A OR B 1 1 0 1 1 0 1 1 6
  7. PHÉP NHÂN LUẬN LÍ Phép toán: Dấu ‘.’ hay AND Biểu thức : A . B = C Hay A AND B = C Nguyên tắc: • Kết quả trả về 1 (TRUE) khi và chỉ khi tất cả giá trị đầu vào là 1 (TRUE). • Kết quả là 0 (FALSE) khi có bất kì một giá trị nhập vào có giá trị là 0 (FALSE). Ví dụ: 1 0 0 1 1 0 1 0 A B 1 1 0 0 1 0 0 1 A . B hay A 1 0 0 0 1 0 0 0 7 AND B
  8. PHÉP BÙ Phép toán: Dấu ‘-’ hay NOT (phép toán một ngôi) Biểu thức : Ā Hay NOT A Nguyên tắc: • Kết quả trả về 1 (TRUE) nếu giá trị đầu vào là 0 (FALSE). • Ngược lại, kết quả là 0 (FALSE) nếu giá trị nhập vào là 1 (TRUE). Ví dụ: 1 0 0 1 1 0 1 0 A Ā hay NOT A 0 1 1 0 0 1 0 1 8
  9. ĐỘ ƯU TIÊN CỦA CÁC PHÉP TOÁN Biểu thức được tính từ trái sang phải. Biểu thức trong ngoặc đơn được đánh giá trước. Các phép toán bù (NOT) được ưu tiên tiếp theo. Tiếp theo là các phép toán ‘.’ (AND). Cuối cùng là các phép toán ‘+’ (OR). Ví dụ: C = A Or B Not A A 1 0 0 1 1 0 1 0 B 1 1 0 0 1 0 0 1 C ?????????? 9
  10. CÁC ĐỊNH ĐỀ Huntington CỦA ĐẠI SỐ BOOLEAN Định đề 1: Định đề 4: Tính kết hợp  A = 0 khi và chỉ khi A không bằng 1 • x + (y + z) = (x + y) + z  A = 1 khi và chỉ khi A không bằng 0 • x . (y . z) = (x . y) . z Định đề 2: Phần tử đồng nhất Định đề 5: Tính phân phối  x + 0 = x • x . (y +z) = x . y + x . z  x . 1 = x • x + y . z = (x + y) . (x + z) Định đề 3: Tính giao hoán Định đề 6: Tính bù  x + y = y + x • x + x = 1  x . y = y . x • x . x = 0 10
  11. NGUYÊN LÍ ĐỐI NGẪU • Đại số Boolean mang tính đối ngẫu • Đổi phép toán (+) thành (•) • Đổi phần tử đồng nhất 0 thành 1 Cột 1 Cột 2 Column 3 Row 1 1 + 1 = 1 1 + 0 = 0 + 1 = 1 0 + 0 = 0 Row 2 0 . 0 = 0 0 . 1 = 1 . 0 = 0 1 . 1 = 1 11
  12. CÁC ĐỊNH LÍ CỦA ĐẠI SỐ BOOLEAN Định lí 1 (Luật lũy đẳng) Định lí 4 (Định luật bù kép)  x + x = x  x . x = x Định lí 2 (Định luật nuốt) Định lí 5  x + 1 = 1  x . 0 = 0 Định lí 3 (Định luật hấp thu) Định lí 6 (Định luật De Morgan)  x + x . y = x  x . (x + y) = x 12
  13. HÀM BOOLEAN Một hàm Boolean là một biểu thức được tạo từ:  Các biến nhị phân,  Các phép toán hai ngôi OR và AND, phép toán một ngôi NOT,  Các cặp dấu ngoặc đơn và dấu bằng. Với giá trị cho trước của các biến, giá trị của hàm chỉ có thể là 0 hoặc 1. Phương trình Hay W = f(X, Y, Z) Với: X, Y và Z được gọi là các biến của hàm. 13
  14. HÀM BOOLEAN Một hàm Boole cũng có thể được biểu diễn bởi dạng bảng chân trị. Số hàng của bảng là 2n, n là số các biến nhị phân được sử dụng trong hàm. X Y Z W 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 14
  15. SỰ DƯ THỪA (redundant) Khái niệm:  Literal: là 1 biến hay phủ định của biến đó (A hay A)  Term của n literal là sự kết hợp của các literal mà mỗi biến chỉ xuất hiện một lần duy nhất. Ví dụ: term của 3 biến A, B, C là A.B.C Một biểu thức gọi là dư thừa nếu nó có chứa  Literal lặp: xx hay x+x  Biến và bù của biến: xx’ hay x+x’  Hằng: 0 hay 1 Các thành phần dư thừa có thể loại bỏ khỏi biểu thức Các thành phần thừa trong biểu thức không cần hiện 15 thực trong phần cứng
  16. TỐI THIỂU HÀM BOOLEAN Tối thiểu hàm Boolean là việc tối ưu hóa số lượng phần tử và số hạng để tạo ra một mạch với số lượng phần tử ít hơn. Phương pháp: sử dụng phương pháp đại số, áp dụng các định lý, định đề, các luật, cắt-và-thử nhiều lần để tối thiểu hàm Boolean tới mức thấp nhất. Ví dụ: 16
  17. TỐI THIỂU HÀM BOOLEAN 17
  18. PHẦN BÙ CỦA MỘT HÀM Phần bù của một hàm Boolean F là F có được bằng cách thay 0 thành 1 và 1 thành 0 trong bảng chân trị của hàm đó. x y z F F 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 18
  19. PHẦN BÙ CỦA MỘT HÀM Ví dụ: Áp dụng định lí De Morgan 19
  20. PHẦN BÙ CỦA MỘT HÀM Ví dụ: Tìm phần bù của các hàm F1 và F2 bằng cách tìm đối ngẫu Giải 20
  21. DẠNG CHÍNH TẮC CỦA HÀM BOOLEAN (canonic form) Một biểu thức n biến luôn có thể được biểu diễn dưới 2 dạng: Dạng tổng các tích (sum-of-product hay s-o-p): biểu thức được biểu diễn dưới dạng tổng (sum) các toán hạng (term), mỗi toán hạng là tích (product) của các literal E = x y + x y’ z + x’ y z’ Dạng tích các tổng (product-of-sum hay p-o-s): biểu thức được biểu diễn dưới dạng tích các toán hạng, mỗi toán hạng là tổng của các literal E = ( x + y ) ( x + y’ + z ) ( x’ + y + z’ ) Dạng chính tắc: biểu thức n biến dạng s-o-p hay p-o-s có đặc điểm mỗi toán hạng của nó có đủ mặt n literal và không chứa các literal thừa 21
  22. DẠNG CHÍNH TẮC CỦA HÀM BOOLEAN (canonic form) Luôn có thể biến đổi một s-o-p (hay p-o-s) không chính tắc (noncanonic) về dạng chính tắc Vd: E = xy’ + x’y + xz + yz = xy’(z + z’) + x’y(z + z’) + xz(y + y’) + yz(x + x’) = xy’z + xy’z’ + x’yz + x’yz’ + xyz + xy’z + xyz + x’yz = xy’z + xy’z’ + x’yz + x’yz’ + xyz 22
  23. DẠNG CHÍNH TẮC CỦA HÀM BOOLEAN (canonic form) • Minterm: một tích không dư thừa các literal của dạng chính tắc (Thực hiện phép toán AND giữa các literal tạo thành một Term) • Maxterm: một tổng không dư thừa các literal của dạng chính tắc • (Thực hiện phép toán OR giữa các literal tạo thành một Term) 23 Minterms và Maxterms ứng với ba biến Maxterms là phần bù của minterms và ngược lại
  24. F2???? TỔNG CÁC TÍCH Các bước để biểu diễn hàm Bool theo dạng tổng của các tích: 1. Xây dựng một bảng chân trị cho hàm Boolean. 2. Hình thành một minterm cho mỗi sự kết hợp của các biến tạo ra hàm có giá trị là 1 3. Biểu thức cuối cùng là cộng tất cả các minterm thu được từ bước 2. Ví dụ: Hàm F1 có giá trị 1 là sự kết hợp của 3 biến 001,100, 111 Các minterm tương ứng là Sau đó, lấy tổng (OR) của tất cả các minterm này, được biểu thức hàm F1 dưới dạng tổng của các tích như sau: 24 Bảng chân trị của hàm F1
  25. Tổng của các tích của biểu thức được kí hiệu: F(A, B, C)=∑(1, 4, 5, 6, 7) TỔNG CÁC TÍCH Ví dụ : Tính biểu thức hàm Bool F= A + B . C dưới dạng tổng của các tích 25
  26. TÍCH CÁC TỔNG Các bước để biểu diễn hàm Bool theo dạng tích của các tổng 1. Xây dựng một bảng chân trị cho hàm Boolean. 2. Hình thành một maxterm cho mỗi sự kết hợp của các biến với các biến này thì hàm này có giá trị là 0 3. Biểu thức cuối cùng là nhân tất cả cácBảng maxterm chân thutrị của được hàm F1 từ bước 2. Ví dụ: Hàm F1 có giá trị 0 là sự kết hợp của 5 biến 000,010,011, 01, và 110 Các maxterm tương ứng là Sau đó, lấy tích(AND) của tất cả các maxterm này, được biểu thức hàm F1 dưới dạng tích của các tổng như sau: 26
  27. TÍCH CÁC TỔNG Ví dụ: Tính biểu thức hàm Bool F = x . y + . z dưới dạng tích của các tổng 27 có nghĩa là phép AND của các toán hạng
  28. SỰ CHUYỂN ĐỔI GIỮA CÁC DẠNG CHÍNH TẮC Để chuyển đổi từ một dạng chính tắc này sang một dạng chính tắc khác, đổi các kí hiệu và liệt kê danh sách các tham Ví sốdụ: không có mặt từ hàm ban đầu. Bảng chân trị của hàm F1 F (A, B, C) = ∑(1, 4, 5, 6, 7) = m1 + m4 + m5 + m6 + m7 Phần bù đó có thể được biểu diễn như sau: F (A, B, C) = п(0, 2, 3) = m0 + m2 + m3 Áp dụng định lý De Morgan’s chúng ta thu được F dưới một dạng khác : F = = 0 . 2 . 3 = M . M . M 0 2 3 28 = π (0, 2, 3)
  29. CÁC CỔNG LUẬN LÍ - Cổng AND 29
  30. CÁC CỔNG LUẬN LÍ - Cổng AND Cổng AND là sự thực hiện vật lí của phép toán nhân luận lí (AND). Là một mạch điện tử có đầu ra là tín hiệu 1 nếu tất cả các tín hiệu đầu vào là 1. Hoạt động: các trạng thái của tín hiệu đầu ra phụ thuộc vào sự kết hợp khác nhauBảng của chân các trịtín của hiệu cổng đầu AND vào, được mô tả bằng bảng chân trị. 30
  31. CÁC CỔNG LUẬN LÍ - Cổng OR Cổng OR là sự thực hiện vật lí của phép toán cộng luận lí (OR). Là một mạch điện tử có tín hiệu đầu ra là 0 nếu tất cà các tín hiệu đầu vào là 0. Bảng chân trị của cổng OR 31
  32. CÁC CỔNG LUẬN LÍ - Cổng NOT Cổng NOT là sự thực hiện vật lí của phép bù. Là một mạch điện tử có tín hiệu đầu ra là phần đảo của tín hiệu đầu vào. 32
  33. CÁC CỔNG LUẬN LÍ - Cổng NAND Cổng NAND là một phần bù của cổng AND. Cổng ra của NAND sẽ là 0 khi tất cả cổng vào là 1. Ký hiệu: AB =A . B = A+B= A .B A C=A B=A B=A+B B A AB A B=A+B=A B B Cổng NAND được tạo từ cổng AND và cổng NOT Bảng chân trị của cổng NAND 33
  34. CÁC CỔNG LUẬN LÍ - Cổng NOR Cổng NOR là một phần bù của cổng OR. Cổng ra của cổng NOR sẽ là 1 khi và chỉ khi tất cả các cổng vào là 0. A B=A+B=A+B Ký hiệu: A C=A¯B=A+B=A B B A+B A+B=A×B=A B Cổng NAND được tạo từ cổng OR và cổng NOT Bảng chân trị của cổng NAND 34
  35. MẠCH LOGIC Mạch Logic là sự kết hợp của các mạch And, Or, Nand, Nor, Ví dụ: Tìm biểu thức luận lý cho đường ra của mạch logic dưới đây 35
  36. CHUYỂN ĐỔI BIỂU THỨC THÀNH MẠCH LOGIC Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý. ABC Giải 36
  37. MẠCH LOGIC Cách giải • Đầu vào A được chuyển vào cổng NOT và đầu ra của nó sẽ là A • Đầu vào B và C được chuyển vào cổng OR và đầu ra của nó sẽ là B + C • Hai cổng ra (A và B+C ) được chuyển vào cổng AND. Đầu ra của cổng AND sẽ là • D = A() BC , là biểu thức luận lý đầu ra của mạch logic. A B 37 C
  38. CHUYỂN ĐỔI BIỂU THỨC THÀNH MẠCH LOGIC Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý. AB + BC + AC Giải 38
  39. CHUYỂN ĐỔI BIỂU THỨC THÀNH MẠCH LOGIC Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý. A.B + A.B Giải 39
  40. CHUYỂN ĐỔI BIỂU THỨC THÀNH MẠCH LOGIC Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý. Giải 40
  41. CHUYỂN ĐỔI BIỂU THỨC THÀNH MẠCH LOGIC Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý. ABCDEF Giải 41
  42. CỔNG NAND CHUNG Là sự hoạt động hợp lý của AND, OR và NOT có thể thực hiện với NAND 42
  43. CỔNG NAND CHUNG Phương pháp xây dựng cổng NAND chung Bước 1: Xuất phát từ biểu thức đại số đã cho, vẽ sơ đồ logic với các cổng AND, OR và NOT. Giả sử cả đường vào của (A) và phần bù của (A) là có sẵn. Bước 2: Vẽ một sơ đồ logic thứ hai với cổng logic NAND thay thế tương ứng cho mỗi cổng AND, OR, và NOT. Bước 3: Xóa hai đường đảo chiều từ sơ đồ (là các đường có 1 ngõ vào). Xóa cả đường đảo chiều nối đến đường vào bên ngoài và thêm biến số đường vào tương ứng. 43
  44. CỔNG NAND CHUNG Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý sau chỉ dùng cổng NAND. ABCABD() 44
  45. CỔNG NOR CHUNG Là sự hoạt động hợp lý của AND, OR và NOT có thể thực hiện với NOR 45
  46. CỔNG NOR CHUNG Phương pháp xây dựng cổng NOR chung Bước 1: Với biểu thức đại số đã cho, vẽ sơ đồ logic với cổng AND, OR và NOT. Biết rằng cả đầu vào biểu thức (A) và phần bù (A) đều có sẵn Bước 2: Vẽ một sơ đồ logic thứ hai tương đương với cổng NOR thay thế cho mỗi cổng AND, OR và NOT. Bước 3: Xóa 2 đường đảo chiều. Xóa cả những đường đảo chiều nối đến đầu vào bên ngoài cổng đơn và thêm biến số đầu vào thích hợp. 46
  47. CỔNG NOR CHUNG Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý sau chỉ dùng cổng NOR. ABCABD() 47
  48. CỔNG NOR CHUNG Ví dụ: Xây dựng một mạch logic cho biểu thức luận lý sau chỉ dùng cổng NOR. ABCABD() 48
  49. CỔNG NOR CHUNG Ví dụ: Xây dựng một mạchABCABD logic ()cho biểu thức luận lý sau chỉ dùng cổng NOR. Cổng NAND và NOR cao cấp hơn các cổng AND và OR từ phần cứng, vì chúng cung cấp đầu ra duy trì giá trị tín hiệu mà không làm mất độ lớn. 49 Cổng OR và AND thỉnh thoảng cần phục hồi độ lớn sau khi tín hiệu đi qua vài cấp độ.
  50. PHÉP TOÁN LOẠI TRỪ VÀ HÀM TƯƠNG ĐƯƠNG Phép toán lọai trừ OR (Exclusive-OR) : Ký hiệu Phép tương đương (Equivalence): Ký hiệu Là các phép toán nhị phân thực hiện theo những hàm Boolean sau: 50
  51. PHÉP TOÁN LOẠI TRỪ VÀ HÀM TƯƠNG ĐƯƠNG • Phép toán loại trừ OR và phép toán tương đương là những ứng cử viên cho những cổng lôgic nhưng quá mắc để xây dựng các thành phần vật lý trong máy tính. • Chúng có sẵn như những cổng lôgic chuẩn tại gói IC nhưng thường được xây dựng bên trong với những cổng tiêu chuẩn khác. 51
  52. THIẾT KẾ CỦA MẠCH KẾT HỢP Các bước thiết kế mạch kết hợp: Phát biểu bài toán đã cho hoàn toàn chính xác. Giải thích vấn đề và xác định những biến số vào là có sẵn và những biến đầu ra được yêu cầu. Gán một ký hiệu bằng chữ tới mỗi biến đầu vào và mỗi biến đầu ra. Thiết kế bảng chân trị định nghĩa những quan hệ được yêu cầu giữa đầu vào và đầu ra. Hàm Boolean được đơn giản hóa cho mỗi đầu ra. Vẽ sơ đồ mạch logic để thực hiện hàm Boolean 52
  53. THIẾT KẾ MẠCH CỘNG BÁN PHẦN Giả sử A và B là hai biến đầu vào, S (tổng) và C (số nhớ). Ta có bảng chân trị của một mạch cộng bán phần. A A A.B S = A . B + A . B B B B.A Từ bảng chân trị có A C = A . B S = A . B + A . B B 53 C = A . B Sơ đồ mạch lôgic của mạch cộng bán phần.
  54. THIẾT KẾ MẠCH CỘNG TOÀN PHẦN Giả sử A và B là hai biến đầu vào, S (tổng) và C (số nhớ), biến số vào thứ ba (D) đại diện cho số nhớ Ta có bảng chân trị của một mạch cộng toàn phần. S = A . B . D + A . B . D + A . B . D + A . B . D C = A . B + A . D+ B . D 54
  55. S = A . B . D + A . B . D + A . B . D + A . B . D C = A . B + A . D+ B . D THIẾT KẾ MẠCH CỘNG TOÀN PHẦN A A . B . D B D A A . B B A B A . B . D D S A A . D C A D B A . B . D D A B A . B . D B . D B D D Sơ đồ mạch Logic cho Sum Sơ đồ mạch logic cho số nhớ A . B A HA (A B) . D C B A . B + A . B = A B HA D S A B D 55 Sự thi hành của mạch cộng toàn phần với hai mạch cộng bán phần và một cổng OR
  56. THIẾT KẾ MẠCH CỘNG NHỊ PHÂN SONG SONG Mạch cộng nhị phân song song được dùng để thêm hai số nhị phân. Nếu chúng ta muốn thêm hai số bốn bit, chúng ta cần xây dựng một mạch cộng nhị phân bốn bit song song. Một mạch cộng như vậy yêu cầu mạch cộng bán phần (được biểu thị bởi HA) và ba mạch cộng toàn phần (được biểu thị bởi FA). Những số nhị phân được bổ sung là A4 A3 A2 A1 và B4 B3 B2 B1, và kết quả là: 56
  57. THIẾT KẾ MẠCH CỘNG NHỊ PHÂN SONG SONG A4 A3 A2 A1 + B4 B3 B2 B1 S5 S4 S3 S2 S1 A4 A3 A2 A1 B4 B3 B2 B1 FA FA FA HA Carry Carry Carry S5 S4 S3 S2 S1 57
  58. THIẾT KẾ MẠCH CỘNG NHỊ PHÂN SONG SONG Thêm hai số 9 và 11 thêm vào, số nhị phân tương đương của số thập phân 9 là 1001, và số thập phân 11 là 1011 1 0 0 1 1 0 1 1 0 1 1 FA FA FA HA Carry Carry Carry Carry Sum Sum Sum Sum 1 0 1 0 0 Những số nhị phân lớn nhất có thể được thêm vào việc sử dụng mạch cộng toàn phần là 1111 và 1111 58
  59. CÂU HỎI VÀ BÀI TẬP 1. Giải thích nguyên lý đối ngẫu trong đại số Boolean. Nó hữu ích như thế nào? 2. Các cổng AND,OR và NOT là những hoàn thành luận lý, hãy thảo luận về vấn đề đó. 3. Tại sao cổng NAND và NOR gọi là cổng chung? 4. Trình bày sự thực hiện của các phép toán logic AND, OR và NOT chỉ với cổng NAND và chỉ với cổng NOR. 5. Xây dựng biểu đồ mạch logic cho “half- adder” sử dụng duy nhất cổng NAND 6. Xây dựng biểu đồ mạch logic cho “half- adder” sử dụng duy nhất cổng NOR 7. Tại sao các mạch tổ hợp hay được xây dựng thường xuyên với cổng NAND và NOR hơn là cổng AND, Or, NOT? 8. Mạch logic có 3 đầu vào là A,B,C. Nó tạo 1 đầu ra duy nhất khi A=0,B=1,C=0, Xây dựng mạch tổ hợp cho hệ thống này. ` Bài tập trang 130 59