치트시트

17장. 워크플로

문서 5개 · 수식 7개 · 회로 4개 · 함정 3개 · 문제 11개

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

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

circuit.yaml 포맷

회로를 텍스트로 적습니다. 사람이 읽고 쓸 수 있으면서, 검증·시뮬레이션·EasyEDA 내보내기가 모두 이 파일 하나에서 나옵니다.

전극 버퍼 — 이상 모델 회로도RS200kΩ전극 임피던스VS1V전극 신호원VP5VVN-5VU1OPA140버퍼VCCVCCVEEVEESRCINOUTGND
전극 버퍼 — 이상 모델
전극 버퍼 — 기생 포함 모델 회로도RS200kΩ전극 확산 저항RCT10MΩ전하전달 저항CDL10nF이중층 용량VS1V전극 신호원CW6pF배선 기생 용량 (30 mm)CIN8pFOP앰프 입력 용량VP5VVN-5VU1OPA140버퍼VCCVCCVEEVEESRCELINOUTGND
전극 버퍼 — 기생 포함 모델

⚖️ 고르는 기준

선택✅⚠️
YAML사람이 읽고 쓰기 쉬움, 주석 가능들여쓰기 민감
JSON도구 친화주석 없음, 장황
SPICE 넷리스트 직접시뮬레이터 직결검증·EasyEDA에 정보 부족, 가독성
회로도 파일시각적텍스트 diff 불가, 도구 종속
넷 중심 표기연결이 명확, 검증 쉬움회로도로 시각화 필요
부품 중심 표기부품 정보 집중연결 파악 어려움

검증 (ERC)

회로를 만들기 전에 에러를 자동으로 찾습니다. 각 경고는 해당 학습 문서로 연결됩니다.

LED 직결 (의도적 오류 예제) 회로도V15VD1LED_REDVINGND
LED 직결 (의도적 오류 예제)

⚖️ 고르는 기준

선택✅⚠️
엄격한 규칙실수 방지오탐(false positive) 이 많으면 무시하게 됨
느슨한 규칙방해 안 됨놓치는 실수
경고에 문서 링크학습 효과문서 유지보수
정적 + 정량 분리환경 무관 기본 검증두 번 실행

시뮬레이션으로 측정 확인

회로를 실제로 풀어 손계산과 일치하는지 확인합니다. 워크벤치에서 예제를 고르면 브라우저가 바로 풀고, expect 에 적어 둔 값과 맞대어 보여 줍니다. 어느 한쪽만 맞으면 둘 중 하나가 틀린 것입니다.

대역폭 또는 자속밀도정전용량F듀티비잡음 전압 밀도V/√Hz컨덕턴스S전류 (순시값)A허수 단위저항 (소신호)Ω시간s전압 (순시값)V

거리 또는 두께m컨덕턴스 (소신호)S전류A0번 전류A전압V0번 전압V

이득이득 (ol)이득 대역폭 곱Hz

정전용량F차단 주파수Hz저항Ω

전류A전력W저항Ω1번 전압V2번 전압V

차단 주파수Hz

전류 이득 (BJT)베이스 전류A컬렉터 전류A부하 저항Ω전압 (CC)V전압 (CE(sat))V

⚠️ 이상과 실제

못 하는 것대응
레이아웃 의존 기생경험값 + 여유, 실측
방사·유도 결합(coupling)3D 전자기 해석 또는 실측
발진 정확 예측실물 측정 필수
접촉 불량, 조립 오차—
열 분포열 해석
부품 개체 편차몬테카를로

⚖️ 고르는 기준

선택✅⚠️
브라우저 (여기)설치 없음, 즉시, 폰에서도잡음 해석이 없음, OP앰프는 1극점
ngspice / EasyEDA비선형, 제조사 모델설치 필요, PC 에서만
이상 모델빠름, 개념 확인실물과 다름
기생 포함 모델실용적 정확도파라미터 확보 필요
해석해 교차검증신뢰성단순 회로만 가능
몬테카를로부품 편차 반영시간

EasyEDA로 내보내기

circuit.yaml에서 EasyEDA Standard가 읽을 수 있는 .json 을 생성합니다. 열자마자 Ctrl+R로 시뮬레이션까지 됩니다.

부하가 걸린 분압기 회로도R110kΩV15VR210kΩRL10kΩ부하VINOUTGND
부하가 걸린 분압기

⚠️ 이상과 실제

