본문 바로가기
CS 이론/디지털 논리회로

디지털 논리회로 9부 <NAND,NOR,XOR 게이트>

by Suff07 2024. 2. 14.

 

 

목차

    1. NAND, NOR, XOR 게이트

    지난시간까지 우리는 AND, OR, NOT 게이트만을 사용하여 회로를 구성하였습니다.

     

    먼저 위의 3가지 게이트를 통해서 논리회로를 전부 구성할 수 있다는 점을 아셔야 합니다.

     

    그리고 이번글에서는 NAND와 NOR XOR게이트에 대해서 한번 이야기를 해볼 계획입니다.


    1-1. NAND 게이트

     

     

    NAND 게이트는 NOT AND의 준말로써 다음과 같이 AND 게이트에 버블<NOT> 표시를 합니다.

     

     

    진리 테이블과 벤 다이어그램은 아래와 같습니다.

     

    입력 X 입력 Y 출력
    0 0 1
    0 1 1
    1 0 1
    1 1 0

     

     


    1-2. NOR 게이트

    NOR 게이트는 NOT OR의 준말로써 다음과 같이 OR 게이트에 버블<NOT> 표시를 합니다.

     

    진리 테이블과 벤 다이어그램은 아래와 같습니다.

     

    입력 X 입력 Y 출력
    0 0 1
    0 1 0
    1 0 0
    1 1 0

     

     


    1-3. XOR 게이트<3비트 연산 포함>

     

    XOR 게이트는 Exclusive OR 의 준말로써 다음과 같이 표시를 합니다.

     

    진리 테이블과 벤 다이어그램은 아래와 같습니다.

     

    입력 X 입력 Y 출력
    0 0 0
    0 1 1
    1 0 1
    1 1 0

     

     

     


     

    XOR 게이트는 특별히 3비트의 연산을 보고 넘어가보도록 하겠습니다.

     

    3비트 연산의 기호는 아래와 같습니다.

     

    진리표는 아래와 같습니다.

     

     

     

     


    1-4. XNOR 게이트 

    입력 X 입력 Y 출력
    0 0 1
    0 1 0
    1 0 0
    1 1 1

     

    XNOR 게이트는 Exclusive NOR 의 준말로써 다음과 같이 표시를 합니다.

     

    진리 테이블과 벤 다이어그램은 아래와 같습니다.

     

     


    2. NAND와 NOR 게이트를 쓰는 이유

    이제 여러분들은 의아하실겁니다.

     

    아니 AND와 OR NOT 게이트를 설명할 때 NAND NOR 게이트를 설명하지 왜 이제 설명하셨습니까?

     

     

    이유를 설명드리겠습니다.

     

    앞서 설명했다시피 AND와 OR NOT 세가지 게이트만으로 모든 회로를 구상할 수 있다고 이야기하였습니다.

     

     

     

    NAND와 NOR게이트의 진가는 바로 NAND 게이트 또는 NOR 게이트만으로도 모든 회로를 구상할 수 있습니다.는 점입니다.

    (그래서 NAND와 NOR게이트를 Universal Gate라고도 합니다.)

     

    NAND나 NOR 게이트 단 하나만으로 위의 3가지를 전부 표현할 수 있다면 무엇이 장점일까요?

     

    1. AND와 OR NOT 게이트에 비해 훨씬 간단해집니다.
    2. 그에 따른 비용적인 측면에서 이득

     

    못 믿겠다면 예제로 빠르게 보시죠


     

    2-1. 예제 1 <NAND 게이트만으로 표기>

     

     

    위의 카르노맵을 토대로 그린 AND-OR 게이트로 구성된 회로입니다.

     

     

    그런데 위의 그림처럼 버블(NOT)을 두개를 붙여서 동일하게 만들 수 있습니다.

    왜냐하면 부정을 두번 하면 원래대로 돌아오니까요.

     

    그리고 \(A'+B'+C' = (ABC)' \)라는 드모르간의 법칙 기억나시죠?

     

    아무톤간에! 이 법칙에 의하면 위의 회로가 어떻게 변해야 할까요?

     

     

    이런 그림이 생각나야 하지 않을까요?

     

     

    그래서 NAND 게이트만으로 전부 정리가 가능해집니다!

     

    대수적으로 따져보면 위의 F식을 두번 부정한 이후에 드모르간의 법칙을 사용하면 NAND나 NOR 게이트중 하나만으로 표현이 가능해집니다.


    2-2. 예제 2 <NOR 게이트만으로 표기>

    이번에는 NOR 게이트로 바꿔봅시다.

     

    \(F = B'C + CD' + A'B'D + ABD'\)이라는 식을 한번 NOR 게이트로 바꿔봅시다.

     

    먼저, 위의 식을 한번 이렇게 바꿔볼까요?

    \(F' = (B'C + CD' + A'B'D + ABD')'\)

    \(F' = (B'+C) \cdot (C'+D) \cdot  (A+B+D') \cdot  (A'+B'+D)\)

    (기억이 잘 안나시는 분은 드모르간의 법칙을 다시 보세요~)

     

     

    식을 회로로 표현하면 위의 그림처럼 나올겁니다.

     

    이번에도 회로도에 버블을 표시해봅시다.

     

     

    아까 NAND에서 봤던것처럼 \((A+B+C)' = A'B'C' \)를 이용하면 위의 회로는 다음과 같이 요약이 됩니다.

     

     

     

    그리고 위의 드모르간의 법칙을 요약한 그림은 아래와 같습니다.

     


    3. XOR과 XNOR 게이트를 쓰는 이유

    그러면 이제 XOR와 XNOR 게이트를 쓰는 이유도 궁금할겁니다.

     

    진리 테이블을 보고 눈치가 빠르신분들은 아시겠지만...

     

    바로 XOR,XNOR 게이트를 쓰는 이유는 데이터 비트속 1의 갯수가 짝수냐 홀수냐를 판별하기 위해 사용합니다.

     

    XOR게이트의 진리표를 보면 1의 갯수가 홀수일때 1로 나오고 짝수일때는 0으로 나옵니다.

     

    반대로 XNOR게이트는 1의 갯수가 짝수일 때 1이고 홀수일 때 0입니다.

     


     

     

    XOR과 XNOR 게이트를 활용하는 범위는 크게 두가지가 있습니다.

     

    1. 데이터의 손상여부를 체크하기 위해 사용됩니다.
    2. 데이터의 암호화,복호화에 사용이 됩니다.

     

    여기서 데이터의 손상여부 체크는 아래 링크를 참조해주세요.

    https://suff07.tistory.com/27

     

    디지털 논리회로 10부<Parity Bit와 해밍코드>

    목차 1. Parity Bit 패리티 비트는 아주 간단합니다. 만약 제가 여러분들에게 1001 1110 이라는 8비트 데이터를 보낸다 칩시다. 여기서 1의 숫자가 5개죠? 짝수 패리티 비트 는 8비트 데이터 뒤에 1이라

    suff07.tistory.com

     

    3-1. 데이터의 암호화와 복호화

    <복호화라는 용어가 생소하실텐데요. 복호화는 암호화된 코드를 해석하는 디코딩이라고 이해하면 됩니다.>

     

     

     

    아주 간단한 예시를 한번 들어보겠습니다.

     

    10진법 상으로 158인 숫자를 2진법으로 바꿔보면 1001 1110으로 나옵니다.

    그리고 특정 Key값으로 33을 사용한다 하면 33은 0010 0001로 나오죠.

     

    이 두개의 값을 XOR 연산을 해보면 어떻게 나올까요?

    1011 1111로 암호화가 될 겁니다.

     

    그런데, 이 1011 1111로 암호화된 값을 다시 한번 키값인 0010 0001과 XOR 연산을 해보면 어떻게 될까요?

     

    원래값인 158이 나옵니다 헉!

     

     

    이렇게 XOR 연산을 활용하는 하나의 방법은 간단한 암호화 복호화에 사용할 수 있다는 점이 있습니다.

     


     

    4. 요약정리

    • NAND게이트와 NOR 게이트는 오직 하나의 논리 게이트로 모든 논리회로를 표현 할 수 있다.
    • XOR 게이트와 XNOR 게이트는 데이터 비트의 1의 갯수가 짝수냐 홀수냐를 판별할 때 사용된다.
    • 고로 암호화 복호화에서 XOR게이트와 XNOR 게이트가 활용된다.