Thiết Kế Các Cổng Logic (Logic Gate) bằng Bộ Ghép Kênh (MUX)

Tags: mux | rtl_design
Chủ Nhật, 12 tháng 05, 2024

Đâ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: 

  1. Giới thiệu về bộ ghép kênh
  2. Giới thiệu các cổng logic bằng bộ ghép kênh
  3. 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à 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 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.

——————————————————

Tìm hiểu lộ trình cho người mới bắt đầu để hiểu thêm về công việc, ngành nghề, đãi ngộ và những kiến thức cần thiết để học thiết kế vi mạch và tham gia vào thị trường vi mạch.
Lộ Trình Bắt Đầu Ngành Thiết Kế Vi Mạch Bán Dẫn

Truy cập Server EDA Miễn Phí của ICTC để thực hành thiết kế vi mạch:
Truy cập Server EDA Miễn Phí

Hiện tại ICTC đang mở các khóa học thiết kế vi mạch từ cơ bản đến nâng cao, các bạn có thể tìm hiểu tại các bài viết sau nhé:

Chủ Nhật, 12 tháng 05, 2024
semicolon;

Cộng Tác Viên ICTC

Mình là một sinh viên đang tìm tìm hiểu và học hỏi về ngành vi mạch. Hi vọng bài viết này và những bài viết trong tương lai của mình sẽ cung cấp các kiến thức vi mạch với một góc nhìn thân thuộc và dễ hiểu hơn với những ai cũng đang tìm hiểu hay có ý định chuyển ngành như mình.

Đội Ngũ Giảng Viên Đến Từ Các Công ty vi mạch hàng đầu với NHiều năm kinh nghiệm

Khóa học thiết kế vi mạch ICTC giảng viên từ Ampere
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ MediaTek Singapore
Khóa học thiết kế vi mạch ICTC giảng viên từ BOS
Khóa học thiết kế vi mạch ICTC giảng viên từ Marvell
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ NSING
Lê Tiến Đạt

Lê Tiến Đạt

DFT Engineer - SemiFive

"Mình chuyển sang vi mạch thực sự khoảng đầu năm nay, mông lung và mất định hướng. Trong quá trình tự học thì biết đến ICTC, cũng nghĩ mục tiêu ban đầu là học để có cái nhìn tổng quát về ngành chứ không nghĩ là sẽ nhận được nhiều như vậy từ các anh. Mình phỏng vấn lần đầu tiên vào tháng 1, sau 6 tháng nỗ lực và tham gia cùng với ICTC thì mình nhận được offer."

Nguyễn Thị Phương Quỳnh

Nguyễn Thị Phương Quỳnh

Technical Engineer - Synopsys

"Trong mùa hè muốn phát triển bản thân, mình đã chọn tham gia khóa học IC Overview tại ICTC để củng cố kiến thức về RTL và DV. Trước đây, mình chỉ tập trung coding module mà bỏ qua kỹ năng thiết kế - điều cốt lõi của kỹ sư vi mạch. Qua khóa học, mình hiểu rõ hơn vai trò và công việc thực tế của một kỹ sư vi mạch. Đội ngũ giảng viên giàu kinh nghiệm đã hỗ trợ tận tình cả trong và ngoài lớp học, giúp mình cải thiện đáng kể, đặc biệt khi phỏng vấn cho các offer hiện tại của mình. Xin cảm ơn anh Ân và ICTC rất nhiều!"

Phan Vinh Phong

Phan Vinh Phong

RTL Design Engineer - BOS Semiconductor

"Những ngày tu luyện miệt mài trên server của ICTC được đền đáp bằng một offer RTL Design đầu tiên, một thành quả không tưởng với bản thân mình của 3 tháng trước. Mình thực sự rất biết ơn các anh giảng viên trong đội ngũ ICTC đã tạo nên một môi trường học tập vô cùng chuyên nghiệp, tâm huyết và đầy cảm hứng để các bạn trẻ như mình, dù xuất phát điểm trái ngành, vẫn có thể tự tin theo đuổi và hiện thực hóa giấc mơ của trong lĩnh vực vi mạch."

Nguyễn Thanh Vương

Nguyễn Thanh Vương

Design Verification Engineer - FPT Semiconductor

"Khóa học quá oke ấy chứ ạ. Lúc trước em fail 3 lần pv và nhận ra mình thiếu project vs tool EDA thực tế, khóa học có server vs thạo VIM em thấy lợi thế hơn hẳn luôn ấy."

Lê Duy Thức

Lê Duy Thức

Technical Engineer - Synopsys

