치트시트

9장. 디지털 회로

문서 8개 · 수식 47개 · 회로 17개 · 함정 8개 · 문제 21개

왼쪽 절반에만 찍고 오른쪽은 백지로 비웁니다 — 읽으면서 옆에 적어 보세요. 내용은 하나도 안 자릅니다.

2단으로 빽빽하게, 표시된 것만 — 시험 직전에 훑는 배치입니다.

논리 레벨과 노이즈 마진

디지털은 "0과 1"이 아니라 전압 범위입니다. 그 범위의 여유가 노이즈 마진(noise margin)입니다.

상호 인덕턴스 (H)H부하 상호 인덕턴스H개수입력 High 문턱V입력 Low 문턱V출력 High 전압V출력 Low 전압V

주파수 (noise)Hz상승 시간s

상호 인덕턴스 (H)H개수

부하 상호 인덕턴스H개수

부하 상호 인덕턴스H개수

⚠️ 이상과 실제

이상실제
0 또는 1전이 구간이 존재하고, 그동안 관통 전류가 흐름
즉시 전환유한한 상승·하강 시간
입력 전류 0누설 + 입력 용량 충전 전류
노이즈 없음에지가 광대역 노이즈원
문턱이 고정온도·전원 전압에 따라 이동

⚖️ 고르는 기준

선택✅ 좋아지는 것⚠️ 나빠지는 것
높은 전원 전압 (5 V)노이즈 마진 큼, 견고소비 전력↑ (), 속도 느림, 아날로그 헤드룸은 유리
낮은 전원 전압 (1.8 V)저전력, 고속노이즈 마진 작음, 레벨 변환 필요
고속 로직빠른 처리EMI↑, 소비 전력↑, 신호 무결성(signal integrity) 관리 필요
저속 로직 / 슬루 제한EMI↓, 반사(reflection)↓타이밍 여유 감소
직렬 종단(termination) 저항반사·EMI↓신호 지연, 부품 수↑
슈미트 트리거(Schmitt trigger) 입력노이즈 내성↑, 느린 에지 허용지연↑, 문턱 정확도↓

논리 게이트와 부울대수

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

이득대역폭 또는 자속밀도잡음 지수

이득대역폭 또는 자속밀도

이득대역폭 또는 자속밀도잡음 지수

이득대역폭 또는 자속밀도정전용량F

이득대역폭 또는 자속밀도잡음 지수

⚠️ 이상과 실제

이상실제
즉시 응답전파 지연 (1~20 ns)
글리치 없음입력이 동시에 바뀌지 않으면 글리치 발생
전력 소비 없음전환 시 동적 전력 + 관통 전류
출력이 깨끗링잉(ringing), 오버슈트(overshoot)
미사용 입력은 무관CMOS의 미사용 입력을 띄우면 안 됨 — 반드시 나 GND에 고정

⚖️ 고르는 기준

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

순차 논리와 플립플롭

상태를 기억하는 소자. 어레이 스캔, 카운터, 동기화의 기본 블록입니다.

온도 또는 주기 (clk)시간 (co)s시간 (logic)s시간 (su)s

시간 (co, 최소)s시간 (logic, 최소)s시간 (h)s

시정수s잡음 전압 밀도V/√Hz주파수 (clk)Hz주파수 (data)Hz시간 (res)s0번 온도 또는 주기

정전용량F주파수 (ring)Hz인덕턴스H

최소 온도 또는 주기

최대 주파수Hz

클럭 배선의 링잉과 직렬 종단 회로도RS22Ω직렬 종단LT50nH배선 인덕턴스VGCL15pF입력 용량SRCMIDINGND
클럭 배선의 링잉과 직렬 종단

⚠️ 이상과 실제

이상실제
즉시 상태 전환 지연
셋업/홀드만 지키면 안전클럭 스큐(skew)로 실제 여유가 다름
메타스테이블 없음비동기 입력에서 반드시 발생 가능
클럭이 동시에 도달배선 지연으로 스큐 발생
출력이 깨끗링잉, 크로스토크(crosstalk)

⚖️ 고르는 기준

선택✅ 좋아지는 것⚠️ 나빠지는 것
동기 설계타이밍 해석 가능, 안정클럭 배선 필요, 전력
비동기 설계저전력, 클럭 없음타이밍 위험, 글리치
동기화기 2단메타스테이빌리티 방지2클럭 지연
동기화기 3단MTBF 크게 개선3클럭 지연
낮은 클럭 주파수EMI↓, 전력↓, 타이밍 여유↑처리량↓
직렬 종단(termination) 저항링잉·EMI↓지연↑

클럭과 타이밍

