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ến1.

ABCF
0000
0010
0100
0111
1000
1011
1101
1111

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\B01
011
101

→ F = A̅ + B


🔸 Ví dụ 3: Rút gọn biểu thức từ bảng sau

ABCF
0001
0011
0100
0111
1000
1010
1101
1111

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ến3 biến4 biến
0 100 01 11 10000 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:

  1. Viết tất cả minterm dưới dạng nhị phân.
  2. Nhóm theo số lượng bit 1.
  3. Ghép các minterm khác nhau đúng 1 bit → dấu gạch ngang.
  4. Lặp lại đến khi không thể ghép.
  5. 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.

MintermNhị phân
0000
1001
2010
5101
6110
7111
  • 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
MintermTổ hợp biến tạo ra giá trị 1
MaxtermTổ hợp biến tạo ra giá trị 0
K-mapCông cụ rút gọn biểu thức trực quan
Gray CodeDãy nhị phân kế tiếp chỉ đổi 1 bit
Quine-McCluskeyPhươ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:

ABCF
0000
0011
0101
0111
1000
1011
1100
1111
  1. Viết biểu thức SOP.
  2. Rút gọn bằng K-map.
  3. 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 độngcử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ếnMô tảGiá trị logic
MMotion – Có chuyển động1 = Có; 0 = Không
DDoor – Cửa đang mở1 = Mở; 0 = Đóng
HHome – 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:

  1. Thêm 3 công tắc (Switch): M, D, H
  2. Thêm cổng NOT cho
  3. Nối 3 đầu vào tới cổng AND 3 ngõ → đầu ra là F
  4. 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ặc
  • G = 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ếnMô tảGiá trị logic
PPresence – Phát hiện người1 = Có; 0 = Không
LLight – Trời sáng1 = 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 PL
  • 1 cổng NOT cho
  • 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ếnMô tảLogic
WWater level – Mực nước0 = thấp; 1 = cao
PPower – Có điện1 = Có; 0 = Mất
EEmergency – Công tắc khẩn1 = 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 đúngkhông bị cảnh báo an ninh.

BiếnMô tả
KPassword đúng = 1
AAlert – cảnh báo = 1
OMở cửa = 1

➡ Hàm:

O = K · A̅

🔧 Kỹ năng yêu cầu sinh viên luyện tập

Kỹ năngHì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-mapGiấy hoặc phần mềm
Thiết kế mạch bằng cổng logicLogisim / CircuitVerse
Mở rộng hệ thống, thêm điều kiện mớiSá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 = 1timer = 0 thì chuyển sang đèn xanh.

Hàm:

G = sensor · timer̅