논리 게이트와 부울대수
한 줄 요약 — 논리 연산의 기본. 측정 시스템에서는 주로 타이밍 제어와 신호 게이팅에 씁니다.
기본 게이트
| 게이트 | 기호 | 동작 |
|---|---|---|
| NOT | 반전(inverting) | |
| AND | 둘 다 1일 때 1 | |
| OR | 하나라도 1이면 1 | |
| NAND | AND의 반전 | |
| NOR | OR의 반전 | |
| XOR | 다르면 1 | |
| XNOR | 같으면 1 |
💡 NAND와 NOR은 “만능 게이트” 입니다. 각각만으로 모든 논리를 구현할 수 있습니다. CMOS에서는 NAND/NOR이 AND/OR보다 트랜지스터(transistor)가 적어(반전이 공짜) 기본 소자로 쓰입니다.
부울대수 법칙
| 법칙 | 식 |
|---|---|
| 항등 | , |
| 영·일 | , |
| 멱등 | , |
| 보수 | , |
| 교환 | |
| 결합(coupling) | |
| 분배 | |
| 드모르간 | , |
| 흡수 | , |
드모르간의 실용적 의미
“버블을 옮기면 AND↔OR이 바뀐다”
회로도에서 NAND를 “입력이 반전된 OR”로 읽으면 이해가 쉬워질 때가 많습니다. 액티브 로우 신호를 다룰 때 특히 유용합니다.
계산 예제
예제 — 논리식 간소화
A이득gainB대역폭 또는 자속밀도bandwidth or flux densityF잡음 지수noise figureA이득gainB대역폭 또는 자속밀도bandwidth or flux density흡수 법칙의 변형()을 적용:
A이득gainB대역폭 또는 자속밀도bandwidth or flux densityF잡음 지수noise figure3개 항이 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) |
| 글리치 없음 | 입력이 동시에 바뀌지 않으면 글리치 발생 |
| 전력 소비 없음 | 전환 시 동적 전력 + 관통 전류 |
| 출력이 깨끗 | 링잉(ringing), 오버슈트(overshoot)오버슈트 overshoot계단 입력에 응답이 목표값을 넘어 솟는 정도로, 감쇠비 하나로 정해집니다.자세히 보기 → |
| 미사용 입력은 무관 | CMOS의 미사용 입력을 띄우면 안 됨 — 반드시 나 GND에 고정 |
⚠️ CMOS 게이트의 사용하지 않는 입력을 플로팅으로 두면 입력이 문턱 근처에서 떠 관통 전류가 흐르고 발진합니다. 반드시 고정하세요.
연습문제
문제 1. 드모르간으로 를 AND 형태로 바꾸세요.
exercises/09-02-demorgan.yaml풀이
A이득gainB대역폭 또는 자속밀도bandwidth or flux densityC정전용량capacitanceF“세 입력 NOR = 반전된 입력의 AND”
문제 2. 를 간소화하세요.
풀이
A이득gainB대역폭 또는 자속밀도bandwidth or flux densityF잡음 지수noise figure문제 3. 액티브 어레이의 50개 행 중 하나를 선택하려면 몇 개의 제어선이 필요하고, 어떤 회로를 씁니까?
exercises/09-02-row-select.yaml풀이
직접 구동: 50개 제어선 — 배선(trace)이 너무 많습니다.
디코더 사용: → 6개 제어선으로 64행까지 선택 가능합니다.
회로: 6-to-64 디코더 (또는 6비트 카운터 + 디코더)
트레이드오프:
| 방식 | 제어선 | 장점 | 단점 |
|---|---|---|---|
| 직접 (50선) | 50 | 임의 순서 접근, 여러 행 동시 선택 | 배선·패드(pad) 폭증 |
| 디코더 (6선) | 6 | 배선 최소 | 한 번에 한 행만, 디코더 지연 |
| 시프트 레지스터 (2선) | 2 (클럭+데이터) | 배선 최소, 칩 안에 집적 쉬움 | 순차 접근만, 스캔 시간 |
실제 어레이에서는 시프트 레지스터(shift register)를 많이 씁니다. 클럭과 데이터 2선만으로 순차 스캔이 가능하고, 어레이 가장자리에 집적하기 쉽기 때문입니다. 순차 스캔은 어차피 프레임 단위로 전체를 읽으므로 제약이 되지 않습니다.
이것이 16-01에서 다루는 “배선 수를 줄이는 것이 왜 설계의 핵심인가” 의 구체적 사례입니다.
이전 ← 01 논리 레벨과 노이즈 마진 | 다음 → 03 순차 논리와 플립플롭