논리 게이트와 부울대수

한 줄 요약 — 논리 연산의 기본. 측정 시스템에서는 주로 타이밍 제어와 신호 게이팅에 씁니다.


기본 게이트

게이트기호동작
NOTAˉ\bar{A}반전(inverting)
ANDA⋅BA\cdot B둘 다 1일 때 1
ORA+BA+B하나라도 1이면 1
NANDA⋅B‾\overline{A\cdot B}AND의 반전
NORA+B‾\overline{A+B}OR의 반전
XORA⊕BA\oplus B다르면 1
XNORA⊕B‾\overline{A\oplus B}같으면 1

💡 NAND와 NOR은 “만능 게이트” 입니다. 각각만으로 모든 논리를 구현할 수 있습니다. CMOS에서는 NAND/NOR이 AND/OR보다 트랜지스터(transistor)가 적어(반전이 공짜) 기본 소자로 쓰입니다.


부울대수 법칙

법칙식
항등A⋅1=AA\cdot1 = A, A+0=AA+0 = A
영·일A⋅0=0A\cdot0 = 0, A+1=1A+1 = 1
멱등A⋅A=AA\cdot A = A, A+A=AA+A = A
보수A⋅Aˉ=0A\cdot\bar A = 0, A+Aˉ=1A+\bar A = 1
교환A⋅B=B⋅AA\cdot B = B\cdot A
결합(coupling)(AB)C=A(BC)(AB)C = A(BC)
분배A(B+C)=AB+ACA(B+C) = AB+AC
드모르간A⋅B‾=Aˉ+Bˉ\overline{A\cdot B} = \bar A+\bar B, A+B‾=Aˉ⋅Bˉ\overline{A+B} = \bar A\cdot\bar B
흡수A+AB=AA+AB = A, A(A+B)=AA(A+B) = A

드모르간의 실용적 의미

“버블을 옮기면 AND↔OR이 바뀐다”

회로도에서 NAND를 “입력이 반전된 OR”로 읽으면 이해가 쉬워질 때가 많습니다. 액티브 로우 신호를 다룰 때 특히 유용합니다.


계산 예제

예제 — 논리식 간소화

F=ABˉ+AB+AˉBF = A\bar B + AB + \bar AB
기호
A이득gain
B대역폭 또는 자속밀도bandwidth or flux density
F잡음 지수noise figure
=A(Bˉ+B)+AˉB=A⋅1+AˉB=A+AˉB= A(\bar B+B) + \bar AB = A\cdot1 + \bar AB = A+\bar AB
기호
A이득gain
B대역폭 또는 자속밀도bandwidth or flux density

흡수 법칙의 변형(A+AˉB=A+BA+\bar AB = A+B)을 적용:

F=A+BF = A+B
기호
A이득gain
B대역폭 또는 자속밀도bandwidth or flux density
F잡음 지수noise figure

3개 항이 OR 게이트 하나가 되었습니다.


측정 시스템에서의 용도

용도게이트
트리거 조건 조합AND, OR
신호 게이팅 (특정 구간만 통과)AND
인터럽트 병합OR (또는 오픈드레인 와이어드-OR)
안전 인터록AND
클럭 게이팅AND (글리치 주의)
위상(phase) 검출XOR
패리티XOR

⚠️ 클럭 게이팅의 글리치

클럭을 AND로 게이팅할 때, 인에이블 신호가 클럭의 High 구간에 바뀌면 짧은 펄스(글리치) 가 생겨 오동작합니다.

해결: 인에이블을 클럭의 Low 구간에서만 바꾸도록 플립플롭(flip-flop)으로 동기화합니다. 전용 클럭 게이팅 셀을 쓰는 것이 안전합니다.


⚖️ 부품 트레이드오프

선택✅ 좋아지는 것⚠️ 나빠지는 것
개별 게이트 IC (74LVC1G 등)작고 저렴, 지연 최소기능 고정, 부품 수
MCU 소프트웨어로 처리유연, 부품 없음지연·지터(jitter), 실시간성 부족
CPLD/FPGA유연 + 빠름비쌈, 전력, 복잡
고속 로직짧은 지연EMI, 전력
저속 로직 (74HC)EMI 적음, 저렴지연 큼

💡 측정 시스템의 타이밍 제어에서는 “MCU 소프트웨어 vs 하드웨어 로직” 선택이 자주 나옵니다. 지터가 중요하면(샘플링 트리거 등) 하드웨어로, 유연성이 중요하면 소프트웨어로 하세요.


