채팅으로 회로 만들기

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


어떻게 동작하는가

사용자: "5V에서 LED 3개 켜는 회로 만들어줘"circuit.yaml 작성circuit check에러가 있으면 스스로 고치고 다시 검사circuit sim값이 상식적인지 확인expect 블록 작성검증값 고정circuit test통과 확인circuit exportEasyEDA 파일 생성한국어 설명 + 관련 문서 링크

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


Claude Code 스킬로 구현

.claude/skills/circuit-design/SKILL.md

Claude Max 구독 사용량으로 동작하며 별도 API 키가 필요 없습니다.

스킬이 하는 일

단계동작
1한국어 요구사항 확인 (전원 전압, 부하, 목표)
2circuit parts --json으로 부품·핀 목록을 실제 조회
3circuit.yaml 작성
4circuit check → 에러 0까지 반복 수정
5circuit sim → 값 확인, expect 작성
6circuit test → 통과 확인
7circuit export → EasyEDA 파일
8설명 + 문서 링크

★ 왜 circuit parts를 조회하는가

부품 목록(BOM)과 핀 이름을 하드코딩하지 않고 CLI에서 조회합니다.

이유
코드와 스킬이 절대 어긋나지 않음
부품이 추가되면 자동 반영
핀 이름 오타 방지

같은 이유로 circuit rules --json으로 규칙도 조회합니다.


대화 예

사용자: 전극에서 나오는 50µV 신호를 증폭해서 ADC로 읽고 싶어.
        전극 임피던스는 1kHz에서 200kΩ 정도야.

Claude: 몇 가지 확인하겠습니다.
        - 신호 대역은 어떻게 되나요? (LFP 1~300Hz / MUA 300Hz~5kHz)
        - ADC 입력 범위는요?
        - 목표 SNR이 있나요?

사용자: MUA 대역, ADC는 ±1V 12비트, SNR은 20dB 이상

Claude: 먼저 노이즈 예산을 계산하겠습니다.

        전극 열잡음: √(4kT×200k) = 57.5 nV/√Hz
        MUA 대역(4.7kHz, 잡음대역 5.2kHz)에서:
          57.5nV × √5220 = 4.15 µV rms
        SNR = 20log(50/4.15) = 21.6 dB ✅ 달성 가능

        [circuit.yaml 작성]
        [circuit check 실행] → 통과
        [circuit sim 실행] → 확인
        
        설계 결과:
        - 1단: OPA140 버퍼 (임피던스 변환)
        - 2단: 이득 100 (오프셋 여유 확인)
        - 3단: 4차 베셀 LPF 5kHz
        - 총 이득 2000 → 100µV 피크가 200mV
        
        참고 문서:
        - docs/16-case-studies/00-methodology.md
        - docs/13-signal-chain/02-gain-noise-budget.md

★ 검증기가 만드는 신뢰성

LLM은 그럴듯한 회로를 만들지만 틀릴 수 있습니다. 검증기가 그것을 잡습니다.

LLM의 흔한 실수잡는 규칙
LED에 저항 빼먹음W301
접지 넷 없음E201
핀 이름 오타E102
부유 넷E105
전력 정격 초과E401
고임피던스 노드에 버퍼 없음W501
안티에일리어싱 없음W502

그리고 circuit sim이 값이 상식적인지 확인합니다.

“검증할 수 없는 것은 생성하지 않는다” 가 이 설계의 원칙입니다.


잘 되는 요청 / 어려운 요청

✅ 잘 되는 요청

요청이유
“5V에서 LED 3개”표준 패턴, 계산 명확
“1kHz 저역통과 필터”공식이 명확
“9V를 3.3V로 분압”단순
“전극(electrode) 신호 증폭 체인”방법론 문서가 있음
“이 회로 검증해줘”검증기가 함

⚠️ 어려운 요청

요청이유
“성능 좋은 회로”목표가 불명확 → 되물어야 함
“이 논문 회로 그대로”정보 부족
특수 IC 사용심볼·모델 필요
레이아웃 관련회로도로 표현 불가
RF, 고속 디지털도구 범위 밖

