Các cổng logic: AND, OR, NAND, XOR, NOT

Qua hai bài viết trước, chúng ta đã có một cái nhìn tổng quan về FPGA. Bây giờ, bạn đang muốn trở thành một nhà thiết kế kỹ thuật số giỏi. Công việc của bạn là “vẽ mạch điện bằng code” để kết nối các phần tử cơ bản trong FPGA (các cổng Logic) thành một “phần cứng” thực hiện chức năng lý thú nào đó.

Các cổng Logic là gì?

Đại số Boolean là nền tảng cho hoạt động của một FPGA. Đại số Boolean mô tả các phép tính trong đó đầu vào và đầu ra chỉ lấy giá trị đúng hoặc sai (1 hoặc 0). Đừng lo lắng nếu bạn không giỏi tính toán, đại số Boolean là môn toán cơ bản nhất rồi! Nó được giới thiệu vào năm 1854 bởi nhà toán học George Boole. Qua các quy tắc của đại số Boolean, chúng ta có thể tạo ra một nền tảng để thực hiện tất cả các phép toán logic cơ bản.

Các phép tính mà chúng ta sẽ thảo luận trong bài viết này bao gồm: AND, OR, NOT, XOR và NAND. Bằng cách kết hợp các cổng này, chúng ta có thể tạo ra nhiều phép logic phức tạp hơn như cộng, trừ, chia, v.v… Tuy nhiên, trước tiên chúng ta cần hiểu những cổng này một cách cơ bản.

Khái niệm đầu tiên mà chúng ta cần biết là “Bảng Chân lý” (Truth-Table). Bảng chân lý giúp mô tả chức năng của một cổng dựa trên các giá trị đầu vào và đầu ra. Nhìn vào bảng chân lý của cổng AND, chúng ta sẽ hiểu rõ hơn.

Cổng AND

Một cổng AND có 2 đầu vào và 1 đầu ra. Mỗi giá trị đầu vào có thể là 0 hoặc 1 và giá trị đầu ra phụ thuộc vào 2 giá trị đầu vào. Đầu ra chỉ là 1 khi cả hai giá trị đầu vào đều là 1 (giống như mạch điện gồm 2 công tắc nối tiếp với một bóng đèn, chỉ khi cả hai công tắc đóng thì bóng đèn mới sáng). Dưới đây là mô hình và bảng chân lý cho cổng AND:

cổng AND

Cổng OR

Một cổng OR cũng có 2 đầu vào và 1 đầu ra. Giá trị đầu ra của cổng OR là 1 khi ít nhất một giá trị đầu vào là 1. Dưới đây là mô hình và bảng chân lý cho cổng OR:

cổng OR

Cổng NOT

Cổng NOT chỉ có 1 đầu vào và 1 đầu ra. Giá trị đầu ra của cổng NOT là đảo ngược của giá trị đầu vào. Nếu giá trị đầu vào là 0, thì giá trị đầu ra sẽ là 1 và ngược lại. Dưới đây là mô hình và bảng chân lý cho cổng NOT:

cổng NOT

Cổng XOR

Cổng XOR có 2 đầu vào và 1 đầu ra. Giá trị đầu ra của cổng XOR là 1 khi chỉ có một giá trị đầu vào là 1. Nếu cả hai giá trị đầu vào giống nhau, thì giá trị đầu ra sẽ là 0. Dưới đây là mô hình và bảng chân lý cho cổng XOR:

cổng XOR

Cổng NAND

Cuối cùng, cổng NAND cũng có 2 đầu vào và 1 đầu ra. Giá trị đầu ra của cổng NAND là đảo ngược của giá trị đầu vào AND. Nếu cả hai giá trị đầu vào của cổng NAND đều là 1, thì giá trị đầu ra sẽ là 0. Dưới đây là mô hình và bảng chân lý cho cổng NAND:

cổng NAND

Kết luận

Như vậy, chúng ta đã tìm hiểu về các cổng logic cơ bản trong FPGA như AND, OR, NOT, XOR và NAND. Đây chỉ là một phần của những gì bạn có thể làm với FPGA. Hy vọng rằng bạn đã có một cái nhìn tổng quan về cách các phần tử cơ bản này hoạt động và cách chúng có thể được kết hợp để tạo ra những chức năng phức tạp hơn.