TL; DR
Cổng logic: Một logic nguyên thủy được cung cấp bởi một nhà thiết kế tương tự như một phần của thư viện các mạch nguyên thủy logic thực hiện một tập hợp các hàm Boolean được chọn.
Một cách để xem xét vấn đề này là chia nhỏ thuật ngữ và xem xét cụm từ “cổng logic” gợi ý gì trong bối cảnh thiết kế kỹ thuật số cổ điển nơi thuật ngữ này bắt nguồn (nghĩa cổ điển trước khi máy tính làm việc cho chúng ta). Cụm từ này bao gồm hai từ, ‘logic’ và ‘gate’. Hãy phân tích chúng một cách riêng biệt.
Tôi nghĩ rõ ràng là chúng ta liên kết một hàm Boolean với thuật ngữ ‘logic’ ở đây. Một hàm Boolean có thể được biểu diễn dưới dạng F (x1, x2, x3, …., xn), trong đó x1, x2, … vv là các đầu vào cho hàm. Có thể hiểu n có thể là một số lớn tùy ý. Tuy nhiên, thực sự viết ra các hàm này cho bất kỳ thứ gì nhiều hơn 4 đầu vào là điều tẻ nhạt và khó sử dụng. Nhưng nhiều hơn nữa, các nhà thiết kế logic đã có các kỹ thuật như bản đồ Karnaugh để phân tích và thiết kế các hàm logic đáp ứng nhu cầu của họ và các kỹ thuật này chỉ thực sự hữu ích với 4 biến và có thể là 5 nếu bạn thực sự phải làm vậy.
Kết quả của điều này là cụm từ “Hàm Boolean” có liên kết chỉ có một vài đầu vào, mặc dù về mặt lý thuyết, một hàm Boolean có thể có một số đầu vào tùy ý.
Bây giờ, chúng ta hãy xem xét thuật ngữ ‘cổng’ trong cùng một ngữ cảnh. Ý tưởng về một cánh cổng là một cái gì đó có điều kiện cho phép một cái gì đó đi qua hoặc không. Khi thiết kế một tập hợp logic lớn, sẽ rất hữu ích nếu bạn có những sự trừu tượng hóa tinh thần để chia độ phức tạp thành những đơn vị hiểu biết nhỏ hơn. Khái niệm về cổng là một trong những khái niệm trừu tượng.
Ý tưởng là chúng ta có một tín hiệu kỹ thuật số mà chúng ta muốn vượt qua hoặc dừng lại dựa trên một điều kiện. Vì vậy, chúng tôi muốn chọn một hàm Boolean thực hiện cổng theo các điều kiện cụ thể của chúng tôi. Một ví dụ về chức năng kiểm soát cơ bản sẽ là 2 đầu vào AND, giả sử với đầu vào A và B và đầu ra Q. Trong trường hợp này, chúng ta có thể chọn A là tín hiệu kiểm tra và B là tín hiệu truyền qua. Quan điểm có thể được thể hiện, “Nếu A cao thì chuyển B cho Q. Nếu A thấp, thì khối B từ Q.”
Một số hàm logic này có đặc tính là chúng sẽ đảo ngược tín hiệu đi qua cổng. Một kỹ thuật thiết kế sử dụng các bong bóng trong giản đồ để biểu diễn các nghịch đảo đã được sử dụng để thiết kế và điều khiển các đảo ngược này bằng cách sử dụng các phép biến đổi De Morgan của các cổng. Nói tóm lại, AND có thể được chuyển đổi thành OR với các bong bóng trên đầu vào và đầu ra của nó và các chuyển đổi khác như thế này. Điều này cực kỳ hữu ích để đơn giản hóa các hàm logic lớn hơn và làm cho chúng trở nên mạnh mẽ trước các mối nguy hiểm. (Thuật ngữ ‘nguy hiểm’ có ý nghĩa đặc biệt đối với các trường hợp thay đổi đầu vào logic của một hàm không làm thay đổi đầu ra logic, nhưng việc triển khai vật lý của logic có thể gây ra trục trặc ở đầu ra khi mạch ổn định ở giá trị chính xác .)
Do đó, thuật ngữ ‘cổng logic’ có thể được sử dụng để mô tả một hàm Boolean thực hiện định vị.
Bây giờ, để thiết kế một hàm logic với các bóng bán dẫn (hoặc bất cứ thứ gì) là rất nhiều công việc. Và có lẽ trớ trêu thay, đó lại là công việc dành cho một người có chuyên môn thiết kế tương tự hơn là chuyên môn kỹ thuật số. Do đó, có một sự phân công lao động tự nhiên giữa những người thiết kế các nguyên thủy logic và những người sử dụng các nguyên thủy logic đó. Vì vậy, có một câu hỏi tự nhiên cho nhà thiết kế tương tự làm việc quá sức, người được cho là thiết kế các nguyên thủy logic này: nên triển khai các hàm Boolean nào? Tất cả đều không được, vậy nên chọn tập con nào? Tập hợp con này nên có những thuộc tính nào? Đầu tiên, trình thiết kế logic sẽ có thể thực hiện mọi hàm logic có thể bằng cách soạn các hàm nguyên thủy. Nhưng hơn thế nữa, chúng phải là các chức năng hữu ích về mặt khái niệm cho người thiết kế sử dụng.
Với những loại câu hỏi và thực hành thiết kế này, có vẻ như thuật ngữ ‘cổng logic’ được gán để mô tả các nguyên thủy logic mà một nhà thiết kế tương tự cung cấp cho một nhà thiết kế logic như một thư viện các mạch thực hiện các hàm Boolean.
Kể từ thời xa xưa này, đã có nhiều tự động hóa hơn trong việc thiết kế các cổng logic và cả việc sử dụng chúng. Do đó, số lượng và loại nguyên thủy logic trong các thư viện này đã khác xa với khái niệm logic gating. Tuy nhiên, các cân nhắc thực dụng vẫn khuyến khích việc có một tập hợp con giới hạn các nguyên thủy logic được máy tính sử dụng để xây dựng logic kỹ thuật số, mặc dù tập hợp các hàm logic đó có thể thay đổi và lớn hơn một nhà thiết kế con người có thể biết phải làm gì.
Tuy nhiên, MUX đủ nhỏ để có thể hình dung được bằng cách sử dụng công nghệ có sẵn và thực sự, tôi có thể chứng minh rằng MUX nguyên thủy là một phần của một số thư viện tôi đã sử dụng. Mặc dù vậy, theo kinh nghiệm của tôi, máy tính có xu hướng ưu tiên soạn các cổng phức tạp để xây dựng các chức năng ghép kênh thay vì sử dụng các nguyên mẫu MUX. Vì vậy, chúng dường như ở đó nhiều hơn để tiêu dùng cho con người.
Bây giờ, bạn đã hỏi cụ thể về hàm XOR. Tôi đã thấy điều này được triển khai trong các thư viện logic và tôi coi đây là một cổng. Bây giờ, có thể khó nghĩ đây là việc thực hiện một hàm định vị theo nghĩa đen. Tuy nhiên, nó có thể được xem như một biến tần có điều kiện. Nếu một đầu vào cao, đầu vào kia sẽ được đảo ngược và nếu thấp, thì nó không được đảo ngược. Đó không phải là cách duy nhất để nghĩ về hàm XOR, nhưng logic không quan tâm. Khái niệm hóa là một công việc kinh doanh của con người.
Hơn nữa, chức năng XOR thường được thực hiện hiệu quả bằng cách sử dụng bóng bán dẫn, thậm chí nhiều hơn nếu được thực hiện bằng cách sử dụng các cổng khác. Do đó, nó là một nguyên thủy logic rất hữu ích cần có.