클럭은 시스템의 심장이자 가장 큰 노이즈원입니다. 측정 시스템에서는 클럭의 지터가 곧 측정 오차입니다.

정전용량 (stray)F1번 정전용량F2번 정전용량F부하 정전용량F

정전용량 (stray)F1번 정전용량F2번 정전용량F부하 정전용량F

시간 간격s전압 변화량V거리 또는 두께m시간s전압V

신호 주파수Hz신호 대 잡음비dB시간 (jitter)s

1번 정전용량F2번 정전용량F

주파수Hz신호 대 잡음비dB시간 (jitter)s

크리스털 부하 커패시터의 영향 회로도RM30Ω모션 저항LM3.5mH모션 인덕턴스CM22fF모션 용량C05pF병렬 용량V11VC115pF부하 커패시터INM1M2OUTGND
크리스털 부하 커패시터의 영향
크리스털 부하 커패시터 배치 (피어스 발진기) 회로도RM30Ω모션 저항LM3.5mH모션 인덕턴스CM22fF모션 용량RF1MΩ바이어스 귀환 저항VIN1V인버터 출력 대신C116pF부하 C1C216pF부하 C2XOUTM1M2XINGND
크리스털 부하 커패시터 배치 (피어스 발진기)

⚠️ 이상과 실제

이상실제
클럭이 정확한 주파수ppm 단위 오차, 온도·에이징 드리프트
에지가 완벽지터, 상승시간, 링잉(ringing)
클럭이 동시에 도달스큐
클럭이 노이즈 안 만듦가장 강한 주기적 노이즈원
크리스털이 항상 발진부하 커패시터·구동 레벨이 맞아야 함. 기동 실패 흔함

⚖️ 고르는 기준

선택✅ 좋아지는 것⚠️ 나빠지는 것
크리스털정확·저지터·저렴부하 커패시터 필요, 기동 시간, 진동에 민감
내장 RC 발진기부품 0개부정확(±5%), 지터 큼, 온도 드리프트
TCXO/OCXO최고 정확도비쌈, 전력(OCXO는 발열까지)
높은 클럭 주파수처리량↑EMI↑, 전력↑, 지터 관리 어려움
낮은 클럭 주파수EMI↓, 전력↓처리량↓
PLL 체배주파수 유연지터 증가, 잡음
차동 클럭 (LVDS)노이즈 면역, 낮은 EMI부품·전력, 배선 2배

풀업·오픈드레인·레벨 시프터

풀업(pull-up) 저항 값 하나가 I2C 통신 속도와 소비 전력을 정합니다.

전류 (OL)A최소 저항Ω전압 (DD)V출력 Low 전압V

정전용량 (b)F피크 저항Ω상승 시간s

정전용량 (b)F최대 저항Ω상승 시간s

최대 저항Ω

최대 저항Ω

I2C 풀업 저항과 상승 시간 회로도RP4.7kΩ풀업VDD3.3VCB200pF버스 용량VCSWSW_IDEALVPSDACTLGND
I2C 풀업 저항과 상승 시간
저항 분압 레벨 시프터 (5V → 3.3V) 회로도R11.7kΩV55V 출력R23.3kΩCIN15pF3.3V 입력 용량SRCINGND
저항 분압 레벨 시프터 (5V → 3.3V)

⚠️ 이상과 실제

이상실제
상승이 즉시로 느림
버스 용량이 작음커넥터·케이블로 크게 증가
풀업 값이 자유최소·최대 제약이 동시에 존재
레벨 시프트가 투명지연·왜곡 추가
5 V 내성이면 안전전원이 꺼진 상태에서 5 V가 들어오면 기생 급전(back-powering) 위험

⚖️ 고르는 기준

선택✅ 좋아지는 것⚠️ 나빠지는 것
작은 풀업 (1 kΩ)빠른 상승, 노이즈 면역↑소비 전류↑ (3.3 mA), 드라이버 부담
큰 풀업 (10 kΩ)저전력느린 상승 → 속도 제한, 노이즈에 취약
내부 풀업부품 0개값 부정확, 부팅 전 무효, I2C에 부족
저항 분압 레벨 시프트부품 2개, 저렴느림, 단방향, 상시 전류
MOSFET 레벨 시프트양방향, 빠름, 저렴부품 3개(MOSFET + 풀업 2개)
전용 IC빠르고 확실비쌈, 전원 필요

아날로그 스위치와 멀티플렉서

신호 경로를 전자적으로 전환합니다. 채널 스위칭이 곧 멀티플렉싱이고, 여기서 발생하는 오차가 다채널 측정의 근본 한계입니다.

전압 변화량V정전용량 (hold)F전하 / 품질 계수 (inj)전압V

전압 변화량V전압V

