← 블로그로 돌아가기논리 게이트

다중 입력 논리 게이트: 3입력 AND에서 그 너머까지

다중 입력 논리 게이트는 넓은 버스를 단일 신호로 압축합니다. 캐스케이드와 트리 구현을 비교하고 설계에 맞는 방식을 선택하세요.

DennyDenny
약 6분 소요
Chalkboard feature illustration for “다중 입력 논리 게이트: 3입력 AND에서 그 너머까지”

요약: 넓은 AND/OR/XOR 게이트는 캐스케이드(선형 지연, (n−1)⋅tgate(n-1) \cdot t_{gate}) 또는 균형 트리(로그 지연, ⌈log⁡2n⌉⋅tgate\lceil\log_2 n\rceil \cdot t_{gate}) 두 방식으로 만들 수 있습니다. 두 방식은 게이트 수가 같지만 트리는 최장 신호 경로를 줄이므로 더 빠릅니다.

기본 논리 게이트는 두 입력에서 동작하지만 실제 시스템은 훨씬 많은 입력을 다룹니다. 메모리 주소 디코더는 신호선 20개를 AND해야 할 수 있고, 패리티 생성기는 데이터 버스 전체를 XOR해야 합니다. 작은 게이트로 큰 게이트를 만들 때 어떻게 배열하는지는 회로 속도에 직접적이고 측정 가능한 영향을 줍니다.

이 글에서는 다중 입력 게이트를 만드는 두 핵심 전략(캐스케이드와 트리)을 살피고, 전파 지연식을 유도하며, 각각이 적절한 경우를 보여 줍니다.

AND 게이트 구성 요소 다이어그램

정의와 디지털 계층에서의 역할

다중 입력 논리 게이트는 AND, OR, XOR 같은 기본 부울 연산을 세 개 이상의 입력에 적용해 출력 하나를 만드는 디지털 구성 요소입니다. 디지털 시스템 계층에서 이 게이트들은 기본 2입력 원시 소자 바로 위에 있습니다. 복잡한 조건의 “의사 결정자” 역할을 합니다.

32비트 CPU에서는 신호가 쌍이 아니라 전체 버스로 들어옵니다. 다중 입력 논리는 이 넓은 데이터 경로를 의미 있는 제어 신호로 압축하며, 이는 디코더와 인코더의 토대입니다.

  • AND: “전부 아니면 전무” 게이트입니다. nn입력 AND 게이트는 모든 입력이 1일 때만 1을 출력합니다.
  • OR: “하나라도” 게이트입니다. nn입력 OR 게이트는 nn개 입력 중 하나 이상이 1이면 1을 출력합니다.
  • XOR: “홀수 패리티” 게이트입니다. nn입력 XOR 게이트는 1인 입력의 개수가 홀수일 때 1을 출력합니다. 이는 2입력 버전과 관련된 미묘하지만 중요한 차이입니다.

AND 게이트 동작 체험하기

기술 사양: 3입력 AND 기준

확장 방식을 이해하기 위해 3입력 AND 게이트의 진리표를 봅시다. 어떤 nn입력 게이트든 가능한 입력 조합은 2n2^n개입니다. nn이 커질수록 표는 지수적으로 커지지만 논리는 일관됩니다.

입력 A입력 B입력 C출력 Y
0000
0010
0100
0110
1000
1010
1100
1111

이 표에서 모든 입력이 HIGH인 마지막 행만 HIGH 출력을 만듭니다. 이 엄격함 때문에 AND 게이트는 주소 디코딩과 인에이블 신호 생성의 주 도구입니다.

부울식과 확장

이 게이트들의 수학 표현은 부울 대수, 특히 결합 법칙을 따릅니다. (A⋅B)⋅C=A⋅(B⋅C)(A \cdot B) \cdot C = A \cdot (B \cdot C)는 큰 게이트를 작은 게이트로 만들 수 있는 이론적 근거입니다.

nn입력 AND 게이트: Y=A⋅B⋅C⋅⋯⋅NY = A \cdot B \cdot C \cdot \dots \cdot N

nn입력 OR 게이트: Y=A+B+C+⋯+NY = A + B + C + \dots + N

nn입력 XOR 게이트(패리티): Y=A⊕B⊕C⊕⋯⊕NY = A \oplus B \oplus C \oplus \dots \oplus N

NAND와 NOR 영역으로 가면 드 모르간 정리를 적용해 확장 시 동작을 이해합니다. nn입력 NAND는 단순한 NAND 직렬 연결이 아니라 AND 연산 뒤에 NOT 하나를 붙인 것입니다.

