9 / 63 · Khái niệm
Bản đồ Karnaugh và điều kiện don’t-care
Rút gọn biểu thức bằng tính kề của mã Gray và nêu rõ giả thiết về đầu vào không dùng.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Liên hệ bảng chân trị với chi phí cài đặt
Bảng chân trịBảng chân trị Bảng liệt kê đủ mọi tổ hợp đầu vào và đầu ra tương ứng. Sự thay đổi theo thời gian được kiểm tra riêng bằng dạng sóng. Tìm hiểu thêm xác định chức năng; tối thiểu hóa logic quyết định dùng biểu thức nào để cài đặt. Với ba đầu vào, định nghĩa số minterm bằng số nhị phân ABC, trong đó A là bit cao nhất.
Ví dụ minterm 4 là ABC=100. Các hàng không được liệt kê là 0, 2, 6; chúng có đầu ra 0. Thay vì luôn cài năm hạng tích riêng, có thể nhóm các hạng chỉ khác một bit.
Bản đồ Karnaugh là bảng chân trị sắp theo thứ tự khác
Xếp cột BC theo 00, 01, 11, 10. Đây là thứ tự mã Gray, trong đó hai cột kề nhau chỉ đổi một bit. Cột ngoài cùng trái và phải cũng kề nhau.
| A / BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
Nhóm phải là hình chữ nhật với số ô . Bao gồm ô 0 sẽ đổi chức năng. Một ô 1 được phép thuộc nhiều nhóm.
- Nhóm bốn ô thuộc hai cột C=1: đầu ra vẫn là 1 khi A và B thay đổi, nên còn hạng C.
- Nhóm hai ô BC=00 và 01 ở hàng A=1: chỉ C thay đổi, nên còn .
- OR hai nhóm sẽ bao phủ mọi ô 1 và tránh mọi ô 0.
Đối chiếu định nghĩa gốc và biểu thức tối thiểu ở đủ tám đầu vào. Cần kiểm tra riêng hai điều: biểu thức ngắn hơn và chức năng vẫn như cũ.
Quá trình này chuyển hai nhóm trên bản đồ thành biểu thức. Trong nhóm C, A và B thay đổi; trong nhóm hai ô, C thay đổi, nên loại những biến đó khỏi hạng.
- m1,3,5,7: A, B đổi nhưng C=1
- m4,5: A=1, B=0; chỉ C đổi
- Tổng của hai nhóm: F = C + A · NOT B
don’t-care là quyền tối ưu và giả thiết đầu vào
Giả sử quy ước hệ thống bảo đảm ABC=000 không bao giờ xuất hiện. Đặt ô đó là X cho phép dùng như 0 hoặc 1 tùy nhu cầu. Có thể nhóm bốn ô B=0 để có biểu thức đơn giản hơn.
Biểu thức mới bằng 1 tại ABC=000, khác bảng chân trị đầy đủ ban đầu. Vì thế muốn nói “cùng mạch”, phải kèm điều kiện đầu vào không phải 000. Nếu 000 xuất hiện lúc khởi tạo hoặc phục hồi lỗi, tối ưu này có thể vi phạm yêu cầu hệ thống.
Tối thiểu hóa biểu thức khác với tối ưu chip
Ít literal hơn không bảo đảm diện tích, trễ và công suất đều tối ưu trong một thư viện cell cụ thể. Tải, fan-out, cổng phức hợp có sẵn, dây nối và glitch đều ảnh hưởng. Ở bước này cần chắc chắn về tương đương chức năng và giả thiết đầu vào; chi phí vật lý được đánh giá qua tổng hợp và kết quả thời gian.
Đọc thêm: MIT OpenCourseWare — Combinational Logic
Thực hành · Kiểm tra chồng nhóm và điều kiện don’t-care
F = C + A · ¬B
| ABC | F |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 0 |
| 011 | 1 |
| 100 | 1 |
| 101 | 1 |
| 110 | 0 |
| 111 | 1 |
- Chọn nhóm C. A và B đều đổi trong bốn ô, nên chỉ còn C.
- Chọn nhóm A·¬B. Nó bao phủ m4, m5; m5 chồng với nhóm C. Cho phép chồng nhóm nhưng không được chứa ô 0.
- Nhấn m0 hai lần: 0 → 1 → X. Sau khi thành X, đặc tả không đầy đủ có d(0). Nhóm B=0 mở rộng và biểu thức thành .
- Nhấn m0 thêm một lần để trở về 0. Khi yêu cầu gốc được khôi phục, nhóm lớn hơn phải biến mất.
Chọn nhóm không đổi giá trị. Toàn bộ biểu thức bao phủ các ô 1 vẫn giữ nguyên; khung chỉ nhấn mạnh một hạng đang xem. “Tối thiểu” ở đây ưu tiên số hạng tích, sau đó số literal; nếu có nhiều nghiệm, chỉ hiển thị một nghiệm.
Tự thử
Sau khi đổi m0 thành X, bạn cài F=C+NOT B. Nếu thêm yêu cầu ABC=000 có thể xuất hiện khi reset và khi ấy F phải bằng 0, còn giữ tối ưu này được không?
Đọc giải thích
Không thể giữ. Yêu cầu mới quy định m0=0 trở lại. Biểu thức tối ưu cho 1 tại 000 nên vi phạm; phải dùng biểu thức thỏa mọi hàng đã chỉ định, chẳng hạn C+A·NOT B ban đầu.