Đây là một chủ đề mà mình rất hay gặp và được hỏi khi đi phỏng vấn ở các công ty vi mạch. Ngoài những câu hỏi cơ bản thì nhà tuyển dụng có thể hỏi bạn nhưng câu hỏi kiểu thế này để xem mức độ hiểu và vận dụng kiến thức của bạn như thế nào.
Bài viết này sẽ được trình bày với các phần chính sau đây:
- Giới thiệu về bộ ghép kênh
- Giới thiệu các cổng logic bằng bộ ghép kênh
- Tổng kết
I. Giới thiệu về bộ ghép kênh
Bộ ghép kênh (Multiplexer hay còn được gọi là MUX), là một trong những mạch tổ hợp phổ biến thường được sử dụng. Hoạt động của nó rất đơn giản, như hình 1 minh họa bộ MUX 2:1 với hai ngõ vào D0, D1, chân Select và ngõ ra Y. Khi S = 0 thì ngõ ra Y = D0 và ngược lại.
II. Thiết kế các cổng logic bằng bộ ghép kênh
A. Cổng NOT (Inverter)
Cổng đảo có vẻ khá đơn giản khi ngõ ra sẽ đảo giá trị của ngõ vào. Chúng ta sẽ lợi dụng chân S (Select) của MUX làm ngõ vào A. Như đã đề cập ở trên, nếu S = 0 thì ngõ ra là và khi S = 1. Vậy nếu cho ngõ vào = 1 và = 0 và S = A thì ta có được cổng NOT được thiết kế từ MUX.
Hình 2. Minh họa cổng đảo sử dụng MUX
B. Cổng AND
Cổng AND cho ngõ ra bằng 1 khi cả 2 ngõ vào đều bằng 1.
Bảng 1. Bảng trạng thái cổng AND
Quan sát bảng trạng thái cổng AND ta có thể nhận thấy ngõ ra được chia làm 2 trường hợp như chú thích. Bằng 0 khi A = 0 và bằng B khi A = 1. Đây chính là mấu chốt để có thể thiết kế cổng AND từ bộ MUX 2:1. Nhận thấy ngõ ra phụ thuộc vào giá trị của A, ta sẽ sử dụng A làm chân S vì bộ MUX cũng sẽ thay đổi ngõ ra phụ thuộc vào chân S. Chân lúc này chính là ngõ vào B và = 0 (hay nối đất).
Để dễ hình dung hơn thì dưới đây là hình ảnh minh họa cho cổng AND tạo từ MUX.
Hình 3. Minh họa cổng AND từ MUX
Để kiểm tra lại xem thiết kế đã chính xác chưa ta thực hiện viết hàm ngõ ra như sau:
Y = A’.0 + A.B
Y= A.B
C. Cổng OR
Cổng OR cho ngõ ra bằng 1 khi chỉ cần 1 ngõ vào bằng 1. Tương tự như cổng AND ở trên, chúng ta sẽ nhóm bảng trạng thái thành 2 nhóm là A = 0 và khi A =1.
Bảng 2. Bảng trạng thái cổng OR
Từ bảng trạng thái ta có thể dễ dàng nhận thấy ngõ ra bằng B khi A = 0 và bằng 1 khi ngõ vào A = 1. Chúng ta sẽ vẫn lợi dụng điều này lấy chân A làm chân S, ngõ vào B là chân và chân được đưa lên 1 (nối lên nguồn). Hình 4 dưới đây minh họa thiết kế cổng OR sử dụng bộ MUX 2:1.
Hình 4. Minh họa cổng OR từ MUX
Để kiểm tra lại xem thiết kế đã chính xác chưa ta thực hiện viết hàm ngõ ra như sau:
Y = A’.B + A.1
Y = A’.B + A
Y = A’.B + A.(1+B)
Y = A’.B + A + A.B
Y = A + B.(A’+A)
Y = A + B
D. Cổng XOR (Exclusive OR)
Cổng XOR cho ngõ ra bằng 1 chỉ khi 2 ngõ vào khác nhau. Khi nhóm bảng trạng thái thành 2 nhóm như quy tắc áp dụng cho các cổng ở trên, ta thu được kết quả sau.
Bảng 3. Bảng trạng thái cổng XOR
Khi A = 0 ngõ ra chính bằng B và khi A = 1 thì ngõ ra tương đương với B’. Chúng ta sẽ vẫn chọn ngõ vào A làm chân S, hai chân và lần lượt là B và B’. Chúng ta có được thiết kế như hình 5 sau:
Hình 5. Minh họa cổng XOR từ MUX
Cuối cùng thực hiện viết hàm để kiểm tra thiết kế:
Y = A’.B + A.B’
E. Cổng NAND
Quy tắc vẫn như cũ và tương tự với các cổng trên, cổng NAND cho ngõ ra bằng 0 khi cả 2 ngõ vào bằng 1 (hay chính là cổng AND cho qua cổng đảo). Khi A = 0 thì ngõ ra tương ứng bằng 1, và khi A = 1 thì ngõ ra là B đảo.
Bảng 4. Bảng trạng thái cổng NAND
Ngõ vào A là chân S, 2 ngõ vào của MUX được nối lên 1 và B’. Thiết kế cổng NAND từ bộ MUX được mô tả như hình 6.
Hình 6. Minh họa cổng NAND từ MUX
Kiểm tra lại bằng cách viết hàm ngõ ra như sau:
Y = A’.1 + A.B’
Y = A’ + A.B’
Y = A’.(1+B’) + A.B’
Y = A’ + A’.B’ + A.B’
Y = A’ + B’.(A’+A)
Y = A’ + B’
F. Cổng NOR
Đảo bảng trạng thái của cổng OR ta có được cổng NOR, ngõ ra bằng 0 khi một trong các ngõ vào bằng 1. Đến đây thì có lẽ các bạn có thể dễ dàng tự thực hành được vì quy tắc rất đơn giản. Chúng ta quan sát ngõ ra khi A = 0 và khi A = 1 dễ thấy rằng ngõ ra tương ứng lần lượt bằng B’ và 0 như bảng 5 dưới đây:
Bảng 5. Bảng trạng thái cổng NOR
Chọn A làm chân S như các cổng khác, hai ngõ vào của MUX lần lượt là B’ và 0 (nối đất). Thiết kế được mô tả như hình 7 sau đây:
Hình 7. Minh họa cổng NOR từ MUX
Mình có một bài tập nho nhỏ, bạn hãy viết hàm ngõ ra trong trường hợp này xem có giống với hàm ngõ ra của cổng NOR không nhé!
III. Tổng kết
Thực ra những gì mình viết ở trên rất cơ bản, đối với nhiều bạn thì có thể nói là rất dễ. Nhưng đôi khi dưới áp lực trong khi phỏng vấn nếu bị hỏi có thể lúng túng quên mất hoặc không phân tích được quy luật.
Vì vậy mình mong bài viết này sẽ hữu ích với các bạn mới hoặc cơ hội ôn lại kiến thức cho những bạn đã vững kiến thức.