[논리회로] 가장 기본적인 논리게이트로 합성하기

2026. 1. 26. 03:36·CS/논리회로

 https://dev-dx2d2y-log.tistory.com/193

 

[논리회로] 논리회로 기초 및 AND, OR, NOT 게이트, 논리연산 기초

회로 기초간단하기 때문에 디지털시스템에서는 2진 회로(binary circuits)가 주로 사용된다. 입력값은 오직 1과 0이고 출력값은 오직 1과 0이기 때문.그래서 이진회로를 사용할 때 변수 x에 의해서 스

dev-dx2d2y-log.tistory.com

저번에 논리회로의 기초에 대해서 다뤘고, 이번에는 저번에 배운 불대수의 식을 토대로 논리회로를 합성하는 방법에 대해서 알아보도록한다


회로만들기

저번에 다뤘던 AND, OR, NOT 게이트를 이용하면 모든 논리게이트를 사용할 수 있다. 책에 나온 예시를 들어보자면.. 스위치 입력 (x1, x2)가 있고 입력이 (0,0) (0,1) (1,1) 상태일 때 출력값이 1이, 입력이 (1,0) 일 때만 0이 되도록한다면?

 

1. 우선 위와같이 진리표를 써본다.

 

2. 그리고 출력이 1이되는 입력을 찾아서 곱(AND 연산)을 만든다

(0, 0)인 경우에는 ~x1~x2 인 경우에만 1이 나오고

(0,1)인 경우에는 ~x1x2 인 경우

(1,1)인 경우에는 x1x2 인 경우 출력이 1이되고, 이 논리곱들을 더해주면

f(x1, x2) = ~x1~x2 + ~x1x2 + x1x2 라고 할 수 있겠다.

 

이를 회로로 나타내면 위 사진의 아래 그림 같다.

다만 이 논리회로가 가장 간단한 방식이 아니기 때문에, 앞서 배운 논리식과 정리들을 활용해서 식을 간소화 시켜야한다.

그래서 가장 간단한 논리회로를 구현할 수 있다.

 

사진 오른쪽 회로가 간소화 이전의 식, 사진 왼쪽 회로가 간소화 이후의 식으로 구현한 회로다. 훨씬 간단한 편.


이렇게 논리회로를 합성하는 방법은 진리표에서 출력이 1인 경우 입력항들로 AND 게이트를 구하고, 이 곱항들을 모아서 논리합을 구해 논리식을 도출하고 간소화시켜서 회로를 구성할 수 있다. 입력항들로 AND 게이트를 구하는 경우에는 입력이 0인 경우 ~x, 1인 경우를 x로 기입하면 된다. 즉, 이렇게 ~x 또는 x 들의 곱을 더하면 끝.


정형적인 합성과정

민텀을 통한 SOP형

민텀(minterm, 최소항)이란 진리표와 입력값을 토대로 위에처럼 논리식을 만들 때 모든 입력 변수들이 각각 한 번씩 사용된 형태를 뜻한다.

특이한 점은 행번호는 x, y, z 를 2진수로 나타낸 수라는 것이다. m7은 111 이므로 x = 1, y = 1, z = 1 이라는 뜻. 민텀의 각 행마다 식을 표현하는 방법은 위에서 다룬 것과 같다. 0이면 변수의 보수, 1이면 그냥 변수를 사용해 논리곱으로 표현한다.

 

논리식은 민텀들의 합 형태로 쓸 수 있는데, 앞서 입력변수가 (x1, x2)가 있다고하고, (0,0) (0,1) (1,1) 일 때만 출력값이 1이 된다고하면,

진리표는 이렇게 나올 수 있고, 이를 민텀의 합으로 나타내보면

 

 

과 같이 나타낼 수 있다. 이는 앞서 진리표에서 곧바로 식을 뽑아낸 것과 식이 같다. 즉, 앞서 사용한 방식이 f = 1인 민텀만 결과에 포함됨을 알 수 있다.

 

앞서 알아본 방식과 민텀의 합으로 나타낸 방식들처럼 논리 곱항들의 합으로 나타낼 수 있는, 즉, AND항들의 OR연산으로 나타낸 논리식을 SOP(Sum-of-product)라고 칭한다. 그리고 각 곱 항들이 민텀의 형태를 가지면 이를 표준 SOP(canonical Sum-of-product)라고 칭한다. 회로합성의 가장 첫 단계가 바로 이 표준 SOP를 구하는 것.

 

그래서 표준 SOP를 구하고, 이를 간소화시켜서 최소 SOP를 구현하는 것이 회로합성의 목표라고 할 수 있겠다.

 

앞서 3변수함수로 민텀에 대한 예시를 보였는데, 이의 표준SOP와 최소SOP를 구해 회로를 그리는 과정