시정수s부하 정전용량F도통 저항Ω신호원 저항Ω

시정수s

도통 저항Ω부하 저항Ω입력 전압V출력 전압V

정전용량 (OFF)F주파수Hz부하 저항Ω

시정수s

시정수s정착 시간s

전압 변화량V전압V

멀티플렉서 세틀링과 크로스토크 회로도RS1500ΩRS2500ΩV11V채널1 신호V20V채널2 신호CL20pF열 배선 용량RL10MΩ버퍼 입력VC1VC2SW1SW_MUXSW2SW_MUXCH1CH2S1S2BUSC1C2GND
멀티플렉서 세틀링과 크로스토크

⚠️ 이상과 실제

이상실제
= 0수 Ω~수백 Ω, 신호 전압에 따라 변동
OFF = 완전 차단(cutoff)누설 전류 + 를 통한 결합
스위칭에 부작용 없음charge injection, 클럭 피드스루
즉시 전환/ 존재, 세틀링 필요
채널 독립크로스토크, 메모리 효과
전원 무관이 전원 전압에 크게 의존

⚖️ 고르는 기준

선택✅ 좋아지는 것⚠️ 나빠지는 것
낮은 세틀링 빠름, 감쇠 적음큰 게이트 → ↑, ↑ (크로스토크↑)
높은 (작은 스위치)↓, 용량↓세틀링 느림
큰 홀드 커패시터charge injection 영향↓, kT/C 잡음↓세틀링 느림
작은 홀드 커패시터빠름 커짐, kT/C 잡음↑ (3-02)
더미 스위치 상쇄면적, 완전 상쇄 불가
차동 구조옵셋·잡음 상쇄, CMRR회로 2배, 배선 2배
CDS옵셋·1/f 제거샘플 2회 → 대역폭 절반, 잡음 배

카르노맵과 해저드

논리식을 줄이면 게이트가 줄지만, 줄이다가 없앤 항이 글리치를 만듭니다. 측정 회로에서는 그 글리치가 아날로그로 결합합니다.

이득대역폭 또는 자속밀도정전용량F

이득정전용량F듀티비잡음 지수

이득대역폭 또는 자속밀도정전용량F잡음 지수

이득대역폭 또는 자속밀도정전용량F잡음 지수

정전용량F에너지J개수0번 슬루레이트 또는 감도1번 슬루레이트 또는 감도

이득대역폭 또는 자속밀도정전용량F잡음 지수

최소화와 글리치 없음은 서로 반대 방향입니다.

멀티플렉서 인에이블 글리치 회로도RON100Ω도통 저항VENVSIG1V채널 신호CH100pF홀드SW1SW_IDEAL채널 스위치SIGMIDOUTENGND
멀티플렉서 인에이블 글리치

⚠️ 이상과 실제

이상실제
게이트 지연이 같음경로마다 다르고, 온도·전압으로 변합니다
글리치는 짧아서 무해아날로그 스위치는 ns 글리치도 전하를 주입합니다
최소화가 항상 좋음클럭·인에이블에는 중복항이 낫습니다
합성기가 알아서 함합성기는 면적을 줄입니다. 글리치는 안 봅니다

⚖️ 고르는 기준

선택✅⚠️
최소 게이트면적·전력·지연↓정적 해저드
중복항 추가글리치 없음게이트 1~2개 더
전부 동기화글리치가 아예 무의미플립플롭, 클럭 1주기 지연
그레이 코드한 번에 한 비트만 바뀜순서가 자연스럽지 않음
그냥 MCU 로유연타이밍 보장 어려움, 소프트 지연

상태기계와 메타스테이빌리티

측정 시퀀스(채널 선택 → 세틀링 → 변환 → 저장)는 상태기계입니다. 그리고 바깥에서 들어오는 신호는 반드시 두 번 걸러야 합니다 — 안 그러면 아주 가끔 회로가 미쳐 버립니다.

시정수s잡음 전압 밀도V/√Hz주파수 (clk)Hz주파수 (data)Hz시간 (r)s0번 온도 또는 주기

시정수s비트 수 또는 개수정착 시간s

이동도m²/V·s시정수s정착 시간s

두 단이면 충분하고, 두 단은 반드시 있어야 합니다.

채널 전환과 세틀링 회로도RMUX200ΩMUX 도통 저항VENVCH2V채널 전압CIN4.5nF앰프 입력 + 배선RIN1MΩSW1SW_IDEALCHMUXOUTAMPINENGND
채널 전환과 세틀링

⚠️ 이상과 실제

