Một cổng cổng Logic bao gồm một khối kiến trúc cơ bản của bất kỳ mạch kỹ thuật số nào. Nó nhận vào một hoặc hai dữ liệu đầu vào và tạo ra kết quả đầu ra dựa trên những dữ liệu đầu vào đó. Kết quả đầu ra có thể là high – cao (1) hoặc low – thấp (0). Các Cổng Logic thường được triển khai bằng cách sử dụng các điốt (diode) hoặc transistors. Ngoài ra, cũng có thể sử dụng các ống chân không (vacuum tubes), và các yếu tố điện từ như quang học, phân tử, v.v… để xây dựng các Cổng Logic. Trong máy tính, hầu hết các mạch điện tử đều được tạo thành từ các cổng logic. Các cổng logic thường được sử dụng để tạo ra một mạch có thể tính toán, lưu trữ dữ liệu hoặc cung cấp khả năng lập trình hướng đối tượng (đặc biệt là tính kế thừa đầy mạnh mẽ).

Có bảy cổng logic cơ bản được định nghĩa, đó là: Cổng AND, cổng OR, cổng NOT, cổng NAND, cổng NOR, cổng XOR và cổng XNOR.

1. Cổng AND

Cổng AND sẽ trả về kết quả đầu ra là 1 nếu cả hai giá trị đầu vào đều là 1, ngược lại, nó sẽ trả về 0.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python3 program to illustrate 
# working of AND gate 
  
def AND (a, b): 
  
    if a == 1 and b == 1: 
        return True
    else: 
        return False
  
# Driver code 
if __name__=='__main__': 
    print(AND(1, 1)) 
  
    print("+---------------+----------------+") 
    print(" | AND Truth Table | Result |") 
    print(" A = False, B = False | A AND B =",AND(False,False)," | ") 
    print(" A = False, B = True | A AND B =",AND(False,True)," | ") 
    print(" A = True, B = False | A AND B =",AND(True,False)," | ") 
    print(" A = True, B = True | A AND B =",AND(True,True)," | ") 

Kết quả in ra là:

True
+---------------+----------------
 | AND Truth Table |    Result |
 A = False, B = False | A AND B = False  | 
 A = False, B = True  | A AND B = False  | 
 A = True, B = False  | A AND B = False  | 
 A = True, B = True   | A AND B = True   | 

2. Cổng NAND

Cổng NAND (phủ định AND) sẽ trả về kết quả đầu ra là 0 nếu cả hai giá trị đầu vào đều là 1, ngược lại, nó sẽ trả về 1.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------


# Python3 program to illustrate 
# working of NAND gate 
  
def NAND (a, b): 
    if a == 1 and b == 1: 
        return False
    else: 
        return True
  
# Driver code 
if __name__=='__main__': 
    print(NAND(1, 0)) 
  
    print("+---------------+----------------+") 
    print(" | NAND Truth Table | Result |") 
    print(" A = False, B = False | A AND B =",NAND(False,False)," | ") 
    print(" A = False, B = True | A AND B =",NAND(False,True)," | ") 
    print(" A = True, B = False | A AND B =",NAND(True,False)," | ") 
    print(" A = True, B = True | A AND B =",NAND(True,True)," | ") 

Kết quả in ra là:

True
+---------------+----------------
 | NAND Truth Table |    Result |
 A = False, B = False | A AND B = True  | 
 A = False, B = True  | A AND B = True  | 
 A = True, B = False  | A AND B = True  | 
 A = True, B = True   | A AND B = False | 

3. Cổng OR

Cổng OR trả về kết quả đầu ra là 1 nếu một trong hai hoặc cả hai giá trị đầu vào là 1, ngược lại, nếu cả hai giá trị đầu vào đều là 0, nó sẽ trả về kết quả là 0.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python3 program to illustrate 
# working of OR gate 
  
def OR(a, b): 
    if a == 1: 
        return True
    elif b == 1: 
        return True
    else: 
        return False
  
# Driver code 
if __name__=='__main__': 
    print(OR(0, 0)) 
  
    print("+---------------+----------------+") 
    print(" | OR Truth Table | Result |") 
    print(" A = False, B = False | A AND B =",OR(False,False)," | ") 
    print(" A = False, B = True | A AND B =",OR(False,True)," | ") 
    print(" A = True, B = False | A AND B =",OR(True,False)," | ") 
    print(" A = True, B = True | A AND B =",OR(True,True)," | ") 

Kết quả in ra là:

False
+---------------+----------------+
 | OR Truth Table |    Result |
 A = False, B = False | A AND B = False  | 
 A = False, B = True  | A AND B = True   | 
 A = True, B = False  | A AND B = True   | 
 A = True, B = True   | A AND B = True   | 

4. Cổng XOR