이처럼 SOP는 f = 1인 민텀들의 합으로 표현되며, 시그마로 표현하기도 한다.

 

예제 2.10

 

예제 2.11

 

대체적으로 표준SOP에서 최소SOP로 바꾸는 과정은, 표준SOP에서 x + ~x 꼴이 나오도록 두 개 항씩 묶어가며 처리할 수 있고 (예제같이 쉬운 부분에서는 첫 번째 항부터 두 개씩 묶어갈 수 있게 배려(?)해주는듯) 식이 홀수 개라서 두 개씩 묶기 힘들 경우에는 두 개씩 묶고나서 남은 항과 묶일 수 있는 다른 항을 하나 추가하면 된다.

 

논리식에서는 x + x = x 라는 멱등성이 성립하기 때문에, 식을 자유롭게 추가해나갈 수 있다.


맥스텀과 POS형

SOP형은 민텀의 합, 그러니까 논리곱의 합을 이용했다면, 반대로 논리합의 곱을 이용할 수도 있다. 이는 다르게 얘기하면 진리표에서 f = 0인 항들을 모아서 논리식 f를 구하는 과정이다.

 

여기서는 맥스텀(Maxterm, 최대항)을 사용한다.

위 사진과 맥스텀의 용어정의를 보면 알 수 있듯이, 민텀과 맥스텀은 서로 보수관계에 있다. 보수연산을 위해서는 드모르간 공식을 사용하여 AND연산을 OR 연산으로, 모든 논리변수에 역을 취해주면 된다.

 

논리식을 논리곱의 논리합으로 나타내는 것 뿐 아니라 논리합의 논리곱으로도 나타낼 수 있는데, 이를 POS(product-of-sum)이라고 칭한다. 또한 맥스텀의 합으로 나타낸 논리식을 표준POS라고 칭한다.

 

그러니까 맥스텀의 계산은 민텀의 정반대로 계산하면 된다. x1 = 0이면 x1로, x2 = 1이면 ~x2로 논리합을 구하여 f = 0인 각 맥스텀을 곱하면 된다.

 

민텀의 예시를 들었던 것을 다시 맥스텀으로 구현한 결과. 우연히도 회로 비용이 겹쳤으나 (입력 8개 및 게이트 5개, 총 13) 이는 우연으로, 같은 식이더라도 SOP와 POS의 비용이 다를 수 있다.

 

예제 2.12 (2.10 맥스텀 계산)

 

표준 POS에서 최소화 POS로 바꾸려면 주로 교환법칙과 통합법칙을 사용한다. 주로 두 개씩 묶어서 ((x1 + x2) + x3)((x1 + x2) + ~x3) 형태로 바꾼다. 통합법칙은 (x+y)(x+~y) = x 이다. (xy + x~y = x의 드모르간 법칙을 적용시키면 이렇게 나온다. 저 식은 x를 묶어서 계산할 수 있음)

 

그래서 (x1 + x2)로 식을 바꿔내는 등으로 연산결과를 적요시킬 수 있다. 땅땅땅


NAND ·(논리곱 아님) NOR 논리회로

이전에 AND, OR, NOT 게이트로 여러 연산을 수행할 수 있고, 이 세 게이트가 논리회로에서 기본이 되는 논리게이트임을 말했다. 이외에도 회로합성에 유용한 기본 논리함수들이 있다. 바로 NAND, NOR.

 

NAND 게이트는 AND 연산의 보수를 구한 것과 같다. 즉, 하나라도 1이면 1이 출력되고, 모든 입력이 1이어야 0이 출력된다.

 

NOR 게이트는 OR 연산의 보수를 구한 것과 같다. 즉, 하나라도 1이면 0이 출력되고, 모든 입력이 0이어야 1이 출력된다.


POS와 SOP에 연결

앞서 SOP은 논리곱의 합(AND-OR), POS는 논리합의 곱(OR-AND)구조라고 말했다. 그렇기 때문에 SOP과 POS도 NAND와 NOR 게이트로 나타낼 수 있다.

 

AND게이트를 NAND게이트로 바꾸려면, 위와 같이 바꿀 수 있다.

AND게이트를 NAND게이트로 바꾸고, AND게이트에 연결되었던 OR게이트의 입력선에 NOT게이트를 하나씩 추가하는 것이다. 보수의 보수는 자기자신이 되므로 회로에 영향은 없다.

 

또는 AND게이트를 NAND게이트로 바꾸고, AND게이트 연결되었던 OR게이트도 NAND 게이트로 바꾸면된다. 드모르간 법칙에 따라서 OR연산 x1x2 = ~x1 + ~x2이다. 즉, 보수의 AND 연산이거나 NAND 연산이다. 이에 따라서 양쪽 입력에 컴플리먼트를 취한 OR게이트와 NAND 게이트는 서로 등가라는 것을 알 수 있다. 즉, AND-OR 게이트는 NAND-NAND 게이트로 표현될 수 있다.

 

