TÓM TẮT
- 1 1. Giới thiệu chung về biểu đồ Karnaugh
- 2 2. Cấu trúc cơ bản của K‑map
- 3 3. Nguyên tắc nhóm trong K‑map
- 4 4. Các bước thực hiện vẽ và rút gọn K‑map
- 5 5. Ví dụ chi tiết
- 6 6. Các lỗi thường gặp khi vẽ K‑map và cách khắc phục
- 7 7. Mở rộng: Sử dụng K‑map trong thiết kế thực tế
- 8 8. So sánh K‑map với các phương pháp khác
- 9 9. Thực hành: Bài tập tự luyện
- 10 10. Kết luận
1. Giới thiệu chung về biểu đồ Karnaugh
Biểu đồ Karnaugh (thường được gọi tắt là K‑map) là một công cụ đồ họa giúp đơn giản hoá các hàm Boolean, giảm thiểu số lượng biến và các mệnh đề logic trong mạch số. Được phát triển bởi Maurice Karnaugh vào năm 1953, K‑map đã trở thành một trong những phương pháp phổ biến nhất trong thiết kế mạch số, vì nó cho phép người dùng trực quan hoá các thuật toán logic mà không cần phải thực hiện các phép biến đổi đại số phức tạp.
1.1 Lợi ích của việc sử dụng K‑map
- Tiết kiệm thời gian: Thay vì thực hiện các phép biến đổi algebraic như quy tắc De Morgan, luật hấp thụ, … người dùng chỉ cần “đánh dấu” các ô trong bảng và nhóm chúng lại.
- Giảm sai sót: Việc trực quan hoá giúp giảm khả năng mắc lỗi trong quá trình rút gọn.
- Tối ưu hoá mạch: K‑map giúp tìm ra biểu thức logic tối thiểu, từ đó giảm số cổng logic, giảm tiêu thụ năng lượng và chi phí sản xuất.
- Dễ học: Đối với sinh viên, K‑map là công cụ đầu tiên để làm quen với việc tối ưu hoá hàm Boolean trước khi chuyển sang các công cụ tự động như Quine‑McCluskey hay phần mềm CAD.
1.2 Ứng dụng thực tiễn
- Thiết kế mạch điều khiển (PLC, FPGA, ASIC)
- Tối ưu hoá bộ nhớ (ROM, PLA, PAL)
- Kiểm tra tính toàn vẹn trong thiết kế logic
- Phân tích và thiết kế các bộ mã hoá, giải mã
2. Cấu trúc cơ bản của K‑map
2.1 K‑map cho 2 biến
| AB | 0 | 1 |
|---|---|---|
| 0 | ||
| 1 |
- Trục hàng: biến A
- Trục cột: biến B
2.2 K‑map cho 3 biến

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Gauge: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
| BC=00 | BC=01 | BC=11 | BC=10 | |
|---|---|---|---|---|
| A=0 | ||||
| A=1 |
Lưu ý: Các cột được sắp xếp theo thứ tự Gray code (00, 01, 11, 10) để các ô liền kề chỉ thay đổi một biến.
2.3 K‑map cho 4 biến
| CD=00 | CD=01 | CD=11 | CD=10 | |
|---|---|---|---|---|
| AB=00 | ||||
| AB=01 | ||||
| AB=11 | ||||
| AB=10 |
- Hai biến ở hàng (AB) và hai biến ở cột (CD), mỗi nhóm đều tuân thủ Gray code.
- Số ô: (2^4 = 16).
2.4 K‑map cho 5 và 6 biến
- 5 biến: Hai bản K‑map 4‑biến chồng lên nhau (một cho biến thứ 5 = 0, một cho biến thứ 5 = 1).
- 6 biến: Bốn bản K‑map 4‑biến (biến 5 và 6 tạo thành 2‑bit, có 4 tổ hợp).
Việc mở rộng sang 5‑6 biến làm tăng độ phức tạp, nhưng nguyên tắc nhóm “liền kề” vẫn giữ nguyên.
3. Nguyên tắc nhóm trong K‑map
K‑map dựa trên ba quy tắc cơ bản:
- Nhóm các ô có giá trị 1 (hoặc 0 nếu thực hiện SOP/ POS ngược) thành các khối có kích thước là lũy thừa của 2 (1, 2, 4, 8, …).
- Mỗi nhóm phải bao gồm số ô là lũy thừa của 2 và có thể bao quanh biên (đối xứng vòng).
- Mỗi ô 1 (hoặc 0) phải được bao phủ ít nhất một lần, nhưng có thể được bao phủ nhiều lần nếu giúp giảm số biến trong biểu thức.
3.1 Kích thước nhóm và ảnh hưởng tới biểu thức
| Kích thước nhóm | Số biến được loại bỏ | Ví dụ cho 4 biến |
|---|---|---|
| 1 ô (1) | 0 | (ABCD) |
| 2 ô (2) | 1 | (ABC) (loại biến D) |
| 4 ô (4) | 2 | (AB) (loại C, D) |
| 8 ô (8) | 3 | (A) (loại B, C, D) |
| 16 ô (16) | 4 | 1 (tất cả biến được loại bỏ) |
3.2 Nhóm “đóng vòng” (wrap‑around)

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Các ô ở biên trên và biên dưới, hoặc biên trái và biên phải, được coi là liền kề.
- Nhóm có thể “bọc” quanh cả bảng, ví dụ: trong K‑map 4‑biến, ô (AB=00, CD=00) và ô (AB=00, CD=10) là liền kề vì chỉ có biến D thay đổi.
3.3 Nhóm chồng lấn (overlap)
- Khi một ô 1 có thể được bao phủ bởi nhiều nhóm, việc chồng lấn giúp giảm số biến trong mỗi nhóm, dẫn tới biểu thức tổng quát ngắn hơn.
- Tuy nhiên, cần tránh tạo ra nhóm không cần thiết khiến biểu thức cuối cùng dài hơn.
4. Các bước thực hiện vẽ và rút gọn K‑map
Dưới đây là quy trình chi tiết, áp dụng cho bất kỳ số biến nào.
Bước 1: Xác định hàm và bảng chân trị
- Viết hàm Boolean dưới dạng bảng chân trị (truth table) hoặc danh sách minterm (cho SOP) / maxterm (cho POS).
- Ví dụ: hàm (F(A,B,C,D) = Σ(0,2,5,7,8,10,13,15)).
Bước 2: Vẽ K‑map tương ứng
- Chọn kích thước K‑map phù hợp với số biến.
- Đánh số ô theo Gray code.
- Đánh dấu các ô có giá trị 1 (hoặc 0 tùy vào SOP/POS).
Bước 3: Nhóm các ô 1 thành các khối lũy thừa 2
- Bắt đầu với các nhóm lớn nhất (8, 4, 2, 1) để tối ưu hoá.
- Kiểm tra khả năng “wrap‑around” và “overlap” để tạo nhóm lớn hơn.
Bước 4: Viết biểu thức cho mỗi nhóm
- Với mỗi nhóm, xác định các biến không thay đổi (cùng giá trị) trong toàn bộ ô của nhóm.
- Các biến thay đổi sẽ bị loại bỏ.
- Viết product term (AND) của các biến còn lại (đối với SOP) hoặc sum term (OR) cho POS.
Bước 5: Kết hợp các term lại thành biểu thức tối thiểu

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Ex: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Đối với SOP: OR các product term.
- Đối với POS: AND các sum term.
Bước 6: Kiểm tra tính đúng đắn
- So sánh biểu thức rút gọn với bảng chân trị gốc.
- Nếu có sự khác biệt, kiểm tra lại các nhóm đã tạo (có thể bỏ sót ô hoặc nhóm không tối ưu).
5. Ví dụ chi tiết
5.1 Ví dụ 1: Hàm 3 biến
Hàm: (F(A,B,C) = Σ(1,3,5,7))
Bước 1: Bảng chân trị
| A | B | C | F |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
Bước 2: Vẽ K‑map
| BC=00 | BC=01 | BC=11 | BC=10 | |
|---|---|---|---|---|
| A=0 | 0 | 1 | 1 | 0 |
| A=1 | 0 | 1 | 1 | 0 |
Bước 3: Nhóm
- Nhóm 4 ô ở cột BC=01 và BC=11 (hai cột liền nhau) => 4 ô liên tiếp.
- Nhóm này bao gồm các ô (A=0, BC=01), (A=0, BC=11), (A=1, BC=01), (A=1, BC=11).
Bước 4: Viết term
- Trong nhóm, biến B luôn = 1 (cột 01 và 11 đều có B=1), C thay đổi (0 và 1), A thay đổi (0 và 1) → chỉ còn B.
- Term: (B).
Bước 5: Biểu thức tối thiểu
(F = B)
Kiểm tra: B đúng với bảng chân trị.
5.2 Ví dụ 2: Hàm 4 biến
Hàm: (F(A,B,C,D) = Σ(0,2,5,7,8,10,13,15))
Bước 1: Bảng chân trị (rút gọn, chỉ liệt kê minterm)
Minterm: 0 (0000), 2 (0010), 5 (0101), 7 (0111), 8 (1000), 10 (1010), 13 (1101), 15 (1111)
Bước 2: Vẽ K‑map 4‑biến
| CD=00 | CD=01 | CD=11 | CD=10 | |
|---|---|---|---|---|
| AB=00 | 1 (0) | 0 | 0 | 1 (2) |
| AB=01 | 0 | 1 (5) | 1 (7) | 0 |
| AB=11 | 0 | 1 (13) | 1 (15) | 0 |
| AB=10 | 1 (8) | 0 | 0 | 1 (10) |
Bước 3: Nhóm
- Nhóm 4 ô: Các ô (0,2,8,10) tạo thành một khối 4 ô (cột CD=00 và CD=10, hàng AB=00 và AB=10).
-
Các biến không thay đổi: C=0, D thay đổi, A thay đổi, B=0? Kiểm tra: ô 0 (AB=00, CD=00) và ô 2 (AB=00, CD=10) → B=0, A=0; ô 8 (AB=10, CD=00) → A=1, B=0; ô 10 (AB=10, CD=10) → A=1, B=0. Như vậy B=0 luôn, C=0 luôn. Term: (\overline{B}\,\overline{C}).
-
Nhóm 4 ô: Các ô (5,7,13,15) tạo thành khối 4 ô (cột CD=01 và CD=11, hàng AB=01 và AB=11).
- Kiểm tra: B=1 luôn, C=1 luôn. Term: (B\,C).
Bước 4: Viết biểu thức
(F = \overline{B}\,\overline{C} + B\,C)
Bước 5: Rút gọn thêm (nếu có)
Biểu thức trên đã tối thiểu (2 term, mỗi term 2 biến). Không thể giảm hơn.
5.3 Ví dụ 3: Hàm 5 biến (POS)

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ E‑p: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Hàm: (F(A,B,C,D,E) = Π(1,3,4,6,9,11,12,14)) (maxterm)
Bước 1: Viết maxterm dưới dạng các ô 0 trong K‑map 5‑biến
- K‑map 5‑biến gồm hai lớp: E=0 và E=1.
- Đánh dấu các ô tương ứng với các maxterm (giá trị 0).
Bước 2: Vẽ K‑map
(Do giới hạn không gian, ta mô tả cách thực hiện)
- Lớp E=0: K‑map 4‑biến (A,B,C,D) với các minterm: 1,3,4,6.
- Lớp E=1: K‑map 4‑biến với các minterm: 9,11,12,14.
Bước 3: Nhóm các ô 0
- Nhóm 4 ô trong mỗi lớp tạo thành các term dạng ((A + \overline{C})) … (chi tiết tùy theo vị trí).
Bước 4: Viết biểu thức POS tối thiểu
Giả sử sau khi nhóm ta thu được:
(F = (A + \overline{C} + E)(\overline{B} + D + \overline{E}))
(đây chỉ là ví dụ minh hoạ; thực tế cần thực hiện chi tiết).
6. Các lỗi thường gặp khi vẽ K‑map và cách khắc phục
| Lỗi | Mô tả | Cách khắc phục |
|---|---|---|
| Sắp xếp Gray code sai | Đặt các cột/ hàng không theo Gray code, gây sai nhóm | Kiểm tra lại thứ tự: 00, 01, 11, 10 |
| Bỏ qua nhóm lớn hơn | Chỉ tạo nhóm 2 ô khi có thể tạo nhóm 4 ô | Luôn bắt đầu từ nhóm lớn nhất, giảm dần |
| Không xét wrap‑around | Bỏ qua các ô ở biên có thể nhóm với nhau | Nhớ rằng biên trên và dưới, trái và phải đều liền kề |
| Nhóm 1 ô khi có thể nhóm 2 ô | Tăng số biến trong term | Kiểm tra lại khả năng mở rộng nhóm |
| Nhóm chồng lấn không cần thiết | Tạo nhiều term vô nghĩa | Đánh giá lại mỗi nhóm, chỉ giữ những nhóm giúp giảm biến |
| Quên xét minterm 0 (đối với SOP) | 0 có thể tạo nhóm 1 ô nếu không có 1 ở vị trí đó | Đánh dấu tất cả các ô, kể cả 0, để quyết định SOP hay POS |
7. Mở rộng: Sử dụng K‑map trong thiết kế thực tế
7.1 Tối ưu hoá ROM và PLA
- ROM: Khi lập bảng truth cho ROM, các dòng không dùng có thể được tối thiểu hoá bằng K‑map để giảm số địa chỉ cần lưu.
- PLA (Programmable Logic Array): K‑map giúp xác định các product term chung, giảm số cổng AND trong phần “AND‑plane”.
7.2 K‑map và FPGA
- Mặc dù FPGA hiện nay dùng công cụ tự động (synthesis), việc hiểu K‑map giúp:
- Kiểm tra kết quả tối ưu tự động.
- Tối ưu hoá các block logic nhỏ (LUT) khi thiết kế thủ công.
7.3 K‑map trong công cụ CAD
- Nhiều phần mềm (Logisim, Quartus, Vivado) cung cấp tính năng “K‑map simplifier”. Người dùng có thể nhập bảng chân trị, phần mềm sẽ thực hiện nhóm tự động, nhưng kiến thức K‑map vẫn cần để:
- Đánh giá độ tối ưu.
- Sửa lỗi khi công cụ không đưa ra kết quả tối ưu nhất (đôi khi do giới hạn thuật toán).
8. So sánh K‑map với các phương pháp khác
| Phương pháp | Ưu điểm | Nhược điểm |
|---|---|---|
| K‑map | Trực quan, nhanh cho ≤6 biến | Không khả thi cho >6 biến |
| Quine‑McCluskey | Tự động, áp dụng cho nhiều biến | Tốn thời gian tính toán khi biến >10 |
| Espresso heuristic | Hiệu quả cho rất nhiều biến, tối ưu nhanh | Không luôn cho kết quả tối ưu tuyệt đối |
| Synthesis tool (HDL) | Tự động, tích hợp trong workflow | Đôi khi sinh ra logic không tối thiểu, phụ thuộc vào thuật toán nội bộ |
9. Thực hành: Bài tập tự luyện

