MODULE 2: TƯ DUY “XÂY NHÀ” – TỪ CỔNG LOGIC ĐẾN MẠCH CHỨC NĂNG
Chào bạn! Rất vui được tiếp tục đồng hành cùng bạn trong lộ trình chinh phục FPGA. Chúng ta đã hoàn thành “nền móng” với các cổng logic ở Module 1. Bây giờ, chúng ta sẽ bắt đầu “xây nhà” bằng cách lắp ghép chúng thành những khối chức năng có ý nghĩa.
Logic gates to functional blocks
1. Giới thiệu
Chào mừng bạn đến với Module 2! Nếu Module 1 giúp bạn hiểu về những viên gạch đơn lẻ, thì bài học về Bộ giải mã (Decoder) chính là bước đầu tiên để bạn xây dựng một “căn phòng” chức năng. Trong thiết kế vi mạch, thông tin thường được nén dưới dạng mã nhị phân để tiết kiệm đường dây. Bộ giải mã đóng vai trò như một “phiên dịch viên” thông minh, nhận một mã số và chỉ định chính xác thiết bị nào được phép hoạt động.
Trong công nghiệp, bộ giải mã là “trái tim” của các hệ thống điều khiển địa chỉ: từ việc chọn đúng ngăn nhớ trong ổ cứng đến việc kích hoạt đúng cánh tay robot trong dây chuyền sản xuất. Với chip Artix-7 XC7A100T trên bo mạch AIOT-ARTIX7, khả năng giải mã diễn ra hoàn toàn song song. Không giống như phần mềm phải dùng các lệnh switch-case tiêu tốn thời gian, bộ giải mã phần cứng sử dụng các đường dây nối trực tiếp, giúp phản ứng tức thì ngay khi mã đầu vào thay đổi. Đây là chìa khóa để xử lý dữ liệu tốc độ cao mà bạn sẽ nắm vững ngay sau đây.
2. Nội dung chính
2.1. Khái niệm: Bộ giải mã là gì?
Hãy tưởng tượng bạn có 2 chiếc công tắc nhưng muốn điều khiển tới 4 chiếc đèn LED khác nhau. Làm thế nào để “ra lệnh” cho đúng chiếc đèn mình muốn? Đó chính là lúc cần đến Bộ giải mã n sang 2n.
Nguyên lý: Bạn đưa vào một mã nhị phân “n” bit, bộ giải mã sẽ kích hoạt duy nhất một trong số 2n đầu ra tương ứng với mã đó.
Ví dụ: Với bộ giải mã 2 sang 4 (n=2):
- Nhập mã 00 -> Đèn số 0 sáng.
- Nhập mã 01 -> Đèn số 1 sáng.
- Nhập mã 10 -> Đèn số 2 sáng.
- Nhập mã 11 -> Đèn số 3 sáng.