POS과정도 동일하다. OR 게이트를 NOR게이트로 바꾸고 AND 게이트의 입력부에 NOR게이트를 달아주어도 된다. 또는 이를 NOR로 바꿔도 된다. 역시 드모르간 법칙에 따라 x1 + x2 = ~x1~x2이기 때문에 보수의 OR연산이거나 NOR연산에 해당하기 때문. 이를 토대로 양쪽 입력에 컴플리먼트를 취한 AND게이트와 NOR 게이트는 등가라는 것을 알 수 있다.

 

따라서 OR-AND 회로 역시 NOR-NOR 회로로 구현할 수 있다.

 

앞서 예제 2.10에서 구한 SOP 회로를 다시 NAND-NAND 회로로 바꿀 수도 있고, x3의 NOT게이트에 NOR게이트가 하나 붙어있는데, 이는 모든 회로의 게이트를 NOR게이트로 구현하기 위함일 뿐이다. 그리고 x2가 AND게이트나 OR 게이트 없이 곧바로 최종 OR 게이트에 연결되기 때문에 문제가 된다. OR게이트는 양쪽 입력에 컴플리먼트를 달아야 NAND 게이트로 바뀔 수 있는데 x2입력에 컴플리먼트를 단다면 컴플리먼트가 한 개만 있으므로 연산결과가 바뀌기 때문. 따라서 x2 입력에 NAND로된 NOT 게이트를 추가한 것이다.

 

앞서 예제 2.12에서 구한 SOP 회로를 다시 NOR-NOR 회로로 바꿀 수도 있다. 역시 x3의 NOT게이트를 NAND 게이트로 구현하였다.


여기까지 아주 기본적이며 정석적인 합성 방법에 대해 알아보았다. 이 이후내용은 설계예제, CAD 툴에 대한 얘기가 있지만, 우선은 최소화와 카르노 맵에 대해서 다뤄보는 것을 다음목표로 한다.

'CS > 논리회로' 카테고리의 다른 글

[논리회로] 캐리 예측 가산기 및 곱셈기  (2) 2026.02.02
[논리회로] 수의 표현과 가산기, 리플 캐리 가산기 및 래딕스-컴플리먼트 기법을 통한 감산기 설계  (0) 2026.02.01
[논리회로] 카르노 맵과 콰인-맥클러스키 알고리즘  (0) 2026.01.30
[논리회로] 논리회로 기초 및 AND, OR, NOT 게이트, 논리연산 기초  (0) 2026.01.24
'CS/논리회로' 카테고리의 다른 글
  • [논리회로] 캐리 예측 가산기 및 곱셈기
  • [논리회로] 수의 표현과 가산기, 리플 캐리 가산기 및 래딕스-컴플리먼트 기법을 통한 감산기 설계
  • [논리회로] 카르노 맵과 콰인-맥클러스키 알고리즘
  • [논리회로] 논리회로 기초 및 AND, OR, NOT 게이트, 논리연산 기초
Radiata
Radiata
개발을 합니다.
  • Radiata
    DDD
    Radiata
  • 전체
    오늘
    어제
    • 분류 전체보기 (211) N
      • 신년사 (3)
        • 2025년 (2)
        • 2026년 (1)
      • CS (59) N
        • JVM (12)
        • 백엔드 (20) N
        • 언어구현 (1)
        • 객체지향 (1)
        • 논리회로 (5)
        • 컴퓨터구조 (9)
        • 데이터베이스 (1)
        • 컴퓨터 네트워크 (10)
      • 언어공부 (64)
        • Java | Kotlin (48)
        • JavaScript | TypeScript (9)
        • C | C++ (6)
      • 개인 프로젝트 (11)
        • [2025] Happy2SendingMails (3)
        • [2026] 골든리포트! (8)
        • [2026] 순수자바로 개발하기 (0)
        • 기타 이것저것 (0)
      • 팀 프로젝트 (29)
        • [2025][GDG]홍대 맛집 아카이빙 프로젝트 (29)
      • 알고리즘 (13)
        • 백준풀이기록 (11)
      • 놀이터 (0)
      • 에러 수정일지 (2)
      • 고찰 (24)
        • CEOS 23기 회고록 (2)
  • 블로그 메뉴

    • CS
    • 언어공부
    • 개인 프로젝트
    • 팀 프로젝트
    • 알고리즘
    • 고찰
    • 신년사
    • 컬러잇 개발블로그
  • 링크

    • 컬러잇 개발블로그
  • 공지사항

  • 인기 글

  • 태그

    144
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Radiata
[논리회로] 가장 기본적인 논리게이트로 합성하기
상단으로

티스토리툴바