"Khóa học thiết kế vi mạch cơ bản do anh Ân phụ trách thật sự rất bổ ích. Anh Ân dạy rất dễ hiểu, lại còn cực kỳ thân thiện và luôn sẵn sàng hỗ trợ tụi em khi gặp khó khăn. Em thấy nội dung khóa học giúp ích rất nhiều cho quá trình phỏng vấn thực tập sau này. Đặc biệt, phần final project khiến em nắm vững hơn về cách đọc và hiểu code RTL, cực kỳ thực tế và sát với công việc. Đây là một khóa học đáng giá cho những ai muốn học và làm về thiết kế vi mạch."

Phan Minh Khôi

Phan Minh Khôi

PD Engineer - ADT Technology & SNST

"Nhờ các kiến thức của khóa học tại trung tâm nên em có cái nhìn chi tiết hơn về ngành, giúp em trả lời tốt các câu hỏi tạo điểm cộng trong mắt nhà tuyển dụng."

Nổi Bật

Tổng Kết Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 6 2024

Tổng Kết Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 6 2024

Hôm nay, khóa học Thiết kế Vi mạch Cơ bản tại Trung tâm ICTC đã chính thức khép lại với buổi lễ tổng kết ý nghĩa. Đây là dịp để giảng viên và học viên cùng nhau nhìn lại hành trình học tập, những thành quả đạt được, và chia sẻ cảm nghĩ sau khóa học. Cảm Nghĩ Của Học...

TỔNG KẾT OFFLINE VI MẠCH 07/2024

TỔNG KẾT OFFLINE VI MẠCH 07/2024

Vậy là sau hơn 4 tiếng đồng hồ giao lưu và chia sẻ các kiến thức về tổng quan ngành vi mạch, các vị trí việc làm, tuyển dụng, các kinh nghiệm học tập, phỏng vấn, ... buổi offline ngày hôm nay đã kết thúc thành công tốt đẹp.Rất cảm ơn các bạn đã không ngại đường xá xa...

Bài Viết Mới

VLSI Testing – Phần 3: Testing Trong Quy Trình Sản Xuất IC

VLSI Testing – Phần 3: Testing Trong Quy Trình Sản Xuất IC

Bài viết nằm trong series về VLSI Testing Hình dưới đây mô tả các bước để làm ra 1 con chip. Sau khi chip đã được thiết kế hoàn chỉnh, một số con chip mẫu (prototype chip) sẽ được gửi về để test (prototype test). Sau khi quá trình testing hoàn tất và fix tất cả các...

VLSI Testing – Phần 2: Test Là Quá Trình Đưa Ra Quyết Định

VLSI Testing – Phần 2: Test Là Quá Trình Đưa Ra Quyết Định

Bài viết nằm trong series bài viết về VLSI Testing Các Khả Năng Xảy Ra Khi Test Chip Có 4 khả năng xảy ra khi test chip 1.True PASS: tất cả các tính năng của chip đều được test một cách chính xác, chip hoạt động tốt, không có defect nào cả. 2.Test escape: quá trình...

VLSI Testing – Phần 1: VLSI Testing (Chip Testing) Là Gì?

VLSI Testing – Phần 1: VLSI Testing (Chip Testing) Là Gì?

Bài viết nằm trong series bài viết về VLSI Testing. VLSI Testing là gì? VLSI testing, hay chip testing là quá trình diễn ra sau IC đã được sản xuất, nhằm xác định một phần hoặc toàn bộ chip hoạt động đúng tính năng hay không (PASS or FAIL).Testing là công đoạn bắt...

BẠN CHƯA BIẾT BẮT ĐẦU TỪ ĐÂU?

Sau nhiều năm tư vấn và đào tạo vi mạch cho hàng trăm bạn sinh viên, học sinh và phụ huynh, kết hợp với kinh nghiệm từ các anh chị kỹ sư vi mạch có nhiều năm kinh nghiệm, đây là tất cả những kinh nghiệm và tài liệu mà mình đúc kết, tổng hợp lại được thành một quy trình tìm hiểu ngành vi mạch để các bạn mình mới tham gia vào ngành có thể bắt đầu một cách hiệu quả nhất.

 

Bấm nút bên dưới để tìm hiểu về ngành, về nghề nghiệp cũng như những thứ bản thân cần chuẩn bị để tham gia vào hành trình trở thành kỹ sư vi mạch tuy có phần gian nan nhưng vô cùng thú vị bạn nhé!

LỘ TRÌNH TỰ HỌC VI MẠCHGROUP CHAT HỌC TẬP VI MẠCH