KiCad 프로젝트 분석 및 개략도 생성 Skill은(는) 무엇을 하나요?
관련 Skill
| Skill | 목적 |
|---|---|
bom | BOM 추출, 보강, 발주 및 내보내기 워크플로 |
digikey | DigiKey에서 부품 검색 (프로토타입 소싱) |
mouser | Mouser에서 부품 검색 (보조 프로토타입 소스) |
lcsc | LCSC에서 부품 검색 (양산 소싱, JLCPCB) |
element14 | Newark/Farnell/element14 검색 (국제 소싱, 신뢰할 수 있는 데이터시트) |
jlcpcb | PCB 제조 및 조립 발주 |
pcbway | 대체 PCB 제조 및 조립 |
spice | 검출된 서브회로의 SPICE 시뮬레이션 검증 |
emc | EMC 사전 준수 위험 분석 — 개략도 + PCB 분석기 출력 활용 |
핸드오프 지침: 이 스킬을 사용하여 개략도/PCB를 파싱하고 구조화된 데이터를 추출하십시오. BOM 보강, 가격 책정 및 발주를 위해 bom으로 핸드오프하십시오. 부품 검색 및 데이터시트 가져오기를 위해 digikey/mouser/lcsc/element14로 핸드오프하십시오. 제조 발주 및 DFM 규칙 검증을 위해 jlcpcb/pcbway로 핸드오프하십시오. 설계 검토 중에는 SPICE 시뮬레이터가 설치되어 있는 경우 항상 spice를 실행하십시오 (which ngspice ltspice xyce로 확인). 설계 검토 중 개략도와 PCB 분석이 모두 가능할 때는 항상 EMC 사전 준수 위험 분석을 위해 emc를 실행하십시오. 이는 선택 사항이 아닙니다 — 건너뛰면 가치 계산 오류와 EMC 위험이 감지되지 않은 채로 남게 됩니다.
분석 전: 사용자가 KiCad 프로젝트 분석 또는 검토를 요청하면 프로젝트에 datasheets/ 디렉토리가 있는지 확인하십시오. 디렉토리가 없고 DigiKey API 키(DIGIKEY_CLIENT_ID)를 사용할 수 있는 경우, 먼저 데이터시트 동기화를 제안하십시오: "분석 전에 구성 요소에 대한 데이터시트를 다운로드할 수 있습니다. 이를 통해 제조사 사양에 대한 핀 레벨 검증 및 디커플링 검증이 가능합니다. 동기화하시겠습니까?" 사용자가 거절하거나 API 키가 설정되지 않은 경우, 데이터시트 없이 진행하십시오 — 분석은 데이터시트 없이도 작동하지만 데이터시트 검증 결과는 제공되지 않습니다.
분석기 출력에서 DS-001 결과를 발견한 경우 (심각도 high, 감지기 audit_datasheet_coverage), 검토는 어떠한 검증된 주장도 할 수 없습니다. 중단하고 (a) digikey / mouser / lcsc / element14 중 자격 증명/재고가 있는 곳을 통해 데이터시트 동기화를 실행하거나, (b) BOM 부품에 MPN을 채우거나, (c) 보고서에 모든 핀 레벨, 전기 및 레귤레이터 결과가 일관성만 있다고 명시적으로 명시하십시오 — 어디에서도 "검증됨", "확인됨" 또는 "데이터시트 기준"이라는 단어를 사용하지 마십시오. DS-002 (MPN이 설정되었지만 데이터시트 누락) 및 DS-003 (MPN 범위 부분적)은 인용된 부품에 대해 동일한 의미를 갖는 더 약한 변형입니다.
개략도 생성 (도면 및 재도면)
사용자가 개략도 작성, 추가, 재도면 또는 스타일 변경을 요청할 때 이 워크플로를 사용하십시오 — 예: "5V/5A TPS54560 회로 추가", "把原理图画成可读风格", "buck 개략도 생성", "重画这块电源".
- 표준을 먼저 읽으십시오.
references/schematic-drawing-standards.md는 개략도를 생성하거나 편집하기 전에 필수입니다. 이 문서는 LM5013 스타일 전원 버스 레이아웃, GND 버스, 레이블 정책, KiCad 9 배선 제약 조건 (연결 지점에서 와이어 분할, 핀-투-핀 단일 와이어 금지, 공유 노드의 레이블) 및 검증 게이트를 정의합니다. - 데이터시트를 기반으로 설계하십시오. IC 데이터시트를 가져와서 읽고; 핀아웃, Vref, 절대 최대 정격 및 일반적인 애플리케이션을 추출하십시오. 데이터시트 방정식을 사용하여 값 (피드백 분배기, RT/주파수, 인덕터, 커패시터, 보상)을 계산하고 도면을 그리기 전에 숫자를 명시하십시오.
- 1.27mm 그리드에 블록을 계획하고 표준 LM5013 구조를 미러링하십시오: 하나의 연속적인 전원 버스
INPUT → IC → SW → L → OUTPUT, 하단 GND 버스, IC 아래에 정돈된 밴드의 제어 구성 요소 (기능당 하나의 열). 와이어를 작성하기 전에 기호 핀 위치와 회전 의미를 확인하십시오. - 생성하십시오.
.kicad_schS-식을 직접 편집하거나 생성기 스크립트를 사용하십시오. 모든 와이어는 핀, 접합점, 레이블 또는 전원 기호에서 끝나야 합니다. 레일은 모든 연결 지점에서 세그먼트로 분할됩니다. EasyEDA Pro의 경우 동일한 표준으로easyeda-schematic-draw스킬에 핸드오프하십시오. - KiCad 자체로 검증하십시오 — 이 게이트는 성공을 보고하기 전에 필수입니다:
kicad-cli sch erc→ 0 오류 / 0 경고kicad-cli sch export netlist→ 핀별 설계 의도와 일치- 개략도 분석기 실행, 휴리스틱 Vout 추정치를 데이터시트 Vref로 수정
- 형상 확인: 기호 본체 겹침 없음, IC 본체 내부 레이블 없음
- PDF/PNG 렌더링 + 시각적 검토: 하나의 연속적인 전원 버스, 읽기 쉬운 제어 밴드, 구성 요소 스태킹 없음
- 설계 값과 방정식, 검증 증거 및 수정한 분석기 제한 사항을 보고하십시오.
아래의 분석 및 설계 검토 워크플로는 생성된 모든 것에 여전히 적용됩니다.
설계 검토 계약
사용자가 설계 검토, 전체 보고서, 제조 준비 평가 또는 이와 동등한 것을 요청할 때, 하나 또는 두 개의 분석기를 실행하고 결과를 요약하는 데 그치지 마십시오. 이 스킬의 설계 검토는 더 엄격한 계약을 따릅니다:
- 분석기 명령 섹션뿐만 아니라 이
SKILL.md의 전체 워크플로를 읽으십시오. - 보고서를 작성하기 전에
references/report-generation.md를 읽으십시오. - 프로젝트에 있는 파일에 대해 적용 가능한 모든 분석기를 실행한 다음, 실행된 것과 실행되지 않은 것을 명시적으로 말하십시오.
- 원시 파일 및 데이터시트 교차 검증을 수행한 후에만 무언가가 "검증됨"이라고 주장하십시오.
- 블로커로 격상시키기 전에 분석기의 가능한 거짓 긍정을 분류하십시오.
- 필요한 단계를 수행할 수 없는 경우, 조용히 생략하지 말고 검토 격차로 명시하십시오.
이것을 최소 기준으로 간주하십시오. 분석기 JSON 단독으로는 최종 검토가 아닙니다.
최소 검토 체크리스트
전체 설계 검토를 위해 보고서에서 아래 각 항목을 명시적으로 설명하십시오:
datasheets/존재, 동기화됨, 또는 검증 격차 명시analyze_schematic.pyanalyze_pcb.py --fullcross_analysis.pyanalyze_emc.py- 시뮬레이터가 설치된 경우 SPICE 시뮬레이션
- 개략도 및 PCB JSON이 모두 존재하는 경우
analyze_thermal.py - 제조 출력이 존재하는 경우
analyze_gerbers.py - 네트워크 액세스 및 MPN 범위가 허용하는 경우 라이프사이클 감사
- 이전 검토 / 이전 실행 델타 확인
- 중요 부품에 대한 전체 검증으로 격상된 원시 개략도/PCB 지점 검증
- 블로커, 검증 기준, 거짓 긍정 및 건너뛴 분석에 대한 명시적 보고서 섹션
항목이 적용되지 않는 경우 이유를 말하십시오. 건너뛴 경우 이유를 말하십시오. 실패한 경우 이것이 신뢰도를 어떻게 제한하는지 말하십시오.
일반적인 검토 실패 모드
이 계약이 방지하고자 하는 실패 모드는 다음과 같습니다:
- 개략도 + PCB + EMC 출력 후 중단하고 이를 완전한 검토라고 부르기
- 예상되는 레이아웃 아티팩트인지 확인하지 않고 분석기 결과 보고
- 직접적인 데이터시트 증거 또는 구조화된 추출 증거 없이 "검증됨" 주장
- 공개 없이 열, 라이프사이클, 이전 검토 델타 또는 거버 검사 생략
- 평결, 블로커 테이블, 검증 기준 또는 건너뛴 분석 노트가 없는 보고서 작성
- 이 스킬의 첫 부분만 읽고 나중에 있는 설계 검토 워크플로를 놓침
PDF 개략도 분석
이 스킬은 PDF 개략도 — 참조 설계, 개발 보드 개략도, 평가 보드 문서, 애플리케이션 노트 및 데이터시트 일반 애플리케이션 회로도 처리합니다. 일반적인 사용 사례:
- 제조업체의 참조 설계를 분석하여 회로 이해
- 서브회로 (전원 공급 장치, USB 인터페이스, 센서 프론트엔드) 추출하여 자체 KiCad 설계에 통합
- PDF 참조 설계를 자체 개략도와 비교
- PDF 개략도에서 전체 BOM 추출
- PDF의 구성 요소 값을 최신 데이터시트와 비교 검증
워크플로: PDF 페이지를 시각적으로 읽기 → 구성 요소 및 연결 식별 → 구조화된 데이터 추출 → KiCad 기호 및 넷으로 변환 → 데이터시트에 대해 검증.
전체 방법론 — 구성 요소 추출, 표기 규칙, 넷 매핑, 서브회로 추출, KiCad 변환 및 검증 —은 references/pdf-schematic-extraction.md를 읽으십시오.
추출된 회로를 데이터시트에 대해 심층 검증 (값 확인, 패턴 확인, 오류 감지)하려면 references/schematic-analysis.md의 방법론을 사용하십시오.
분석 스크립트
이 스킬에는 단일 패스로 KiCad 파일에서 포괄적인 구조화된 JSON을 추출하는 Python 스크립트가 포함되어 있습니다. 이 스크립트를 먼저 실행한 다음 출력에 대해 추론하십시오.
임시 추출 스크립트를 작성하는 대신 분석기 JSON 출력을 직접 읽으십시오. JSON 스키마에는 사용자 지정 코드에서 잘못 이해하기 쉬운 특정 필드 이름 (아래 및 references/output-schema.md에 문서화됨)이 있습니다. 특정 섹션을 추출하려면: python3 -c "import json; d=json.load(open('file.json')); print(json.dumps(d['key'], indent=2))".
JSON이 예상치 못한 경우 — AttributeError, 예상치 못한 모양, 값을 가져야 하는 필드가 None을 반환하는 경우 — 두 번째 추출 시도를 작성하기 전에 중단하고 --schema를 실행하십시오. 모든 최상위 키에 대한 정확한 필드 이름과 유형을 출력합니다:
python3 <skill-path>/scripts/analyze_schematic.py --schema
python3 <skill-path>/scripts/analyze_pcb.py --schema
python3 <skill-path>/scripts/analyze_gerbers.py --schema
JSON 필드 치트 시트 — 분석기 출력을 수동으로 읽을 때 가장 흔한 실수:
| 원하는 것 | 올바른 경로 및 필드 | 흔한 실수 |
|---|---|---|
| 넷의 핀 | nets[<name>].pins[].component / .pin_number / .pin_name / .pin_type | ref, pin, type, number |
| 명명되지 않은 넷의 예쁜 표시 | nets[<name>].display_name — 설정된 경우, 명명된 IC 핀이 하나만 있는 __unnamed_N 넷에 대한 Ref.PinName 힌트 (예: __unnamed_36 → U1.VBOOT). 없으면 분석기가 명확히 구분할 수 없음을 의미합니다. | display_name을 무시하고 보고서에 원시 __unnamed_36을 붙여넣기 |
| IC 핀 맵 | ic_pin_analysis[]는 IC 항목의 리스트입니다. 각 항목에는 .reference 및 .pins[]가 있으며, .pin_number / .pin_name / .pin_type / .net / .connected_to[]가 있습니다. | {ref: {...}} 또는 pins[].number로 처리 |
| 감지된 회로 | 모든 패턴 일치 회로 (전원 레귤레이터, RC 필터, 수정 발진기, 브리지 등)는 findings[]에 있습니다 — finding_schema.get_findings(data, Det.POWER_REGULATORS) 등으로 필터링하십시오. subcircuits[]에서 읽지 마십시오: 이는 IC 이웃 그룹화 ({center_ic, ic_value, neighbor_components, …})이며, 분류된 감지 인덱스가 아닙니다. | subcircuits.power_regulators, subcircuits.rc_filters 또는 subcircuits[type] 키를 찾는 경우 — v1.3 출력에는 존재하지 않았습니다. |
| 영역 넷 | pcb.zones[].net은 정수 넷 ID이며 문자열이 아닙니다. f"{net!r}"을 사용하거나 먼저 변환하십시오. | f"{net:20s}" — ValueError: Unknown format code 's' for object of type 'int' 오류 발생 |
| 풋프린트 위치 | pcb.footprints[].x / .y 최상위 레벨 (.position 래퍼 없음) | footprints[].position.x |
| 결과 | findings[] 플랫 리스트 — 각 항목에는 rule_id, detector, severity, summary, report_context가 있습니다. finding_schema.get_findings(data, Det.*) 또는 group_findings(data)로 필터링하십시오. | signal_analysis.power_regulators[]와 같은 키가 있는 딕셔너리 찾기 (v1.3 이전 형식, 제거됨) |
이를 통해 형식 문자열 버그와 잘못된 필드 이름을 방지할 수 있습니다. 출력 형식 지정에는 f-문자열 또는 json.dumps()를 사용하십시오 — 문자열이 아닌 유형에 %s를 절대 사용하지 마십시오. 전체 스키마와 일반적인 추출 패턴은 references/output-schema.md를 참조하십시오.
아래 모든 명령에서 <skill-path>는 이 스킬의 기본 디렉토리를 나타냅니다 (로드될 때 이 파일 상단에 표시됨).
개략도 분석기
python3 <skill-path>/scripts/analyze_schematic.py <file.kicad_sch> --analysis-dir analysis/
python3 <skill-path>/scripts/analyze_schematic.py <file.kicad_sch> --analysis-dir analysis/ --compact
python3 <skill-path>/scripts/analyze_schematic.py <file.kicad_sch> --output analysis.json # 일회성, 캐시 없음
출력 구조화된 JSON (보드 복잡성에 따라 ~60-220KB) 포함:
- 구성 요소 및 BOM: 참조자, 값, 풋프린트, lib_id, 유형 분류, MPN, 데이터시트가 포함된 인벤토리; 수량이 포함된 중복 제거 BOM
- 넷: 핀-투-넷 매핑, 와이어 수, 미연결이 포함된 전체 연결 맵
- 감지된 서브회로 (패턴 일치 회로 — 모두 일치하는
Det.*감지기가 있는findings[]항목으로 방출됨; 가져오려면get_findings(data, Det.POWER_REGULATORS)등을 사용):- 전원 레귤레이터 — LDO/스위칭/인버팅 토폴로지, 데이터시트 검증 Vref 조회 (~60개 제품군)로 Vout 추정, 휴리스틱 폴백 및 고정 출력 접미사 파싱,
vref_source(lookup/heuristic/fixed_suffix) 및vout_net_mismatch필드 - 전압 분배기, RC/LC 필터 (차단 주파수), 피드백 네트워크, 수정 회로 (부하 커패시턴스 분석, IC 핀 기반 감지)
- 연산 증폭기 회로 (구성, 이득, 적분기/보상기), 트랜지스터 회로 (넷 이름 인식 부하 분류: 모터/히터/팬/솔레노이드/밸브/펌프/릴레이/스피커/버저/램프; FET 레벨 시프터 토폴로지)
- 브리지 회로 (H-브리지, 3상, 시트 간 감지), 보호 소자 (ESD/TVS), 전류 감지, 디커플링 분석
- 도메인 특화: RF 체인, RF 정합 네트워크, BMS, 이더넷 (BFS PHY-투-커넥터 추적), HDMI/DVI 인터페이스, 메모리 인터페이스, 키 매트릭스 (넷 이름 및 토폴로지 기반), 절연 장벽, 주소 지정 가능 LED 체인 (WS2812/SK6812/APA102), 배터리 충전기 (TP4056/MCP73831/BQ2404x), 모터 드라이버 (A4988/TMC2209/DRV8301), ESD 보호 범위 감사, 디버그 인터페이스 (SWD/JTAG with MCU 추적), 전원 경로 (부하 스위치/이상 다이오드/USB PD 컨트롤러), ADC 신호 컨디셔닝 (외부 ADC + 안티앨리어싱 상호 참조가 있는 전압 레퍼런스), 리셋/수퍼바이저 회로 (전압 수퍼바이저/워치독/RC 리셋 네트워크), 클록 분배 (클록 생성기/PLL/발진기 출력 추적)
- 전원 레귤레이터 — LDO/스위칭/인버팅 토폴로지, 데이터시트 검증 Vref 조회 (~60개 제품군)로 Vout 추정, 휴리스틱 폴백 및 고정 출력 접미사 파싱,
...
[번역을 위해 잘림]