이상실제
상태가 정의된 것만전원 기동·글리치로 불법 상태에 빠질 수 있습니다 — default 필수
비동기 입력을 그냥 읽어도 됨메타스테이빌리티 — 두 단 동기화기 필수
2단이면 다중 비트도 안전아닙니다. 비트마다 다른 클럭에 넘어갑니다
시뮬에서 동작하면 됨시뮬은 셋업/홀드 위반을 보통 무시합니다
FSM 은 디지털 문제출력이 아날로그 스위치로 가면 아날로그 문제입니다

⚖️ 고르는 기준

선택✅⚠️
무어 + 등록 출력글리치 원천 차단한 클럭 지연
밀리상태·지연↓출력 글리치
원핫논리 단순, 빠름플립플롭 개, 불법 상태
이진플립플롭 최소디코딩 논리
2단 동기화기안전2클럭 지연
동기화 생략지연 0아주 가끔 미침 — 최악의 버그
FSM 을 MCU 소프트웨어로유연, 디버깅 쉬움타이밍 지터, 인터럽트 방해

연습문제

인쇄하면 답이 접힌 채로 나옵니다 — 그대로 문제지가 됩니다. 위의 “답도 함께 인쇄” 를 켜면 풀이까지 펴서 나옵니다.

  1. 논리 레벨과 노이즈 마진3.3 V CMOS 출력을 5 V CMOS 입력에 직접 연결하면?
    연습 9-01-1 — 3.3 V 출력을 5 V 입력에 물리면 회로도R13.3kΩ직렬 저항V55V5 V 쪽 출력 HighDCLAMP1N41483.3 V 소자의 ESD 다이오드RIN1MΩ입력 누설V333.3V3.3 V 전원DRVPINVDDVDDGND
    연습 9-01-1 — 3.3 V 출력을 5 V 입력에 물리면
    풀이

    5 V CMOS의 VIHV_{IH}는 3.5 V인데 3.3 V 출력의 VOHV_{OH}는 최대 3.3 V입니다.

    High를 인식하지 못하거나 불안정합니다. 게다가 문턱 근처에 머물면 입력단의 P/N 트랜지스터(transistor)가 동시에 켜져 관통 전류가 흘러 발열합니다.

    해결: 레벨 시프터(74LVC1T45 등), 또는 5 V 쪽을 TTL 입력(74HCT 시리즈)으로 교체 (VIHV_{IH} = 2.0 V) → 05

  2. 논리 레벨과 노이즈 마진접지 바운스가 0.5 V 발생합니다. 3.3 V LVCMOS 시스템에서 문제가 됩니까?
    풀이

    NML=0.7NM_L = 0.7 V이므로 0.5 V는 아슬아슬하게 견딥니다. 하지만 여유가 0.2 V뿐이라 온도·전압 변동에서 오동작할 수 있습니다.

    그리고 더 중요한 것: 같은 보드에 아날로그 회로가 있다면 0.5 V의 접지 바운스는 아날로그에 재앙입니다. 50 µV 신호의 10,000배입니다.

    디지털은 견뎌도 아날로그는 못 견딥니다. 이것이 접지 설계가 중요한 이유입니다.

  3. 논리 게이트와 부울대수드모르간으로 를 AND 형태로 바꾸세요.
    풀이

    A+B+C‾=Aˉ⋅Bˉ⋅Cˉ\overline{A+B+C} = \bar A\cdot\bar B\cdot\bar C

    "세 입력 NOR = 반전된 입력의 AND"

  4. 논리 게이트와 부울대수를 간소화하세요.
    연습 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

  5. 논리 게이트와 부울대수액티브 어레이의 50개 행 중 하나를 선택하려면 몇 개의 제어선이 필요하고, 어떤 회로를 씁니까?
    풀이

    직접 구동: 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에서 다루는 "배선 수를 줄이는 것이 왜 설계의 핵심인가" 의 구체적 사례입니다.

  6. 순차 논리와 플립플롭 = 5 ns, 조합 논리 지연 10 ns, = 3 ns. 최대 클럭 주파수는?
    연습 9-03-1 — 타이밍 예산이 최대 클럭을 정한다 회로도R11kΩ논리의 구동 저항VQ플립플롭 출력 (t_co 5 ns 뒤)C114.4pF다음 단 입력 용량QDGND
    연습 9-03-1 — 타이밍 예산이 최대 클럭을 정한다
    풀이

    Tmin=5+10+3=18 nsT_{min} = 5+10+3 = 18\ \text{ns}

    fmax=118 ns≈55.6 MHzf_{max} = \frac{1}{18\ \text{ns}} \approx 55.6\ \text{MHz}

    실무에서는 여유를 20~30% 두어 40 MHz 정도로 운용합니다.

  7. 순차 논리와 플립플롭외부 장비의 트리거 신호를 MCU 클럭에 동기화해야 합니다. 왜 필요하고 어떻게 합니까?
    풀이

    왜: 외부 트리거는 MCU 클럭과 무관한 타이밍에 도착하므로, 하필 셋업/홀드 구간에 에지가 오면 메타스테이블 상태가 됩니다. 그러면 그 값을 읽는 로직마다 다른 값을 볼 수 있어(fan-out에 따라) 시스템이 불일치 상태에 빠집니다.

    어떻게:

    외부 트리거 | 비동기
    > FF1 (clk)
    > FF2 (clk)
    > FF3 (clk) | 신뢰성이 중요하면 한 단 더
    = 내부 로직

    2단이 표준이고, 클럭이 매우 빠르거나 신뢰성이 중요하면 3단을 씁니다.

    추가 고려:

    • 입력에 슈미트 트리거(Schmitt trigger) — 느린 에지로 인한 발진 방지
    • RC 필터 — 노이즈로 인한 가짜 트리거 방지
    • 트리거 정확도가 중요하면 타임스탬프 카운터로 도착 시각을 기록 (동기화 지연을 보정)

    ⚠️ 동기화기는 2~3 클럭의 지연을 추가합니다. 트리거 타이밍 정밀도가 중요한 측정에서는 이 지연을 보정하거나, 별도의 고속 타임스탬프 회로를 써야 합니다.

  8. 클럭과 타이밍크리스털 = 18 pF, 기판 기생 5 pF. 부하 커패시터 값은?
    연습 9-04-1 — 크리스털 부하 커패시터 26 pF 이 어디서 나오나 회로도LM9.89mH기계적 가지I11A1 A → 전압이 곧 임피던스CM10fF0.01 pF — 이런 부품은 없습니다C05pF전극 사이 용량CL13.5pF부하 (27 pF 두 개의 직렬)ZMIDGND
    연습 9-04-1 — 크리스털 부하 커패시터 26 pF 이 어디서 나오나
    풀이

    C1=C2=2(18−5)=26 pFC_1 = C_2 = 2(18-5) = 26\ \text{pF}

    E12에서 22 pF 또는 27 pF. 27 pF이 더 가깝습니다.

  9. 클럭과 타이밍10 kHz 신호를 16비트 정확도로 샘플링하려면 허용 지터는?
    풀이

    16비트 SNR ≈ 98 dB

    tjitter=10−SNR/202πf=10−98/202π×104=1.26×10−56.28×104≈200 pst_{jitter} = \frac{10^{-\text{SNR}/20}}{2\pi f} = \frac{10^{-98/20}}{2\pi\times10^4} = \frac{1.26\times10^{-5}}{6.28\times10^4} \approx 200\ \text{ps}

    200 ps 이하. 일반 크리스털 발진기(수 ps~수십 ps 지터)로 충분히 달성 가능합니다.

    만약 1 MHz 신호라면: 2 ps — 훨씬 어렵습니다. 저지터 발진기가 필요합니다.

  10. 클럭과 타이밍2500채널 어레이를 순차 스캔합니다. 첫 채널과 마지막 채널의 샘플링 시각이 172 µs 차이납니다. 이것이 문제가 됩니까?
    풀이

    용도에 따라 다릅니다.

    문제가 되는 경우:

    • 공간적 전파 현상 관찰 — 신경 활동의 전파 속도를 측정한다면, 172 µs는 실제 전파 지연(수 ms)의 상당 부분입니다. 채널 간 시간차가 공간 정보를 왜곡합니다
    • 동기 이벤트 검출 — 여러 채널의 동시 발화를 판정할 때 시간차가 오판을 만듦
    • 위상(phase) 관계 분석 — 주파수 대역 간 위상 결합(phase-amplitude coupling) 분석

    문제가 안 되는 경우:

    • 각 채널의 파형 자체만 볼 때
    • 신호 대역이 172 µs보다 훨씬 느릴 때 (< 1 kHz)

    대책:

    1. 타임스탬프 보정 — 각 채널의 샘플링 시각을 알고 있으므로 후처리로 보정(리샘플링). 가장 실용적
    2. 동시 샘플-홀드 — 모든 채널을 동시에 샘플링한 뒤 순차적으로 읽음. 픽셀마다 샘플-홀드 커패시터가 필요해 면적·복잡도 증가. 이미지 센서의 "글로벌 셔터"와 같은 개념
    3. 병렬 리드아웃 — 열마다 ADC를 두면 행 단위로만 시간차 발생 (50배 개선)
    4. 스캔 순서 최적화 — 관심 영역을 먼저 읽거나, 인터리브

    이것이 롤링 셔터(rolling shutter) 문제와 정확히 같습니다. 카메라에서 빠르게 움직이는 물체가 기울어져 보이는 현상과 같은 원리입니다.

    자세한 논의 → 16-01

  11. 풀업·오픈드레인·레벨 시프터I2C 400 kHz, 버스 용량 150 pF, 3.3 V. 풀업 저항 범위는?
    연습 9-05-1 — I2C 풀업 저항의 위아래 한계 회로도RP2.2kΩ풀업VDD3.3VVC놓는 순간CB150pF버스 용량SW1SW_IDEAL개방 드레인VPSDACTLGND
    연습 9-05-1 — I2C 풀업 저항의 위아래 한계
    풀이

    최소: 3.3−0.40.003=967 Ω\dfrac{3.3-0.4}{0.003} = 967\ \Omega

    최대: 300×10−90.8473×150×10−12≈2.36 kΩ\dfrac{300\times10^{-9}}{0.8473\times150\times10^{-12}} \approx 2.36\ \text{k}\Omega

    범위: 1 kΩ ~ 2.36 kΩ → 1.8 kΩ 또는 2.2 kΩ

  12. 풀업·오픈드레인·레벨 시프터3.3 V MCU와 5 V 센서를 I2C로 연결합니다. 어떻게 하겠습니까?
    BSS138 양방향 레벨 시프터 (I2C) 회로도RA2.2kΩ3.3V 풀업RB2.2kΩ5V 풀업V333.3VV505VCA100pFMCU측 버스 용량CB100pF센서측 버스 용량VCM1BSS138SWSW_IDEALMCU 오픈드레인VLVHSDALSDAHCTLGND
    BSS138 양방향 레벨 시프터 (I2C)
    풀이

    BSS138 MOSFET 레벨 시프터 (SDA, SCL 각각):

    09-digital/bss138-levelshift

    SDA·SCL 두 신호에 각각 하나씩, 총 BSS138 2개 + 풀업 4개가 필요합니다.

    왜 이 방법인가:

    • I2C는 양방향이므로 방향 제어가 필요 없는 방식이어야 함
    • 오픈드레인 특성을 유지해야 함
    • 저렴하고 검증됨

    대안: PCA9306, TXS0102 같은 전용 IC (더 빠르고 확실하지만 비쌈)

    ⚠️ 주의: 양쪽에 각각 풀업이 필요하고, 버스 용량이 두 배가 되므로 풀업 값을 다시 계산해야 합니다.

    더 간단한 대안: 센서가 3.3 V로도 동작한다면(많은 5 V 센서가 3.0~5.5 V 범위) 그냥 3.3 V로 구동하세요. 레벨 시프터가 아예 필요 없습니다.

  13. 아날로그 스위치와 멀티플렉서 = 50 Ω, 부하 용량 50 pF. 10비트 세틀링 시간은?
    연습 9-06-1 — 아날로그 스위치의 10비트 세틀링 회로도RON50Ω스위치 도통 저항V1CH50pF홀드 커패시터INOUTGND
    연습 9-06-1 — 아날로그 스위치의 10비트 세틀링
    풀이

    τ=50×50×10−12=2.5 ns\tau = 50\times50\times10^{-12} = 2.5\ \text{ns}

    tsettle=6.9τ=17.3 nst_{settle} = 6.9\tau = 17.3\ \text{ns}

  14. 아날로그 스위치와 멀티플렉서 = 2 pC인 스위치를 홀드 커패시터 10 pF과 씁니다. 옵셋 오차는? 16비트 ADC(±1 V)에서 몇 LSB입니까?
    풀이

    ΔV=2×10−1210×10−12=0.2 V\Delta V = \frac{2\times10^{-12}}{10\times10^{-12}} = 0.2\ \text{V}

    200 mV!

    LSB = 2/65536=30.5 μ2/65536 = 30.5\ \muV이므로:

    0.230.5×10−6≈6557 LSB\frac{0.2}{30.5\times10^{-6}} \approx 6557\ \text{LSB}

    완전히 사용 불가능합니다.

    개선:

    • 홀드 커패시터를 1 nF으로 → ΔV=2\Delta V = 2 mV (65 LSB) — 여전히 큼
    • CDS 적용 → 대부분 제거 ✅
    • 차동 구조 → 상쇄
    • QinjQ_{inj}가 작은 소자 (0.1 pC급)

    charge injection은 단순히 커패시터를 키워서 해결할 수 있는 수준이 아닙니다. CDS나 차동 구조 같은 회로 기법이 필요합니다.

  15. 아날로그 스위치와 멀티플렉서2500채널 어레이에서 채널당 세틀링 100 ns가 필요합니다. 프레임 레이트와 채널당 유효 대역폭은? 대역폭을 2배로 하려면 무엇을 바꿔야 합니까?
    풀이

    프레임 시간: 2500×100 ns=250 μs2500\times100\ \text{ns} = 250\ \mu\text{s}
    프레임 레이트: 1/250μ=4 kHz1/250\mu = 4\ \text{kHz}
    채널당 유효 대역폭: 나이퀴스트로 2 kHz (실용적으로는 프레임 레이트의 1/4~1/5인 800 Hz~1 kHz)

    대역폭 2배로 만들려면 (프레임 레이트 8 kHz):

    방법어떻게대가
    세틀링 시간 절반 (50 ns)τ\tau를 절반으로 → RONR_{ON} 또는 CC를 절반으로RONR_{ON}↓ = 큰 스위치 = QinjQ_{inj}↑; CC↓ = 배선 짧게(레이아웃 제약)
    정확도 낮춤 (12비트→10비트)8.3τ→6.9τ8.3\tau \rightarrow 6.9\tau17% 개선뿐 — 부족
    병렬 리드아웃열마다 ADC를 두어 50열 동시면적·전력 50배, 채널 간 정합 문제
    채널 수 절반1250채널만 읽기공간 해상도 손실
    관심 영역(ROI)만 스캔필요한 영역만유연성 있음, 실용적 ✅

    실무적 답: 병렬 리드아웃(열 병렬 ADC) 이 표준 해법입니다. CMOS 이미지 센서가 고속·고해상도를 달성한 방법과 같습니다. 열마다 간단한 ADC를 두면 행 단위로만 순차 처리하면 되므로 속도가 열 수만큼 빨라집니다.

    이 설계 판단의 전개가 16-01의 핵심입니다.

  16. 카르노맵과 해저드 를 간소화할 수 있습니까?
    풀이

    없습니다. 이것은 XOR 이고, 카르노맵에서 1 들이 대각선으로 놓여
    인접하지 않습니다.

          B
        0   1
    A  ┌───┬───┐
    0  │ 0 │ 1 │
    1  │ 1 │ 0 │
       └───┴───┘

    묶을 수 있는 인접 쌍이 없으므로 두 항 그대로입니다.

    XOR 이 게이트로 비싼 이유가 이것입니다 — AND/OR 로는 못 줄이고,
    CMOS 로 만들면 트랜지스터가 12개(NAND 는 4개)입니다. 패리티나 비교기에
    XOR 이 많이 들어가면 면적이 금방 커집니다.

  17. 카르노맵과 해저드 에 해저드가 있습니까? 있으면 어디입니까?
    연습 9-07-2 — 해저드는 두 길의 지연 차이가 만든다 회로도RD700Ω인버터 한 단의 지연DF1N4148빠른 항 (AB)DS1N4148늦은 항 (ĀC)VAA 가 1 → 0CD10pFRL10kΩOR 의 부하VIĀ (뒤집힌 것)RI1kΩ뒤집는 쪽GNDGNDAABARSLOWOUTGND
    연습 9-07-2 — 해저드는 두 길의 지연 차이가 만든다
    풀이

    있습니다. B=C=1B = C = 1 일 때 AA 가 바뀌는 순간입니다.

    AAABABAˉC\bar A CFF
    1101
    전환 중000 ✗
    0011

    AA 가 1→0 으로 갈 때 ABAB 는 바로 0 이 되는데 Aˉ\bar A 는 인버터를
    거치느라 늦게 1 이 되므로, 그 사이에 둘 다 0 인 순간이 생깁니다.

    해결: 중복항 BCBC 를 추가합니다.

    F=AB+AˉC+BCF = AB + \bar{A}C + BC

    B=C=1B=C=1 인 동안 BCBC 가 계속 1 을 붙잡아 줍니다. 논리적으로는 없어도
    되는 항
    이지만 시간적으로는 필요합니다.

  18. 카르노맵과 해저드8채널 MUX 의 주소를 MCU GPIO 로 직접 만듭니다. 무엇을 조심해야 합니까?
    풀이

    GPIO 는 비트마다 따로 바뀝니다. GPIOA-&gt;ODR = 0b011 처럼 한 번에
    써도 실제 핀은 몇 ns 어긋나 바뀌고, 배선 길이까지 다르면 더 벌어집니다.

    주소를 011 → 100 으로 바꾸면 세 비트가 다 바뀌므로 중간에
    001·010·101·110·111 중 무엇이든 지날 수 있습니다 — 아무 채널이나
    잠깐 켜집니다.

    대책 (순서대로 권장):

    1. EN 을 먼저 끄고 주소를 바꾸고 다시 켠다 — 가장 확실, 소프트웨어만
    2. 주소 순서를 그레이 코드로 (000→001→011→010→110→111→101→100)
    3. 외부 레지스터(74HC574)로 받아 하나의 클럭으로 동시에 바꿈

    1번이 표준입니다. 어차피 채널을 바꾼 뒤 세틀링
    을 기다려야 하므로, 그 앞에 EN 오프 구간을 두는 것이 비용이 거의 0 입니다.

  19. 상태기계와 메타스테이빌리티외부 장비의 트리거 신호를 FSM 의 start 로 직접 연결했습니다. 평소엔 잘 되는데 하루에 한두 번 스캔이 엉킵니다. 왜입니까?
    연습 9-08-1 — 외부 트리거가 금지 구간에 머무는 시간 회로도R11kΩ케이블·소스 임피던스VT외부 트리거C1470pF케이블 용량SRCSTARTGND
    연습 9-08-1 — 외부 트리거가 금지 구간에 머무는 시간
    풀이

    메타스테이빌리티입니다.

    외부 트리거는 우리 클럭과 아무 관계가 없으므로, 언젠가는 반드시
    셋업/홀드 창 안에서 바뀝니다. 그때 첫 플립플롭이 중간 전압에 머물고,
    그 값을 읽는 논리들이 서로 다르게 판단해 정의되지 않은 상태로
    갑니다.

    "하루에 한두 번"이 딱 동기화기 없는 MTBF 입니다.

    해결: 두 단 동기화기를 넣습니다. 지연 2클럭(10 MHz 면 200 ns)이
    늘지만 MTBF 가 수백만 년이 됩니다.

    trigger → [FF] → [FF] → start (FSM 으로)

    ⚠️ 그리고 트리거가 클럭보다 짧을 수 있으면 에지 검출기도 같이
    넣습니다 — 짧은 펄스는 동기화기가 통째로 놓칠 수 있습니다.

  20. 상태기계와 메타스테이빌리티원핫으로 만든 5상태 FSM 이 가끔 멈춥니다. 무엇을 확인합니까?
    풀이

    불법 상태에 빠졌는지 봅니다.

    원핫 5상태는 플립플롭 5개 = 32가지 조합인데, 합법은 5가지뿐입니다.
    나머지 27가지 중 하나에 빠지면 어느 전이 조건도 안 맞아 영원히
    멈춥니다.

    어떻게 빠지는가:

    • 전원 기동 시 초기값이 안 정해짐
    • 노이즈로 비트 하나가 뒤집힘
    • 메타스테이빌리티

    해결:

    1. default 를 IDLE 로 — 합법이 아닌 모든 조합에서 IDLE 로 가게
    2. 비동기 리셋을 확실히 걸어 IDLE 로 시작
    3. 워치독 — 일정 시간 이상 같은 상태면 리셋

    1번이 핵심입니다. HDL 로 쓸 때 case 의 default 를 빠뜨리면
    합성기가 "그 경우는 안 온다"고 보고 아무것도 안 만듭니다.

  21. 상태기계와 메타스테이빌리티스캔 속도를 2배로 올리라는 요구를 받았습니다. 위 계산 (SETTLE 8 µs, CONVERT 4 µs)에서 무엇부터 봅니까?
    풀이

    SETTLE 부터입니다. 전체 12.3 µs 중 8 µs(65%)를 차지합니다.

    목표는 채널당 6.15 µs. CONVERT 4 µs 를 그대로 두면 SETTLE 에 쓸 수
    있는 것은 2 µs 뿐입니다.

    tsettle=9.0τ≤2 μs⇒τ≤0.22 μst_{settle} = 9.0\tau \le 2\ \mu\mathrm{s} \quad\Rightarrow\quad \tau \le 0.22\ \mu\mathrm{s}

    지금 τ\tau = 0.89 µs 이므로 4배 빠르게 해야 합니다.

    방법어떻게대가
    MUX 도통 저항↓더 좋은 MUX값, 전하 주입↑
    뒤쪽 용량↓배선 짧게, 앰프 입력 작게레이아웃
    분해능↓12비트 → 10비트9.0τ→7.6τ9.0\tau \to 7.6\tau, 15% 만 이득
    구조 변경채널마다 앰프부품 8배

    ⚠️ 분해능을 낮추는 것은 거의 도움이 안 됩니다 — 세틀링이 비트 수에
    로그로 붙기 때문입니다 (18-00의
    연습문제 3 과 같은 계산).

    현실적인 답: CONVERT 를 더 빠른 ADC 로 줄이고(4 → 2 µs), SETTLE 을
    4 µs 로 (τ 를 반으로 = MUX 와 배선 개선). 그래도 안 되면 채널마다
    ADC 를 두는 구조
    로 갑니다.