💡 목표를 숫자로 말할수록 좋은 결과가 나옵니다. “저잡음”보다 “입력 환산 잡음(input-referred noise)입력환산잡음 input-referred noise회로 곳곳의 잡음을 입력단 하나로 몰아 표현한 값으로, 신호와 직접 견줄 수 있어 판정에 씁니다.자세히 보기 → 1 µV rms 이하, 대역 5 kHz”가 훨씬 낫습니다.


★ 좋은 요청 쓰는 법

항목무엇을 적나
신호원크기, 임피던스, 대역
목표SNR, 정확도, 속도
제약전원 전압, 소비 전력, 크기, 비용
환경온도, 간섭원, 안전 요구
용도무엇을 측정/제어하는가

예시:

“전극(1 kHz에서 200 kΩ)에서 50 µV rms 신호를 측정합니다. 대역은 300 Hz~5 kHz(MUA), 목표 SNR은 20 dB 이상. ±5 V 전원, ADC는 ±1 V 12비트. 전극 DC 오프셋이 ±100 mV 있습니다. 채널은 8개이고, 60 Hz 간섭(interference)이 심한 실험실 환경입니다.”

이 정도면 16-00 방법론의 8단계를 그대로 적용할 수 있습니다.


⚖️ 트레이드오프

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

💡 claude CLI를 내부에서 호출하면 구독 사용량으로 독립 실행도 가능합니다. API 키를 따로 발급받을 필요가 없습니다.


⚠️ 한계와 주의

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

⚠️ 채팅으로 만든 회로를 그대로 발주하지 마세요. 검증기를 통과했다는 것은 “명백한 오류가 없다”는 뜻이지 “최적 설계”라는 뜻이 아닙니다. 직접 계산으로 확인하고, 이 저장소의 문서로 왜 그렇게 설계했는지 이해하세요.


🔌 활용 시나리오

시나리오활용
빠른 시제품표준 회로를 즉시 생성
설계 검토“이 회로 문제 없어?”
학습“왜 이 저항이 필요해?” → 문서 링크
계산 대행노이즈 예산, 게인 배분게인 배분 gain distribution전체 이득을 각 단에 어떻게 나눠 줄지의 문제로, 잡음과 포화가 서로 반대 방향으로 잡아당깁니다.자세히 보기 →
변형 생성“게인을 2배로”, “3.3V 버전으로”
EasyEDA 파일 생성그리는 시간 절약

연습문제

문제 1. “저잡음 증폭기 만들어줘”라는 요청이 왜 나쁜가요?

exercises/17-05-spec-to-circuit.yaml
풀이

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

빠진 정보:

  • 신호원의 임피던스(impedance)임피던스 impedance교류에서의 저항으로, 크기뿐 아니라 전압과 전류의 시간 차이(위상)까지 담은 복소수입니다.ZC=1jωC,ZL=jωLZ_C = \frac{1}{j\omega C},\quad Z_L = j\omega L자세히 보기 → → 소자 선택이 완전히 달라짐 (7-06)
  • 신호 크기 → 게인 결정
  • 대역폭(bandwidth) → 잡음 계산의 기본
  • 목표 SNR → 달성 가능성 판정
  • 전원, 오프셋, 간섭 환경

개선된 요청:

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

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

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

문제 2. 채팅으로 만든 회로를 어디까지 믿어야 합니까?

exercises/17-05-passes-but-wrong.yaml
풀이

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

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

권장 절차:

  1. 생성된 회로의 핵심 계산을 직접 검산 (게인, 대역폭, 잡음)
  2. 왜 그 소자를 골랐는지 근거를 확인 (문서 링크 따라가기)
  3. 시뮬레이션 결과가 손계산과 맞는지 확인
  4. 기생 성분(parasitic)기생 성분 parasitics부품과 배선이 표기값 말고 원치 않게 함께 갖는 저항·용량·인덕턴스로, 고주파에서 회로의 성질을 바꿔 놓습니다.자세히 보기 →을 넣은 모델로 다시 시뮬레이션
  5. 시제품 제작 후 실측 검증 (14장)

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


이전 ← 04 EasyEDA로 내보내기 | 목차 → docs/README.md