위험설명대응
시뮬 심볼 이름EasyEDA Std 시뮬레이터는 특정 spiceSymbolName만 인식. 임의 값을 쓰면 파일은 열려도 Ctrl+R 실패R/C/L/V/I부터 실측으로 확인해 표로 고정
head의 AC/DC 필드문서화가 부실EasyEDA UI에서 설정 후 저장한 파일과 diff
심볼 기하BJT·MOSFET·opamp는 핀이 3~5개라 손으로 그려야 함circuit preview SVG로 검증
값 표시와 속성 불일치Value(Ω) 속성과 표시 텍스트가 다르면 시뮬이 화면과 다른 값을 씀한 소스에서 둘 다 채움

⚖️ 고르는 기준

선택✅⚠️
넷라벨 방식연결 100% 정확, 구현 단순못생김
자동 배선보기 좋음복잡, 버그 위험
EasyEDA Std JSON공개 포맷, Std+Pro 대응Pro 전용 기능 사용 불가
KiCad 넷리스트오픈소스 생태계EasyEDA에서 추가 변환 필요
프로브 자동 부착즉시 시뮬 가능노드가 많으면 복잡

채팅으로 회로 만들기

한국어로 설명하면 회로 파일이 나옵니다. 검증기가 피드백 루프라서 기계적으로 확인된 회로만 나옵니다.

LLM이 만든 회로를 그대로 믿지 않고, 검증기를 통과한 것만 내놓습니다.

⚠️ 이상과 실제

한계대응
LLM이 틀릴 수 있음검증기 통과 + 본인이 계산 확인
검증기가 모든 것을 잡지는 못함학습 문서로 이해
레이아웃은 다루지 못함15장 직접
특수 부품 모델 부족직접 추가
최종 책임은 설계자실물 검증 필수

⚖️ 고르는 기준

선택✅⚠️
Claude Code 스킬API 키 불필요(구독 사용량), 파일·명령 직접 실행Claude Code 환경 필요
독립 CLI (circuit chat)어디서나API 키 필요 또는 claude CLI 의존
웹 UI편함구현 부담

