Cổng NAND (NAND Gate) là gì?
logic gate
1
Computational Theory
2
White

Cẩm Huỳnh viết ngày 04/01/2017

Logic Gate

Trước khi nói về cổng NAND, ta hãy tìm hiểu xem logic gate là gì?

Logic gate hiểu nôm na nó là một con chip làm một chức năng gì đó cụ thể, nó có thể thực hiện một logic đơn giản như And, Or hay phức tạp hơn như Adder.

Boolean function

Là lập trình viên tất nhiên ta đã quá quen với các hàm luận lý như And, OrNot như ở bên dưới.

Đương nhiên là với logic thì ta chỉ có hai giá trị là True/False, Đúng/Sai, Bật/Tắt hay 1/0.

# AND(x, y)

if x = 1 and y = 1 then output = 1
else output = 0
# OR(x, y)

if x = 1 or y = 1 then output = 1
else output = 0
# NOT(x)

if x = 1 then output = 0
else output = 1

Và với ba hàm luận lý này ta có thể biểu diễn được mọi biểu thức luận lý và từ đó suy ra là ta có thể điều khiển được hoạt động của một cái máy tính chỉ với ba hàm luận lý And, OrNot này.

Vậy thì liên quan gì đến NAND Gate ở đây?

Vấn đề liên quan đến một câu hỏi được đặt ra: Ta có thể biểu diễn được mọi hàm luận lý với And, OrNot, nhưng liệu ta có cần cả ba?

Câu trả lời là không và ta chỉ cần AndNot. Tại sao ta lại nói như vậy?

And and Not

Để chứng minh được chỉ AndNot là đủ, cách dễ nhất là ta chứng minh hàm Or có thể được biểu diễn bởi AndNot.

x OR y = NOT(NOT(x) AND NOT(y))

Vậy là ta đã chứng minh được chỉ với AndNot ta có thể biểu diễn được mọi biểu thức luận lý.

Vẫn chưa liên quan gì đến NAND cả?

Vâng và câu hỏi không chỉ dừng lại ở đó, mà tiếp diễn thành "Liệu ta có thể bỏ luôn cả And hoặc Not không?

Câu trả lời là không vì bản thân Not chỉ nhận một tham số đầu vào, còn And thì luôn trả về 0 nếu như có một đầu vào là 0.

Đó là chính là lý do ra đời của NAND.

NAND

Ta cùng xem qua truth table của NAND

 x | y |out
 0 | 0 | 1
 0 | 1 | 1
 1 | 0 | 1
 1 | 1 | 0

Đơn giản thì biểu thức của NAND là:

 NAND(x, y) = NOT(AND(x, y))

Ta có thể chứng minh được NAND có thể biểu diễn được bất kì một biểu thức luận lý nào bằng cách chứng minh nó có thể biểu diễn được AndNot

NOT(x) = NAND(x, x)
AND(x, y) = NOT(NAND(x, y))

Vậy là chỉ với NAND gate, bạn có thể xây dựng được một cái máy tính rồi.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Cẩm Huỳnh

45 bài viết.
433 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
53 5
image cover]imgcover] “Make it work, make it right, make it fast.” Bạn vừa viết xong một ứng dụng web :tada:. Mọi thứ chạy ổn. Code cũng đã được...
Cẩm Huỳnh viết 1 tháng trước
53 5
White
43 9
(Ảnh) Vì sao lại là Bật Đèn? Ai từng đọc qua Tắt Đèn hẳn đã biết tác phẩm được kết thúc bằng tình huống: Buông tay, chị vội choàng dậy, mở cửa...
Cẩm Huỳnh viết hơn 1 năm trước
43 9
White
41 25
Vừa rồi mình vừa tiết kiệm được $5 mỗi tháng sau khi migrate cái (Link) từ Digital Ocean sang Heroku Free Dyno. (Ảnh) Kết quả thật mĩ mãn vì hầu ...
Cẩm Huỳnh viết hơn 1 năm trước
41 25
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
45 bài viết.
433 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!