핵심 트레이드오프: 전파 지연

물리 라이브러리는 유한한 게이트 팬인만 제공하며, 프로그래머블 논리는 부울 함수를 사용 가능한 LUT와 배선으로 매핑합니다. 따라서 128입력 AND 같은 아주 넓은 축소 연산은 이상적인 기호 하나로 구현하지 않고 보통 더 작은 셀 또는 LUT로 분해합니다.

이 작은 게이트를 배열하는 방식은 입력 변화가 출력에 영향을 주기까지 걸리는 전파 지연(tpdt_{pd})에 영향을 줍니다. 아래 식은 먼저 지연이 tgatet_{gate}인 동일한 2입력 게이트를 가정하고 배선과 부하를 무시합니다. 이 모델은 논리 깊이를 드러내며, 물리 결과는 매핑 셀 지연, 전이 시간, 팬아웃, 배선, 배치, 동작 코너에도 좌우됩니다.

구현 전략 A: 캐스케이드(느린 방식)

8입력 AND 게이트를 만드는 가장 직관적인 방법은 체인으로 잇는 것입니다. 첫 2입력 AND의 출력을 다음 게이트에 넣는 식입니다.

Output=((((((A⋅B)⋅C)⋅D)⋅E)⋅F)⋅G)⋅HOutput = ((((((A \cdot B) \cdot C) \cdot D) \cdot E) \cdot F) \cdot G) \cdot H

이 “캐스케이드” 구조에서 입력 A의 신호는 출력에 도달하려고 연속된 게이트 일곱 개를 지나야 합니다. 총 지연은 선형입니다.

Tcascade=(n−1)⋅tgateT_{cascade} = (n-1) \cdot t_{gate}

tgatet_{gate}가 1ns이면 8입력 게이트에는 7ns가 걸립니다. 작게 들릴 수 있지만 동기식 시스템에서는 이 지연이 최대 클록 주파수를 제한합니다.

구현 전략 B: 트리 구조(빠른 방식)

“트리” 또는 “토너먼트” 구조는 입력을 짝지어 A와 B를 한 게이트에, C와 D를 다른 게이트에, E와 F를 세 번째에, G와 H를 네 번째에 넣습니다. 네 출력은 다음 층의 두 게이트로, 마지막에는 한 게이트로 들어갑니다.

총 지연은 이제 로그적으로 증가합니다.

Ttree=⌈log⁡2(n)⌉⋅tgateT_{tree} = \lceil \log_2(n) \rceil \cdot t_{gate}

8입력 게이트에서는 ⌈log⁡2(8)⌉=3\lceil\log_2(8)\rceil = 3입니다. 지연은 3×1ns=3ns3 \times 1\text{ns} = 3\text{ns}로, 캐스케이드의 7ns보다 절반 이하입니다.

나란히 비교

지표캐스케이드(n=8)트리(n=8)
지연식(n−1)⋅tgate(n-1) \cdot t_{gate}⌈log⁡2(n)⌉⋅tgate\lceil\log_2(n)\rceil \cdot t_{gate}
총 지연7⋅tgate7 \cdot t_{gate}3⋅tgate3 \cdot t_{gate}
게이트 수n−1=7n - 1 = 7n−1=7n - 1 = 7
배선 복잡도단순 체인균형 이진 트리

동일한 2입력 게이트 모델에서 두 구조는 n−1n-1개 게이트를 쓰지만, 균형 트리는 최악 논리 깊이를 n−1n-1에서 ⌈log⁡2n⌉\lceil\log_2 n\rceil로 줄입니다. 실제 구현에서는 합성이 더 넓은 게이트, LUT, 인수분해, 배치별 구조를 쓸 수 있으므로 게이트 수와 지연이 이상식과 정확히 같을 필요는 없습니다.

AND 게이트 보안 시스템 템플릿

보안 경보 회로 열기

대화형 데모: digisim.io에서 지연 시각화하기

지연 차이를 이해하는 가장 좋은 방법은 두 구조를 만들고 나란히 관찰하는 것입니다.

  1. 설정: 캔버스에 INPUT_SWITCH 구성 요소 여덟 개를 둡니다.
  2. 캐스케이드: AND 게이트 일곱 개로 체인을 만듭니다. 최종 출력을 OUTPUT_LIGHT에 연결합니다.
  3. 트리: 그 아래에 AND 게이트 일곱 개로 트리 구조를 만들고 최종 출력을 두 번째 OUTPUT_LIGHT에 연결합니다.
  4. 시험: 모든 스위치를 ON으로 합니다. 두 조명이 켜집니다. 이제 첫 번째 스위치(입력 A)를 OFF로 바꿉니다.

