Thiết kế logic
🎯 Mục tiêu bài học
Sau chương này, sinh viên có thể:
✅ Mô tả đúng chức năng của một hệ thống logic tổ hợp.
✅ Biểu diễn hàm logic dưới dạng tổng tích (SOP) và tích tổng (POS).
✅ Rút gọn biểu thức logic bằng bản đồ Karnaugh (K-map) và phương pháp Quine–McCluskey.
✅ Thiết kế mạch số sử dụng các khối logic cơ bản như MUX, DEMUX, ENCODER, DECODER.
4.1. MÔ TẢ CHỨC NĂNG CỦA MẠCH LOGIC
🔹 Mạch tổ hợp là gì?
Là mạch logic không có bộ nhớ, nghĩa là đầu ra phụ thuộc hoàn toàn vào tổ hợp đầu vào tại một thời điểm.
🔹 Phương pháp mô tả:
- Dạng bảng chân trị (truth table): mô tả đầy đủ tất cả trạng thái vào/ra.
- Dạng biểu thức Boole: mô tả toán học mối liên hệ logic.
🔸 Ví dụ 1: Mô tả mạch xác định “đa số 1” trong 3 biến A, B, C
Yêu cầu: Mạch có đầu ra F = 1 nếu có ít nhất 2 trong 3 biến là 1.
| A | B | C | F |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Biểu thức ban đầu:
F = A·B + A·C + B·C
4.2. VIẾT HÀM DƯỚI DẠNG CHUẨN TẮC
🔹 Dạng SOP (Sum of Products)
Là tổng các tích (minterm). Dùng khi đầu ra = 1.
Ví dụ 2:
Dựa trên bảng chân trị ở ví dụ 1:
F = A·B + A·C + B·C
= A·B + A·C + B·C
→ Đây cũng là dạng đã rút gọn.
Hoặc viết đầy đủ:
F = A·B·C̅ + A·B̅·C + A̅·B·C + A·B·C
🔹 Dạng POS (Product of Sums)
Dùng khi đầu ra = 0. Viết dưới dạng tích các tổng (maxterm).
4.3. RÚT GỌN BIỂU THỨC BẰNG BẢN ĐỒ KARNaugh (K-MAP)
🔹 K-map 2 biến:
| A\B | 0 | 1 |
|---|---|---|
| 0 | 1 | 1 |
| 1 | 0 | 1 |
→ F = A̅ + B
🔸 Ví dụ 3: Rút gọn biểu thức từ bảng sau
| A | B | C | F |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Viết minterm:
F = A̅·B̅·C̅ + A̅·B̅·C + A̅·B·C + A·B·C̅ + A·B·C
Rút gọn bằng K-map (4 nhóm minterm liền kề):
F = A̅·B̅ + A̅·C + A·B
4.4. BIẾN NHẬP TRONG K-MAP
🔹 Gray Code cho sắp xếp biến
| 2 biến | 3 biến | 4 biến |
|---|---|---|
| 0 1 | 00 01 11 10 | 000 001 011 010 110 111 101 100 |
→ Sắp xếp theo Gray Code giúp các ô liền nhau chỉ khác 1 bit, tối ưu nhóm.
4.5. PHƯƠNG PHÁP QUINE – McCLUSKEY
🔹 Các bước chính:
- Viết tất cả minterm dưới dạng nhị phân.
- Nhóm theo số lượng bit 1.
- Ghép các minterm khác nhau đúng 1 bit → dấu gạch ngang.
- Lặp lại đến khi không thể ghép.
- Chọn biểu thức tối thiểu bao phủ tất cả các minterm.
🔸 Ví dụ 4:
Tối giản hàm F(A,B,C) có minterm: 0, 1, 2, 5, 6, 7.
| Minterm | Nhị phân |
|---|---|
| 0 | 000 |
| 1 | 001 |
| 2 | 010 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
- Ghép 000 – 001 → 00-
- Ghép 001 – 101 → -01
- Ghép 110 – 111 → 11-
Tối thiểu:
F = A̅·C̅ + B·C + A·B
4.6. THIẾT KẾ MẠCH DÙNG CÁC KHỐI LOGIC
🔹 Dùng MUX 4:1
MUX có thể biểu diễn bất kỳ hàm logic 2 biến.
🔸 Ví dụ 5: Thiết kế F = A̅ + B
Gán:
- A, B là ngõ chọn
- D0 = 1, D1 = 1, D2 = 0, D3 = 1
→ F = MUX(A,B,D0–D3)
🧠 GHI NHỚ NHANH
| Khái niệm | Ý nghĩa |
|---|---|
| Minterm | Tổ hợp biến tạo ra giá trị 1 |
| Maxterm | Tổ hợp biến tạo ra giá trị 0 |
| K-map | Công cụ rút gọn biểu thức trực quan |
| Gray Code | Dãy nhị phân kế tiếp chỉ đổi 1 bit |
| Quine-McCluskey | Phương pháp bảng logic tự động hóa |
🧪 BÀI TẬP ÁP DỤNG MỞ RỘNG
Bài 1:
Cho bảng chân trị sau:
| A | B | C | F |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
- Viết biểu thức SOP.
- Rút gọn bằng K-map.
- Vẽ sơ đồ logic.
Bài 2:
Tối giản hàm logic sau bằng phương pháp Quine–McCluskey:
F(A,B,C,D) = Σ(0, 2, 3, 5, 7, 8, 10, 11, 14, 15)
Bài 3:
Thiết kế hàm logic sau bằng MUX 8:1:
F(A,B,C) = Σ(1,2,4,7)
Bài 4:
Cho hàm:
F = (A̅ + B)·(C + A)
- Viết bảng chân trị
- Biểu diễn dưới dạng SOP và POS
- Thiết kế mạch dùng NAND
🔎 4.7. ỨNG DỤNG THỰC TẾ CỦA THIẾT KẾ LOGIC
✅ Ví dụ 1: Hệ thống camera chống trộm thông minh
🎯 Mục tiêu: Khi có chuyển động và cửa mở trong khi không có người ở nhà, hệ thống phát cảnh báo (bật còi, gửi tín hiệu tới app).
📌 Biến đầu vào:
| Biến | Mô tả | Giá trị logic |
|---|---|---|
| M | Motion – Có chuyển động | 1 = Có; 0 = Không |
| D | Door – Cửa đang mở | 1 = Mở; 0 = Đóng |
| H | Home – Có người ở nhà | 1 = Có; 0 = Không |
📌 Đầu ra:
| F | Báo động bật | 1 = Bật; 0 = Không |
🧮 Phân tích logic:
Chỉ bật báo động nếu:
- Có chuyển động (
M = 1) - Cửa mở (
D = 1) - Không có người ở nhà (
H = 0)
➡ Hàm logic:
F = M · D · H̅
🧰 Mô phỏng trong Logisim:
- Thêm 3 công tắc (Switch):
M,D,H - Thêm cổng NOT cho
H̅ - Nối 3 đầu vào tới cổng AND 3 ngõ → đầu ra là
F - Nối LED màu đỏ để hiển thị cảnh báo
🧪 Bài tập 1: Mở rộng hệ thống
Bổ sung cảm biến kính vỡ (G). Thiết lập điều kiện nếu:
M · D · H̅ = 1
hoặcG = 1
thì báo động.
➡ Hàm mới:
F = M·D·H̅ + G
👉 Thiết kế trên Logisim và thử các tổ hợp đầu vào!
✅ Ví dụ 2: Hệ thống đèn hành lang tự động
🎯 Mục tiêu: Đèn hành lang bật khi có người di chuyển vào buổi tối.
📌 Biến đầu vào:
| Biến | Mô tả | Giá trị logic |
|---|---|---|
| P | Presence – Phát hiện người | 1 = Có; 0 = Không |
| L | Light – Trời sáng | 1 = Sáng; 0 = Tối |
📌 Đầu ra:
| D | Đèn bật | 1 = Bật; 0 = Tắt |
📌 Hàm logic:
Đèn chỉ bật khi:
- Có người (
P = 1) - Trời tối (
L = 0)
➡ Hàm:
D = P · L̅
🧰 Dựng mạch:
- 2 công tắc
PvàL - 1 cổng NOT cho
L̅ - 1 cổng AND
- LED làm đèn
🧪 Bài tập 2: Thêm cảm biến âm thanh (tiếng vỗ tay – S) làm kích hoạt khẩn cấp → bật đèn nếu:
D = P · L̅ + S
✅ Ví dụ 3: Hệ thống điều khiển máy bơm nước tự động
🎯 Mục tiêu: Máy bơm hoạt động khi mực nước thấp, nguồn điện có, và công tắc khẩn cấp không bật.
📌 Biến đầu vào:
| Biến | Mô tả | Logic |
|---|---|---|
| W | Water level – Mực nước | 0 = thấp; 1 = cao |
| P | Power – Có điện | 1 = Có; 0 = Mất |
| E | Emergency – Công tắc khẩn | 1 = bật; 0 = tắt |
📌 Đầu ra:
| B | Bơm hoạt động | 1 = Có; 0 = Không |
📌 Hàm logic:
B = W̅ · P · E̅
🧪 Bài tập 3: Dựng mạch này trên CircuitVerse, thử điều kiện:
- Nước đầy, điện mất → bơm tắt
- Nước thấp, điện có, không khẩn cấp → bơm bật ✅
✅ Ví dụ 4: Khóa mở cửa bằng logic
🎯 Mục tiêu: Cửa chỉ mở khi mật khẩu đúng và không bị cảnh báo an ninh.
| Biến | Mô tả |
|---|---|
| K | Password đúng = 1 |
| A | Alert – cảnh báo = 1 |
| O | Mở cửa = 1 |
➡ Hàm:
O = K · A̅
🔧 Kỹ năng yêu cầu sinh viên luyện tập
| Kỹ năng | Hình thức luyện |
|---|---|
| Viết bảng chân trị từ mô tả | Lý thuyết + thực hành |
| Rút gọn bằng K-map | Giấy hoặc phần mềm |
| Thiết kế mạch bằng cổng logic | Logisim / CircuitVerse |
| Mở rộng hệ thống, thêm điều kiện mới | Sáng tạo mở |
🎓 BÀI TẬP TỔNG HỢP VÀ THỰC HÀNH
Bài 4: Thiết kế hệ thống điều khiển quạt thông minh
Quạt bật khi:
- Nhiệt độ cao (
T = 1) - Có người trong phòng (
P = 1) - Không ở chế độ nghỉ (
R = 0)
➡ Hàm:
F = T · P · R̅
Bài 5: Thiết kế bảng điều khiển đèn giao thông
Nếu
sensor = 1vàtimer = 0thì chuyển sang đèn xanh.
Hàm:
G = sensor · timer̅