연습문제

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

  1. circuit.yaml 포맷다음 회로를 circuit.yaml로 쓰세요: 9 V 전원, 1 kΩ과 2 kΩ 직렬, 중간점이 출력.
    풀이
    meta:
      name: 9V 분압기
    
    components:
      - {ref: V1, type: vdc, value: 9}
      - {ref: R1, type: r, value: 1k}
      - {ref: R2, type: r, value: 2k}
    
    nets:
      VIN: [V1.p, R1.1]
      OUT: [R1.2, R2.1]
      GND: [V1.n, R2.2]
    
    analyses:
      - {type: op}
    
    expect:
      - {measure: v, node: OUT, value: 6.0, tol: 1%}

    VOUT=9×23=6V_{OUT} = 9\times\frac{2}{3} = 6 V

  2. circuit.yaml 포맷이 포맷에서 GND가 예약어인 이유는?
    풀이

    SPICE에서 노드 0이 접지이고, 모든 회로는 접지 기준이 있어야 풀립니다.

    GND 넷을 자동으로 노드 0에 매핑하면:

    1. 사용자가 매번 지정할 필요 없음
    2. 접지 없는 회로를 검증 단계에서 잡을 수 있음 (E201)
    3. EasyEDA 내보내기에서 접지 심볼로 변환

    ⚠️ 접지가 없으면 SPICE가 singular matrix 오류를 냅니다 (2-02). 검증기가 시뮬레이션 전에 잡아줍니다.

  3. 검증 (ERC)다음 회로에서 검증기가 잡을 문제는?
    풀이
    코드문제
    E201GND 넷이 없음 → SPICE 시뮬레이션 불가
    W301LED에 직렬 저항 없음 → 파괴 위험

    수정:

    components:
      - {ref: V1, type: vdc, value: 5}
      - {ref: R1, type: r, value: 330}
      - {ref: D1, type: led, model: LED_RED}
    nets:
      VIN: [V1.p, R1.1]
      A:   [R1.2, D1.a]
      GND: [V1.n, D1.k]
    ```text
  4. 검증 (ERC)W501(고임피던스 노드에 버퍼 없음)은 어떻게 검출합니까?
    풀이

    검출 논리:

    1. 각 노드의 테브난 등가(Thévenin equivalent) 저항을 계산 (2-05)
    2. 100 kΩ 이상인 노드를 찾음
    3. 그 노드가 다음 중 하나에 연결되었는지 확인:
    4. 커넥터 (외부로 나감)
    5. 큰 용량성 부하
    6. 여러 부품 (배선이 길어질 가능성)
    7. 그리고 버퍼(팔로워 구성 OP앰프, 소스 팔로워(source follower))가 없으면 경고

    메시지 예:

    W501  노드 'ELECTRODE'의 임피던스가 1.0 MΩ입니다
          이 노드가 커넥터 J1로 나갑니다. 케이블 용량(약 100 pF/m)과
          만나면 대역폭이 1.6 kHz로 제한됩니다.
          
          수정: 이 노드 바로 옆에 버퍼(볼티지 팔로워)를 넣으세요.
          참고: docs/13-signal-chain/03-input-impedance.md

    이 규칙이 이 저장소의 목적(신호 측정)에 특화된 부분입니다. 일반 EDA 도구는 이런 검사를 하지 않습니다.

  5. 시뮬레이션으로 측정 확인RC 저역통과(10 kΩ, 100 nF)의 차단주파수를 손으로 계산하고, expect 로 쓰세요.
    풀이

    fc=12π×104×10−7≈159.15 Hzf_c = \frac{1}{2\pi\times10^4\times10^{-7}} \approx 159.15\ \text{Hz}

    analyses:
      - {type: ac, sweep: dec, points: 50, fstart: 1, fstop: 100k}
    
    expect:
      - {measure: gain_db, node: OUT, at: 159.15, analysis: ac, value: -3.01, tol: 0.2}
      - {measure: gain_db, node: OUT, at: 1591.5, analysis: ac, value: -20.04, tol: 0.5}

    10배 주파수에서 −20 dB(1차 롤오프)도 함께 검증합니다.

  6. 시뮬레이션으로 측정 확인시뮬레이션 대역폭이 실측보다 훨씬 넓습니다. 무엇을 빠뜨렸을까요?
    풀이

    기생 용량(parasitic capacitance)을 넣지 않았을 가능성이 큽니다 (11-07).

    확인 목록:

    • [ ] 고임피던스 노드의 대지 용량 (PCB 1~3 pF/cm)
    • [ ] 케이블 용량 (100 pF/m)
    • [ ] OP앰프 입력 용량 (2~10 pF)
    • [ ] 프로브(probe) 용량 (측정 시 10 pF)
    • [ ] 소스 임피던스가 실제 값인가
    • [ ] OP앰프 품번이 모델표에 있는가 (없으면 GBW 1 MHz 일반값으로 풀립니다)

    가장 흔한 원인: 소스 임피던스와 입력 용량을 넣지 않아 RCRC 가 0 이 된 경우.

    수정 예:

    components:
      - {ref: RS,  type: r, value: 1MEG, label: 실제 소스 임피던스}
      - {ref: CIN, type: c, value: 15p,  label: 입력 용량 + PCB + 프로브}
  7. 시뮬레이션으로 측정 확인NPN 스위치의 컬렉터 전류를 계산했더니 = 1.1 A 가 나왔습니다. 그런데 시뮬레이션은 49 mA 라고 합니다. 누가 맞습니까?
    풀이

    시뮬레이션이 맞고, βIB\beta I_B 를 쓴 것이 틀렸습니다. IC=βIBI_C = \beta I_B 는 활성 영역에서만 성립합니다.

    부하가 240 Ω, 전원이 12 V 면 흐를 수 있는 최대 전류가 50 mA 입니다. 그보다 많이 흘리려 하면 컬렉터 전압이 이미터 아래로 내려가고, 그러면 베이스-컬렉터 접합이 순방향이 되어 여분의 베이스 전류를 되돌려 보냅니다. 이것이 포화입니다 (6-02).

    IC=min⁡(βIB, VCC−VCE(sat)RL)I_C = \min\left(\beta I_B,\ \frac{V_{CC} - V_{CE(sat)}}{R_L}\right)

    스위치로 쓸 때는 일부러 포화시킵니다 — VCEV_{CE} 가 0.1~0.2 V 로 내려가야 손실이 작습니다. 그래서 베이스 전류를 필요한 것보다 넉넉히(보통 IC/10I_C/10) 줍니다.

    이 시뮬레이터를 만들 때 베이스-컬렉터 접합을 빼먹었더니 정확히 이 회로가 1.04 A 를 흘렸습니다. 부하가 허용하는 것이 50 mA 인데도요.

  8. EasyEDA로 내보내기생성한 JSON이 EasyEDA에서 열리는데 부품이 안 보입니다. 무엇을 확인합니까?
    풀이

    BBox를 확인하세요.

    BBox가 모든 도형을 감싸지 않으면, 파일은 열리지만 뷰가 빈 곳을 비춥니다.

    "BBox": {"x":170, "y":100, "width":200, "height":130}

    확인:

    1. 모든 도형의 좌표 범위를 계산
    2. BBox가 그 범위를 포함하는가
    3. 여유를 두었는가 (심볼 텍스트 포함)

    그 외 확인:

    • canvas의 뷰박스 크기
    • 도형 좌표가 캔버스 범위 안인가
    • EasyEDA에서 "Fit to screen"(Ctrl+Shift+F) 시도
  9. EasyEDA로 내보내기파일은 열리는데 Ctrl+R(시뮬레이션)이 실패합니다. 원인은?
    풀이

    spiceSymbolName 속성이 EasyEDA 시뮬레이터가 인식하는 값이 아닐 가능성이 큽니다.

    EasyEDA Std의 시뮬레이터는 특정 시뮬레이션 라이브러리 심볼만 인식합니다:

    • 저항 → Resistor
    • 커패시터(capacitor) → Capacitor
    • 정현파 전압원 → VSIN
    • 등

    확인 방법:

    1. EasyEDA에서 직접 부품을 배치하고 저장
    2. 그 파일의 LIB~ 문자열에서 spiceSymbolName 값 확인
    3. 우리 생성기의 값과 비교

    그 외 확인:

    • spicePre 속성 (R, C, L, V, I)
    • 값 속성(Value(Ω))과 표시 텍스트가 일치하는가
    • 접지(GND) 플래그가 있는가 — 없으면 시뮬 불가
    • 시뮬 설정(head의 TRAN/AC/DC)이 올바른가

    막히면 "EasyEDA는 회로도 작성·PCB용, 시뮬은 로컬 ngspice"로 분리해도 됩니다. 두 도구가 같은 엔진을 쓰므로 값은 어차피 같습니다.

  10. 채팅으로 회로 만들기"저잡음 증폭기 만들어줘"라는 요청이 왜 나쁜가요?
    풀이

    목표가 없어서 설계할 수 없습니다.

    빠진 정보:

    • 신호원의 임피던스(impedance) → 소자 선택이 완전히 달라짐 (7-06)
    • 신호 크기 → 게인 결정
    • 대역폭(bandwidth) → 잡음 계산의 기본
    • 목표 SNR → 달성 가능성 판정
    • 전원, 오프셋, 간섭 환경

    개선된 요청:

    "소스 임피던스 200 kΩ, 신호 50 µV rms, 대역 300 Hz~5 kHz,
    목표 입력 환산 잡음 5 µV rms 이하, ±5 V 전원"

    이러면 16-00 방법론의 3단계(가능/불가능 판정)를 바로 할 수 있습니다.

    "저잡음"은 상대적입니다. 숫자로 말하세요.

  11. 채팅으로 회로 만들기채팅으로 만든 회로를 어디까지 믿어야 합니까?
    풀이

    단계별로 신뢰도가 다릅니다.

    단계신뢰도근거
    circuit check 통과높음기계적 규칙
    circuit sim 값높음ngspice (단, 모델 한계)
    circuit test 통과높음기대값과 대조
    게인·필터 계산중간검산 필요
    소자 선택중간근거를 확인하세요
    노이즈 예산중간직접 계산 검증
    레이아웃 조언낮음회로도로 표현 불가
    실물 동작모름반드시 실측

    권장 절차:

    1. 생성된 회로의 핵심 계산을 직접 검산 (게인, 대역폭, 잡음)
    2. 왜 그 소자를 골랐는지 근거를 확인 (문서 링크 따라가기)
    3. 시뮬레이션 결과가 손계산과 맞는지 확인
    4. 기생 성분(parasitic)을 넣은 모델로 다시 시뮬레이션
    5. 시제품 제작 후 실측 검증 (14장)

    도구는 계산과 검증을 대신해주지만, 판단은 설계자의 몫입니다. 그래서 이 저장소가 도구보다 문서를 먼저 만든 것입니다.