시뮬레이터가 게이트별 지연을 모델링한다면, 전체 캐스케이드를 통과하는 전이에서 오실로스코프는 트리 출력이 더 빨리 안정화됨을 보여야 합니다. 이상적인 0지연 모델에서는 둘 다 같은 시뮬레이션 순간에 갱신됩니다. 대신 의존 논리 단계 수를 세세요.

오실로스코프 검증

채널 1은 전환한 입력, 채널 2는 트리 출력, 채널 3은 캐스케이드 출력에 연결합니다. 동일 지연 교육 모델에서 오프셋은 각각 약 3tgate3t_{gate}와 7tgate7t_{gate}입니다. 이 실험은 경로 깊이를 설명합니다. 생산 FPGA 또는 ASIC 타이밍 클로저에는 구현 넷리스트와 배선을 이용한 정적 타이밍 분석을 사용합니다. 하드웨어 오실로스코프나 로직 분석기는 특정 보드를 진단할 수 있지만 모든 실리콘·환경 코너를 포괄하지는 않습니다.

오실로스코프 구성 요소

실제 응용

1. 메모리 주소 디코딩

메모리 매핑 주변 장치는 종종 주소 범위에 응답합니다. 상위 주소 비트는 기준 패턴과 비교하고 하위 비트는 장치 내부 레지스터 또는 위치를 선택합니다.

부울 수준에서 정확한 일치는 참 또는 보수 주소 비트의 AND입니다. 물리 구현은 그 비교를 사용 가능한 게이트, 비교기 셀, LUT에 인수분해하며 계층적으로 디코드할 수도 있습니다. 올바른 구조는 손으로 그린 이진 트리가 아니라 구현 후 버스 타이밍과 전기 요구 사항을 만족하는 구조입니다.

2. 데이터 버스 패리티 생성

신뢰성은 매우 중요합니다. 데이터 바이트를 보낼 때 오류 검출을 위해 “패리티 비트”를 더하는 경우가 많습니다. 짝수 패리티 비트는 데이터의 1 개수가 홀수일 때 1이 되어 총 개수를 짝수로 만듭니다.

이는 다중 입력 XOR 게이트가 하는 일입니다.

XOR 게이트 구성 요소

2입력 XOR 게이트의 균형 트리는 log⁡264=6\log_2 64=6이므로 64입력에서 논리 단계가 여섯 개입니다. 패리티와 더 풍부한 오류 정정 코드는 많은 저장·통신 경로에 쓰이지만, 정확한 코드, 적용 범위, 갱신 지점은 아키텍처마다 다릅니다. 오류 검출에서 XOR과 XNOR을 참조하세요.

커리큘럼의 관련 주제

digisim.io에서 디지털 논리를 계속 탐구하며 다음 주제로 이해를 넓힐 수 있습니다.

  • 기본 논리 게이트(원시 소자)
  • 부울 대수와 드 모르간(수학)
  • 전파 지연과 타이밍 다이어그램(성능)
  • 디코더(다중 입력 AND의 핵심 응용)

요약: 설계 지침

지침세부 사항
의존 깊이 줄이기2입력 게이트만 있다면 균형 축소가 좋은 시작점입니다. 합성이 대상 자원에 매핑하게 하세요.
라이브러리 팬인 준수사용 가능하고 효율적인 팬인은 논리 계열, 표준 셀 라이브러리, FPGA LUT 구조에 따라 다릅니다.
팬아웃 고려많은 입력을 구동하는 각 게이트 출력은 추가 지연을 만듭니다. 팬아웃이 큰 노드는 버퍼링하세요.
배선과 부하 포함같은 게이트 수가 구현 후 같은 면적, 전력, 배치, 지연을 뜻하지는 않습니다.
올바른 검증 사용DigiSim은 논리 깊이와 모델 지연을 비교하는 데, 대상 구현 도구는 물리 타이밍에 사용하세요.

2입력 게이트에서 다중 입력 시스템으로의 도약은 컴퓨터 구조로 향하는 첫걸음입니다. 정확성은 필요하지만 성능이 진정한 설계 과제인 곳입니다.

전파 지연과 타이밍을 계속 살펴보거나, AND 게이트 구성 요소 참조를 열어 8입력 트리와 캐스케이드를 직접 배선해 보세요.

아이디어를 실제로 작동하는 회로로 만들어 보세요.