Cổng XOR trả về kết quả đầu ra là 1 nếu nếu hai giá trị đầu vào là khác nhau, ngược lại, nếu cả hai giá trị đầu vào đều là 0 hoặc đều là 1 thì nó sẽ trả về kết quả là 0.


# Python3 program to illustrate 
# working of Xor gate 
  
def XOR (a, b): 
    if a != b: 
        return 1
    else: 
        return 0
  
# Driver code 
if __name__=='__main__': 
    print(XOR(5, 5)) 
  
    print("+---------------+----------------+") 
    print(" | XOR Truth Table | Result |") 
    print(" A = False, B = False | A AND B =",XOR(False,False)," | ") 
    print(" A = False, B = True | A AND B =",XOR(False,True)," | ") 
    print(" A = True, B = False | A AND B =",XOR(True,False)," | ") 
    print(" A = True, B = True | A AND B =",XOR(True,True)," | ") 

Kết quả in ra là:

0
+---------------+----------------+
 | XOR Truth Table | Result |
 A = False, B = False | A AND B = 0  | 
 A = False, B = True  | A AND B = 1  | 
 A = True, B = False  | A AND B = 1  | 
 A = True, B = True   | A AND B = 0  | 

5. Cổng NOT

Cổng này có tác dụng đảo ngược giá trị, nó chỉ nhận vào một dữ liệu đầu vào, nếu dữ liệu đầu vào được cung cấp là 1, nó sẽ trả về kết quả đầu ra là 0, và ngược lại, nếu dữ liệu đầu vào là 0, nó sẽ trả về 1.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python3 program to illustrate 
# working of Not gate 
  
def NOT(a): 
    if(a == 0): 
        return 1
    elif(a == 1): 
        return 0
# Driver code 
if __name__=='__main__': 
    print(NOT(0)) 
  
    print("+---------------+----------------+") 
    print(" | NOT Truth Table | Result |") 
    print(" A = False | A NOT =",NOT(False)," | ") 
    print(" A = True, | A NOT =",NOT(True)," | ") 

Kết quả in ra là:

1
+---------------+----------------+
 | NOT Truth Table | Result |
 A = False | A NOT = 1  | 
 A = True, | A NOT = 0  | 

6. Cổng NOR

Cổng NOR (phủ định cổng OR) trả về đầu ra là 1 nếu cả hai đầu vào đều là 0, ngược lại, đối với tất cả các trường hợp khác nó sẽ trả về 1.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------


# Python3 program to illustrate 
# working of NOR gate 
  
def NOR(a, b): 
    if(a == 0) and (b == 0): 
        return 1
    elif(a == 0) and (b == 1): 
        return 0
    elif(a == 1) and (b == 0): 
        return 0
    elif(a == 1) and (b == 1): 
        return 0
  
# Driver code  
if __name__=='__main__': 
    print(NOR(0, 0)) 
  
    print("+---------------+----------------+") 
    print(" | NOR Truth Table | Result |") 
    print(" A = False, B = False | A AND B =",NOR(False,False)," | ") 
    print(" A = False, B = True | A AND B =",NOR(False,True)," | ") 
    print(" A = True, B = False | A AND B =",NOR(True,False)," | ") 
    print(" A = True, B = True | A AND B =",NOR(True,True)," | ") 

Kết quả in ra là:

1
+---------------+----------------+
 | NOR Truth Table |   Result |
 A = False, B = False | A AND B = 1  | 
 A = False, B = True  | A AND B = 0  | 
 A = True, B = False  | A AND B = 0  | 
 A = True, B = True   | A AND B = 0  | 

7. Cổng XNOR

Cổng XNOR (phủ định cổng XOR) trả về đầu ra là 1 nếu cả hai dữ liệu đầu vào đều giống nhau (cùng là 0 hoặc cùng là 1), và ngược lại, trả về 0 nếu hai dữ liệu đầu vào là khác nhau.



edit

play_arrow

brightness_4
# Python3 program to illustrate 
# working of Not gate 
  
def XNOR(a,b): 
    if(a == b): 
        return 1
    else: 
        return 0
# Driver code 
if __name__=='__main__': 
    print(XNOR(1,1)) 
  
    print("+---------------+----------------+") 
    print(" | XNOR Truth Table | Result |") 
    print(" A = False, B = False | A AND B =",XNOR(False,False)," | ") 
    print(" A = False, B = True | A AND B =",XNOR(False,True)," | ") 
    print(" A = True, B = False | A AND B =",XNOR(True,False)," | ") 
    print(" A = True, B = True | A AND B =",XNOR(True,True)," | ") 

Kết quả in ra là:

1
+---------------+----------------+
 | XNOR Truth Table |  Result |
 A = False, B = False | A AND B = 1  | 
 A = False, B = True  | A AND B = 0  | 
 A = True, B = False  | A AND B = 0  | 
 A = True, B = True   | A AND B = 1  | 

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!