Virtuoso Params
기존 회로의 파라미터 변경, 민감도 분석 및 폐쇄 루프 최적화를 담당합니다. 기본적으로 각 라운드의 시뮬레이션 후 현재 ChatGPT/Codex가 분석하여 다음 파라미터 세트를 결정하며, W1×W2×… 의 전체 조합 스윕을 생성하지 않습니다. 출력은 "이번 범위와 예산 내에서 검증된 최상의 실현 가능 파라미터"이며, 전역 최적을 보장하지 않습니다. 회로 토폴로지 설계 및 새로운 테스트 플랫폼 생성은 이 스킬의 범위에 포함되지 않습니다.
시작하기 전
- 플랫폼 규칙을 읽고, 환경 설정 프로토콜에 따라 공유 로컬 설정을 읽습니다. 연결이 필요한 경우 virtuoso-connect를 사용합니다. 인터프리터, 작업 범위, PDK 및 경로는 모두 설정에서 가져옵니다.
- DUT/TB, 측정 정의, 목표, 제약 조건, 파라미터 단위/상한/하한/합법적 스텝, 코너 및 평가 예산을 명확히 합니다. 프로젝트 자료에서 추론할 수 있으면 먼저 정리하고, 결과를 변경할 수 있는 목표나 경계가 누락된 경우 사용자에게 질문하고 기존 설계를 읽습니다.
- 원래 파라미터와 한 라운드의 기준 결과를 저장합니다. 테스트 플랫폼이 불완전한 경우 먼저 virtuoso-testbench에 넘기고, 측정 폐쇄 루프를 완료한 후 최적화를 계속합니다.
파라미터 및 평가
- ADE 변수 또는 기존 파라미터화된 넷리스트를 우선 사용하여 각 후보마다 회로를 재구성하는 것을 피합니다. MOS CDF를 직접 변경할 때는 parameter-editing.md를 읽습니다.
- 모든 후보를 동일한 설정과 코너에서 평가합니다. 매번 설정을 저장한 후 실행하고, 각 실행에 독립적인 디렉토리와 식별자를 부여합니다. 결과를 읽을 때 history, test, corner/point를 명시적으로 바인딩합니다.
- 기존 ADE/OCEAN 측정 정의를 사용합니다. 특히 위상 여유는 적절한 루프 측정에서 가져와야 하며, 임의의 출력 전압 위상을 자동으로 PM으로 간주하지 않습니다.
- 로컬 머신에서 SKILL/ADE를 통한 변수 변경 및 실행, 독립적인 OCEAN 서브프로세스를 통한 특정 PSF 읽기, JSON 메트릭을 검색기에 다시 채우는 것이 검증되었습니다. ocean-skill-flow.md에 따라 사용하고 모든 실행 식별자와 로그를 보존합니다.
- 시뮬레이션 실패, 메트릭 누락, 비유한 수 또는 결과 기록 불일치는 무효 평가로 처리되며, 높은 점수나 0 값으로 간주하지 않습니다.
- 다중 코너 요구 사항은 메트릭 규칙에 따라 최악의 값을 취하고, 실행되지 않은 코너는 미검증으로 표시합니다. 제약 조건의 실현 가능성이 성능 향상보다 우선합니다. 평균값을 사용하여 위반 지점을 은폐할 수 없습니다.
탐색 및 중지
adaptive-loop.md에 따라 전략을 선택합니다:
- 기본 Agent 폐쇄 루프: 회로 및 동작점, 현재 및 이력 메트릭을 읽고, 주요 제한 사항을 진단하고, 다음 파라미터 세트에 대한 가정과 이유를 설명한 후, 해당 세트만 실행합니다. 내장 iterate_params.py는 각각 한 번의 평가만 실행하고 제어권을 Agent에 반환합니다. 현재 Agent가 스스로 추론하며, 별도의 Claude/Gemini/OpenAI API 클라이언트를 요구하지 않습니다.
- 베이지안 또는 혼합 폐쇄 루프: 내장 bayes_suggest.py는 완료된 모든 유효 관측치를 사용하여 가우시안 프로세스를 재적합하고, 실현 가능성 확률/제약 조건 기대 개선을 우선시하여 하나의 새 포인트만 제안합니다. Agent는 제안된 포인트의 소자 적법성, 대칭성 및 회로 가정을 확인한 후 수락하거나 수정할 수 있습니다. 예측은 실제 측정으로 계산되지 않으며, 소량의 초기 실험은 전체 조합 스윕이 아닙니다.
- 명시적 스윕/레거시 탐색: 사용자가 곡선, 국소 민감도 진단 또는 매우 작은 이산 영역의 완전 탐색을 요청할 때만 사용합니다. search_params.py는 호환성 진입점으로 유지되며, 그리드/랜덤 국소 탐색에 해당하며 AI 추론 또는 베이지안 최적화라고 부르지 않습니다.
두 기본 폐쇄 루프는 optimization.md의 프로젝트 어댑터, 실제 시뮬레이션 및 로그 계약을 공유합니다. 동일한 기록 내에서 전략을 전환할 수 있습니다. BoTorch/TuRBO와 같은 전문 백엔드는 설치 및 검증 후 제안 레이어를 대체할 수 있습니다. 현재 이 제품군에는 이러한 백엔드가 설치되어 있지 않으며, 검증되지 않은 레거시 Maestro 예제를 복사하지 않습니다.
사용자가 제공한 시뮬레이션/시간 예산을 준수합니다. 지정되지 않은 경우 작업에 적합한 유한 예산을 선언합니다. 반복되는 구성 오류는 먼저 수정한 후 탐색합니다. 무한 재시도로 진행하지 않습니다. 예산 소진, 실현 가능 지점 없음 또는 측정 불가능 시, 현재 증거와 병목 현상을 제공합니다.
인도
후보를 독립적으로 재실행하고 제약 조건을 검증한 후, 원본/최적 파라미터, 기준/재실행 메트릭, 측정 설정, 코너, 평가 횟수 및 원본 증거를 제공합니다. 옵티마이저의 에이전트 예측을 실제 측정으로 간주하지 않습니다. 사용자가 파라미터 적용을 요청하는 경우, 기존 권한에 따라 작성하고 다시 읽습니다. 탐색 전용인 경우 기준 설계 및 후보 기록을 유지합니다.
편집 가능한 회로도가 있는 경우, 이번 독립 재테스트를 통과한 실제 권장 치수를 회로 옆에 영구적으로 표시합니다. 제목은 Recommended (verified)이며, 단위, 주요 조건/메트릭, 날짜 및 최종 history/test를 포함합니다. 도면 및 권장 라벨링 규칙에 따라 저장하고 다시 읽습니다. 소자 파라미터화 표현식을 유지하며, 권장 사항 주석이 ADE 변수를 대체하지 않습니다. 후속 최적화 시 Agent가 관리하는 동일한 라벨이 업데이트됩니다. 조건이 변경되면 기존 기록은 과거 결과임을 명확히 하고, 현재 설정이 검증되었다고 오인하지 않도록 합니다. 실현 가능 지점이 없으면 권장 사항을 표시하지 않습니다.
사용자의 기본 워크플로는 시각적 인도를 요구합니다: 이번 최적의 실현 가능 파라미터를 ADE에 다시 작성하고 읽은 후, 이 파라미터로 독립적으로 재실행합니다. 해당 라운드의 OUT 파형 및 Maestro 측정 값, 설계 변수를 열고, 회로도, Maestro 및 ViVA 창을 유지하여 사용자가 계속 수정할 수 있도록 합니다. 최종 history를 명시적으로 바인딩하며, 이전 라운드의 파형이나 에이전트 예측을 표시하지 않습니다. 사용자가 명시적으로 탐색 전용 또는 창 닫기를 요청하지 않는 한, 종료 시 기준선을 복원하거나 최종 세션을 닫지 않습니다. 로컬 ADE는 런타임 시 전역 startup projectDir을 다시 읽으므로, 세션을 연 후 미리 복원할 수 없습니다. 각 라운드 실행 전에 권한이 부여된 결과 디렉토리를 확인하고, 실행 후 실제 위치를 쿼리합니다. 최종적으로 편집 가능한 세션을 유지할 때 사용자가 계속 실행할 수 있는 디렉토리 설정을 유지하고 원래 값을 기록합니다. 검증된 세션별 영구 설정이 있으면 우선 사용할 수 있습니다.
테스트 플랫폼 실행 및 결과 내보내기는 simulation-flow.md 및 Maestro API를 사용하며, 별도의 시뮬레이션 인터페이스를 유지하지 않습니다.