2-to-4 Decoder truth table
2.2. Ví dụ đời sống: Người quản lý thang máy
Hãy nghĩ về bảng nút bấm trong thang máy. Khi bạn nhấn nút số “4”, hệ thống không đi kiểm tra từng tầng một cách chậm chạp. Bộ giải mã bên trong sẽ nhận tín hiệu mã hóa cho “tầng 4” và kích hoạt đúng relay điều khiển động cơ dừng ở vị trí đó. Mọi thứ diễn ra dựa trên kết nối cứng (hard-wired), đảm bảo độ tin cậy tuyệt đối và tốc độ đáp ứng ngay lập tức.
2.3. Tư duy phần cứng song song trên FPGA
Đây là điểm khác biệt cốt lõi mà một kỹ sư FPGA cần ghi nhớ để phân biệt với lập trình phần mềm truyền thống:
- Trong vi điều khiển (MPU): Để giải mã, CPU phải thực hiện một chuỗi lệnh tuần tự: “Đọc giá trị -> So sánh với 0 -> Nếu không phải, so sánh với 1…”. Quá trình này tiêu tốn các chu kỳ xung nhịp.
- Trong FPGA (Artix-7): Bộ giải mã được tạo ra từ một mạng lưới các cổng AND và NOT kết nối song song vật lý. Ngay khi bạn gạt Switch trên bo AIOT-ARTIX7, dòng điện chạy xuyên qua các cổng này và đèn LED tương ứng sáng lên gần như cùng lúc với thao tác tay của bạn. Không có một “bộ não” nào phải suy nghĩ hay tính toán ở đây cả, chỉ có cấu trúc vật lý thực thi nhiệm vụ.
2.4. Gắn kết với bo mạch AIOT-ARTIX7
Trên bo mạch của chúng ta, chúng ta có thể thực hiện một thí nghiệm trực quan:
- Đầu vào: Sử dụng 3 Switch đầu tiên (SW1, SW2, SW3). Với 3 đầu vào nhị phân này, chúng ta có thể tạo ra 23 = 8 mã trạng thái khác nhau.
- Đầu ra: Kết nối tới 8 đèn LED (LED1 đến LED8).
- Hoạt động: Khi bạn gạt các Switch theo mã nhị phân (ví dụ 000, 001, 010…), bạn sẽ thấy chỉ duy nhất một đèn LED tương ứng sáng lên. Đây là minh chứng cho cách chúng ta quản lý tài nguyên (nhiều đèn LED) bằng cách sử dụng ít đường dây điều khiển (ít Switch) nhất có thể.
3. Tổng kết
- Chức năng: Bộ giải mã biến mã nhị phân đầu vào thành một vị trí đầu ra duy nhất được kích hoạt.
- Ứng dụng: Dùng để chọn thiết bị ngoại vi, giải mã địa chỉ bộ nhớ hoặc điều khiển các thanh hiển thị (như LED 7 đoạn).
- Tính song song: Trong chip Artix-7, giải mã là một quá trình vật lý tức thời, loại bỏ hoàn toàn độ trễ của phần mềm.
- Tối ưu hóa: Giúp tiết kiệm tối đa số lượng chân cắm (I/O) của chip khi cần quản lý và điều khiển nhiều thiết bị cùng lúc.
Kiểm tra kiến thức
Hãy hoàn thành các câu hỏi sau để kiểm tra mức độ nắm bắt của bạn về “Người phân loại” tín hiệu.
- Câu 1: Một bộ giải mã có 4 đầu vào nhị phân thì có thể điều khiển tối đa bao nhiêu đầu ra riêng biệt?
A. 4 đầu ra.
B. 8 đầu ra.
C. 16 đầu ra.
D. 32 đầu ra.
Xem đáp án & Giải thích
Đáp án đúng: C
Giải thích: Số lượng đầu ra của bộ giải mã được tính theo công thức 2n. Với n = 4 đầu vào, ta có 24 = 16 đầu ra.
- Câu 2: Tại sao bộ giải mã trong FPGA lại được coi là hoạt động “song song”?
A. Vì nó cần 2 người cùng vận hành.
B. Vì kết quả đầu ra được xác định ngay lập tức qua các cổng logic vật lý, không chạy lệnh tuần tự.
C. Vì nó có thể vừa giải mã vừa sạc pin cho bo mạch.
D. Vì nó chỉ hoạt động khi có ít nhất 2 đèn LED cùng sáng.
Xem đáp án & Giải thích
Đáp án đúng: B
Giải thích: Đây là đặc tính cốt lõi của phần cứng FPGA. Các đường dây và cổng logic phản ứng tức thì với tín hiệu điện mà không cần đợi nạp hay giải mã lệnh như CPU.
- Câu 3: Trong ví dụ về bo AIOT-ARTIX7, nếu mã đầu vào từ Switch là 000 và đèn LED số 0 sáng, khi bạn đổi mã thành 011, chuyện gì sẽ xảy ra?
A. Cả 8 đèn LED cùng sáng.
B. Đèn LED số 0 tắt và đèn LED số 3 sáng lên tức thì.
C. Chip Artix-7 sẽ bị nóng và dừng hoạt động.
D. Bạn phải đợi 1 giây để chip tính toán kết quả mới.
Xem đáp án & Giải thích
Đáp án đúng: B
Giải thích: Logic phần cứng (Decoder) luôn kích hoạt đầu ra tương ứng với mã nhị phân hiện tại. Mã 011 (số 3 thập phân) sẽ kích hoạt LED3 và tắt các LED còn lại ngay lập tức.
- Câu 4: Ứng dụng phổ biến nhất của bộ giải mã trong thực tế là gì?
A. Dùng để tăng điện áp cho mạch.
B. Dùng để giải mã địa chỉ để chọn đúng thiết bị hoặc ô nhớ cần làm việc.
C. Dùng để thay thế pin cho bo mạch.
D. Dùng để kết nối WiFi.
Xem đáp án & Giải thích
Đáp án đúng: B
Giải thích: Giải mã địa chỉ (Address Decoding) là ứng dụng kinh điển, giúp hệ thống biết chính xác cần giao tiếp với bộ phận nào trong hàng ngàn bộ phận dựa trên một mã địa chỉ duy nhất.
- Câu 5: Nếu bạn có 1024 đèn LED và muốn điều khiển từng cái một bằng bộ giải mã, bạn cần ít nhất bao nhiêu Switch đầu vào?
A. 10 Switch (vì 210 = 1024).
B. 1024 Switch.
C. 5 Switch.
D. 2 Switch.
Xem đáp án & Giải thích
Đáp án đúng: A
Giải thích: Để có 1024 đầu ra, ta cần n đầu vào sao cho 2n = 1024. Giải phương trình ta được n = 10. Đây là cách bộ giải mã giúp tiết kiệm tài nguyên chân I/O tối đa.
“Bạn đã nắm vững kiến thức về ‘Người phân loại’ tín hiệu! Hãy sẵn sàng để gặp gỡ ‘Nhà điều phối’ – Bộ chọn (Multiplexer) trong bài học tiếp theo nhé.”