🔌 실제 쓰임새

측정 시스템에서 실제로 게이트를 쓰는 자리:

  • 샘플링 트리거 조건 — 여러 조건의 AND
  • 아날로그 스위치(analog switch)아날로그 스위치 analog switch신호를 그대로 통과시키거나 끊는 반도체 스위치로, 다채널 측정의 채널 선택이 여기서 이뤄집니다.자세히 보기 → 제어 — 디코더 + 게이트 (06)
  • 행 선택 디코딩 — 어레이 스캔 (16-01)
  • 인터럽트 병합 — 여러 센서의 OR
  • 안전 정지 — 여러 조건의 AND (하드웨어 인터록)

⚠️ 이상과 실제의 차이

이상실제
즉시 응답전파 지연 (1~20 ns)
글리치 없음입력이 동시에 바뀌지 않으면 글리치 발생
전력 소비 없음전환 시 CV2fCV^2f 동적 전력 + 관통 전류
출력이 깨끗링잉(ringing), 오버슈트(overshoot)오버슈트 overshoot계단 입력에 응답이 목표값을 넘어 솟는 정도로, 감쇠비 하나로 정해집니다.Mp=e−πζ/1−ζ2M_p = e^{-\pi\zeta/\sqrt{1-\zeta^2}}자세히 보기 →
미사용 입력은 무관CMOS의 미사용 입력을 띄우면 안 됨 — 반드시 VCCV_{CC}나 GND에 고정

⚠️ CMOS 게이트의 사용하지 않는 입력을 플로팅으로 두면 입력이 문턱 근처에서 떠 관통 전류가 흐르고 발진합니다. 반드시 고정하세요.


연습문제

문제 1. 드모르간으로 A+B+C‾\overline{A+B+C}를 AND 형태로 바꾸세요.

exercises/09-02-demorgan.yaml
풀이 A+B+C‾=Aˉ⋅Bˉ⋅Cˉ\overline{A+B+C} = \bar A\cdot\bar B\cdot\bar C
기호
A이득gain
B대역폭 또는 자속밀도bandwidth or flux density
C정전용량capacitanceF

“세 입력 NOR = 반전된 입력의 AND”

문제 2. F=AB+ABˉ+AˉBF = AB + A\bar B + \bar AB를 간소화하세요.

연습 9-02 — 다이오드로 만든 AND 게이트 회로도RP10kΩ풀업DA1N4148DB1N4148VCC5VVA5VA = High 고정VB0VB (쓸어 봅니다)VPOUTABGND
연습 9-02 — 다이오드로 만든 AND 게이트워크벤치에서 열기 →
풀이 F=A(B+Bˉ)+AˉB=A+AˉB=A+BF = A(B+\bar B) + \bar AB = A + \bar AB = A+B
기호
A이득gain
B대역폭 또는 자속밀도bandwidth or flux density
F잡음 지수noise figure

문제 3. 액티브 어레이의 50개 행 중 하나를 선택하려면 몇 개의 제어선이 필요하고, 어떤 회로를 씁니까?

exercises/09-02-row-select.yaml
풀이

직접 구동: 50개 제어선 — 배선(trace)이 너무 많습니다.

디코더 사용: 2n≥502^n \geq 50 → n=6n = 6 6개 제어선으로 64행까지 선택 가능합니다.

회로: 6-to-64 디코더 (또는 6비트 카운터 + 디코더)

트레이드오프:

방식제어선장점단점
직접 (50선)50임의 순서 접근, 여러 행 동시 선택배선·패드(pad) 폭증
디코더 (6선)6배선 최소한 번에 한 행만, 디코더 지연
시프트 레지스터 (2선)2 (클럭+데이터)배선 최소, 칩 안에 집적 쉬움순차 접근만, 스캔 시간

실제 어레이에서는 시프트 레지스터(shift register)를 많이 씁니다. 클럭과 데이터 2선만으로 순차 스캔이 가능하고, 어레이 가장자리에 집적하기 쉽기 때문입니다. 순차 스캔은 어차피 프레임 단위로 전체를 읽으므로 제약이 되지 않습니다.

이것이 16-01에서 다루는 “배선 수를 줄이는 것이 왜 설계의 핵심인가” 의 구체적 사례입니다.


이전 ← 01 논리 레벨과 노이즈 마진 | 다음 → 03 순차 논리와 플립플롭