-
Bài 1: Rút gọn hàm (F(A,B,C) = Σ(0,2,3,5,7)).
Gợi ý: Vẽ K‑map 3‑biến, tìm nhóm lớn nhất. -
Bài 2: Với hàm 4‑biến (F = Σ(1,4,6,7,9,11,13,15)), viết biểu thức SOP tối thiểu và sau đó viết biểu thức POS tối thiểu.
-
Bài 3: Đối với hàm 5‑biến (F = Π(0,2,5,7,8,10,13,15)), thực hiện K‑map cho POS và đưa ra biểu thức tối thiểu.
Sau khi hoàn thành, bạn có thể kiểm tra đáp án bằng công cụ Logisim hoặc phần mềm trực tuyến “K‑map Solver”.
10. Kết luận
Biểu đồ Karnaugh là một công cụ mạnh mẽ, giúp các kỹ sư và sinh viên thiết kế mạch số một cách trực quan và hiệu quả. Bằng cách nắm vững các nguyên tắc nhóm, cách sắp xếp Gray code và quy trình rút gọn, bạn có thể:
- Giảm đáng kể số lượng cổng logic cần dùng.
- Tối ưu hoá chi phí, năng lượng và độ phức tạp của mạch.
- Hiểu sâu hơn về cấu trúc hàm Boolean, từ đó dễ dàng áp dụng vào các công cụ tự động hiện đại.
Hãy luyện tập thường xuyên với các bài tập thực tế, từ các hàm đơn giản đến phức tạp, và kết hợp K‑map với các phương pháp tự động để đạt được kết quả tốt nhất trong thiết kế số. Chúc bạn thành công!
