한국어 · English
칩 설계 사인오프(sign-off) 관리·분석 플랫폼. signoff-latest-tech-and-skills.md 리서치 리포트의
최신 사인오프 기술(shift-left 게이트, IR-drop 스크리닝, 벡터리스 글리치 파워, MMMC/PBA 타이밍)을
실행 가능한 풀스택 앱으로 구현한 MVP입니다.
실제 예제: lowRISC Ibex RISC-V 코어 × SkyWater SKY130 (OpenROAD/OpenLane 레퍼런스 플로우
컨텍스트 — 실제 리버티 코너 명명, VDD 1.8V, SKY130 DRC 룰 이름, Ibex 모듈/넷 이름 기반). RTL
사인오프 래더의 기본 예제는 실제로 검출되는 버그(CDC 미동기화 + FSM dead-end)가 있는
cdc_status_bridge 모듈이며, 클린한 2-FF 동기화 예제와 버튼 하나로 비교할 수 있습니다.
backend/— FastAPI + SQLAlchemy + SQLite/PostgreSQL. 사인오프 런/위반/웨이버 관리, shift-left 스테이지 게이트, 분석 API 4종. RTL 사인오프 래더(verilator lint → CDC/리셋/FSM 설계 룰 → yosys 합성 → SIGNED_OFF/CONDITIONAL/REJECTED)는~/gitspace/ai_driven_rtl의 결정론적 검증 모듈을 이식한 것. hermes-agent 기반 6-역할 LLM 분석 파이프라인(app/hermes.py,app/routers/agents.py)도 포함 — 상세:backend/README.mdfrontend/— Vite 7 + React 19 + TypeScript + Tailwind CSS v4 + TanStack Query + React Router 7. 다크 테마 전용. 카테고리별 사이드바 내비게이션(개요/프로젝트/분석 도구), 런 상태·게이트 준비율 시각화, 커스텀 SVG 차트(IR-drop 히트맵, 슬랙 다이버징 바, 전력 스택 바), agent 개입 여부를 명시적으로 보여주는 리뷰 패널.
로그인 없이 읽는 안내: /guide/overview. 모든 화면의 공통 헤더에서 한국어 / English를 선택합니다.
서비스 개요, 개발 흐름 속 위치, 기능과 검증 범위, 에이전트와 사람, 시작하기의 다섯 페이지로
구성됩니다. 언어는 서비스 공통 설정으로, 주소·입력 중인 값을 유지하며 소개와 작업 공간을 오가도
같은 선택을 사용합니다. 다음 방문과 다른 탭에도 반영됩니다. 소개 영역은 API 접속 없이도 열립니다.
소개와 작업 공간의 모든 화면(프로젝트·런·위반 검토, 분석 도구, 보고서 가져오기, 계정·보안 이력,
오류 메시지)이 한/영으로 제공되며 날짜도 선택한 언어 형식으로 표시합니다. 서버가 반환하는 오류 원문,
도구 로그와 업로드한 보고서 내용은 원문 그대로 보여 줍니다. 이전 언어별 소개 주소는 공통 주소로 전환됩니다.
영어 화면 누락 검사: scripts/browser_english_coverage_check.mjs(검증 가이드).
분석 도구 선택은 /analysis, 개별 도구는 /analysis/rtl, /analysis/sta, /analysis/ir-drop,
/analysis/timing, /analysis/glitch-power입니다. 기존 /analysis#rtl-signoff 등의 링크도
해당 도구 페이지로 연결됩니다. 대시보드·로그인 화면·사이드바에서 소개에 접근할 수 있습니다.
# backend (http://127.0.0.1:8000, Swagger: /docs)
cd backend
uv venv --python 3.11 .venv && uv pip install --python .venv/bin/python --require-hashes -r requirements.txt
.venv/bin/python scripts/seed_demo.py # Ibex 실제 예제 시드
.venv/bin/uvicorn app.main:app
# frontend (http://localhost:5173, /api → backend 프록시)
cd frontend
pnpm install
pnpm dev테스트: cd backend && PYTHONPATH=. .venv/bin/python -m pytest (1124개 통과; Linux 메모리 제한 검사는 macOS에서 건너뜀)
백엔드 설치는 전이 의존성의 버전과 해시까지 고정합니다. 의존성 설치·갱신 절차를 참고하세요.
시드된 Ibex × SKY130 데모를 영어 UI로 전환해 캡처했습니다.
![]() |
![]() |
| 프로젝트 대시보드 — 전체 프로젝트의 런 상태와 프로젝트별 사인오프 진행률. | 프로젝트 상세 — 라이프사이클, shift-left 스테이지 게이트, 사인오프 계획, 릴리스 후보 리비전. |
![]() |
![]() |
| 사인오프 런 상세 — 실행 근거, 지표(WNS/TNS, 코너), 위반 검토. | IR-drop 스크리닝 — agent 개입 여부를 명시하는 분석 도구 화면. |
RTL/타이밍/파워-IR/게이트 분석 결과를 실제로 위반·이상 징후가 있을 때만 LLM이 검토하는
6-역할 파이프라인(RTL 리뷰어 → 타이밍 분석가 → 파워/IR 분석가 → 웨이버 심사관 →
사인오프 종합 판정관 → 검증 에이전트)이 붙어 있습니다. 각 역할의 정확한 개입 조건과 셋업
방법은 backend/README.md의 "hermes-agent 연동" 절 참고. 미기동 상태에서도 프론트엔드는
"agent 미개입"/"개입함 — hermes 연결 안 됨" 상태를 명확히 보여주도록 우아하게 강등됩니다.
.github/workflows/ci.yml이 main push/PR마다 backend pytest + frontend build를 실행합니다.
Dependabot이 backend(pip)/frontend(npm)/GitHub Actions 의존성을 매주 점검합니다.
적용된 검색 조건의 전체 위반과 런·웨이버 정보를 JSON으로 내보낼 수 있습니다.
웨이버 범위와 만료는 새 승인을 설계 리비전과 최대 365일 유효기간에 묶고 만료·범위 불일치를 게이트 차단에 다시 반영합니다. 프로젝트의 전체 위반 검토에서 검색·상태·심각도·단계·도메인 필터와 페이지 이동을 사용할 수 있습니다. 기본 범위는 단계·도메인별 최신 런이며 과거 런도 선택할 수 있습니다. 검색 조건과 선택 항목은 URL에 보존됩니다. 위반별 수정 완료·웨이버·재오픈 사유와 처리 이력을 기록합니다. 인증 모드에서는 로그인 계정, 로컬 모드에서는 직접 입력한 이름을 사용합니다.
진행 상태: 서비스 개선 기록. 브라우저 검증 재현: 검증 가이드.
프로젝트 상세의 런 이력은 상태별 전체 집계를 유지하면서 최신 50개만 주기적으로 갱신합니다. 이전 런은 요청할 때 커서 페이지로 불러오므로 장기 운영 프로젝트에서도 조회 비용이 전체 이력에 비례해 계속 증가하지 않습니다. 대시보드는 프로젝트별 서버 집계만 읽고, 런 비교는 최신 100개부터 필요할 때 이전 이력을 추가하며 공유 URL에 지정된 오래된 런은 ID로 직접 복원합니다. 프로젝트 상세에서는 도메인·단계·상태와 툴 이름으로 서버 페이지와 집계를 함께 좁힐 수 있습니다. 저장된 설계 리비전의 정확한 값 또는 리비전 기록 있음·미기록 범위로도 런과 상태 집계를 좁히며, 최근 리비전 목록을 자동완성으로 제공합니다. 프로젝트의 리비전 검증 매트릭스에서는 선택한 리비전이 각 스테이지 사인오프 계획의 필수 도메인 결과를 갖추었는지 확인하고, 기존 게이트와 같은 규칙으로 커버리지 증명·위반·웨이버· MMMC 계획까지 평가한 차단 사유를 한 화면에서 확인할 수 있습니다. 승인자는 스테이지별 릴리스 후보 리비전을 고정할 수 있습니다. 이후 게이트·근거 내보내기·승인 패키지는 해당 리비전의 최신 런만 사용하며, 고정과 해제는 사유·처리자와 함께 버전으로 보존됩니다. 승인은 후보가 고정되고 게이트의 공통 리비전과 정확히 일치할 때만 허용됩니다. 승인자는 화면에서 현재 근거 스냅샷의 SHA-256을 먼저 검토하며, 이후 근거가 바뀌면 서버가 승인을 거부하고 새 스냅샷 검토를 요구합니다. 인증 필수 배포에서는 승인·차단 결정을 제출할 때 현재 계정 비밀번호를 다시 확인하며, 확인 시각을 결정 해시와 감사 원장에 결합합니다. 새 결정은 직전 결정의 SHA-256과 연결되고 프로젝트가 별도 체인 헤드를 보존합니다. 감사 화면과 API는 개별 내용 변조, 중간 결정 삭제, 마지막 결정 삭제를 검증합니다. 휴대용 결정 감사 원장은 서버 밖에서 표준 Python만으로 전체 체인을 검증하고, 별도로 보관한 체인 헤드와 대조할 수 있습니다. 대시보드는 접근 가능한 프로젝트와 런 상태 집계를 단일 API 호출로 받아 프로젝트 수에 비례한 추가 HTTP 요청과 evidence 조회를 만들지 않습니다. 프로젝트가 많을 때는 이름·공정 노드·파운드리를 서버에서 검색하고 등록일·이름으로 정렬해 24개씩 조회합니다. 검색·정렬·페이지는 URL에 남아 공유와 새로고침에서 복원됩니다. 완료된 프로젝트는 소유자가 사유와 함께 보관할 수 있습니다. 보관된 프로젝트는 기존 근거와 감사 이력을 유지한 채 운영 목록에서 빠지고, 모든 쓰기·분석 실행·수집기 제출이 복원 전까지 차단됩니다.
프로젝트의 런 비교에서 같은 도메인·단계의 두 실행을 선택합니다. 지표의 변화와 위반의 추가·내용 변경·기준에만 남은 기록을 나란히 볼 수 있습니다. 선택된 실행 ID와 차이 필터는 URL에 저장됩니다. 비교는 읽기 전용이며 미검출을 수정 완료로 처리하지 않습니다.
프로젝트의 STA 시나리오 매트릭스에서 단계별 필수 코너·모드와 SPEF 요구 여부를 정의할 수 있습니다. 지정한 설계 리비전의 실제 OpenSTA 서버 실행과 기대 세트를 비교해 실행 누락, SPEF 요구 누락, 계획 외 실행을 구분합니다. WNS와 위반 수는 OpenSTA가 보고한 경로 표본 범위이며, 시나리오가 모두 실행됐다는 사실을 전체 타이밍 사인오프와 혼동하지 않습니다.
OpenSTA 타이밍 실행의 MCMM 배치에서 기대 세트를 불러오고 시나리오별 Liberty·SDC·SPEF를 지정할 수 있습니다. 최대 8개 작업을 서버의 영속 큐에 접수하므로 브라우저를 닫아도 제한 컨테이너에서 순차 실행합니다. 일부 시나리오가 실패해도 나머지를 계속하고 성공 결과를 각각 독립 런과 입력 근거로 저장합니다. 배치 접수자와 항목별 대기·실행·성공·실패·취소 상태는 DB 매니페스트에 남아 실행 화면에서 다시 확인하거나 진행 중인 작업을 취소할 수 있습니다. 종결된 배치는 서버에 검증된 입력을 다시 업로드하지 않고 동일 입력으로 재실행할 수 있으며, 원본 배치 번호와 시도 번호를 보존해 결과 계보를 추적합니다. 접수·워커 시작·시나리오별 시작/종료·취소 요청·최종 상태는 행위자와 시각을 포함한 영구 타임라인으로 남아 실행 화면에서 감사할 수 있습니다. OpenSTA는 RTL과 분리된 호스트 동시 실행 풀을 사용합니다. 여러 프로젝트가 대기하면 현재 실행이 없는 프로젝트와 가장 오래 실행 기회를 받지 못한 프로젝트부터 선택해 슬롯 독점을 막습니다.
프로젝트에 기록한 RTL 분석은 실행 소스·SHA-256·입력 리비전·원래 판정과 단계별 결과를
함께 보존합니다. 런의 실행 근거 보기에서 조회하고 JSON으로 내려받을 수 있습니다.
CONDITIONAL은 incomplete(검증 미완료)로 저장되며 RTL 게이트를 열지 않습니다.
서버 분석 결과는 수동 Pass/Fail이나 지표 변경으로 덮어쓰지 않고 다시 실행하여 갱신합니다.
위반을 처리할 때 조회한 변경 버전을 함께 검사합니다. 다른 검토자가 상태를 바꿨다가 원래대로 되돌린 경우도 충돌로 감지합니다. 충돌한 사유는 현재 브라우저 탭 안에 유지되며, 변경 내용을 확인하고 다시 처리할 수 있습니다. 탭 새로고침·닫기 이후까지 초안을 보존하지는 않습니다.
API 연동에서는 위반 응답의 version을 수정·웨이버 요청의 expected_version으로 보내야 합니다.
SQLite 운영 데이터는 온라인 백업·검증·새 경로 복원을 지원합니다. 백업 및 복구 안내 PostgreSQL 운영은 연결 설정, 자동 스키마 업그레이드 검증 범위와 PostgreSQL 자체 백업 도구를 사용하는 운영 경계를 설명합니다.
RTL 테스트벤치 입력, 실제 Icarus 실행, 컴파일·실행 로그와 소스 해시 보존을 지원합니다. 테스트벤치 사용 및 서버 설정
로그인·프로젝트 역할과 로그인 계정 기반 승인 이력을 지원합니다. 기본 로컬 모드는 인증을 사용하지 않으며 운영 시 인증 설정을 적용해야 합니다.
python3 scripts/self_improve.py check로 현재 상태를 점검하고,
python3 scripts/self_improve.py run --max-iterations 3으로 분리된 작업 공간에서
점검→수정→회귀 검증을 반복합니다. 통과한 후보와 누적 패치를 남기며,
--apply를 지정하면 원본이 시작 시점과 같을 때만 적용합니다.
실행·중단·검증 범위 안내
프로젝트에서 OpenSTA JSON 보고서 가져오기를 사용해 경로와 슬랙을 미리 보고 원본 근거·위반을 저장할 수 있습니다.
PrimeTime / Tempus 경로 JSON 가져오기는 명시적인 툴·버전·시간 단위와
핀 목록을 검증하고 같은 경로 탐색·비교·위반 검토 흐름에 연결합니다.
신뢰된 수집기 커버리지 증명을 STA, CDC/RDC, DRC, LVS, LEC, DFT, 저전력, EM/IR, 전력, 열 또는 RTL 회귀 보고서와 함께 제출하면
서버에 등록된 HMAC 키로 실행 범위를 검증하며, 서명 없는 보고서는 계속 부분 근거로 처리합니다.
상용 EDA 수집기 CLI는 보고서를 같은 파서로 검증하고 비밀키를 명령행이나
출력 파일에 노출하지 않은 채 서버에 바로 제출할 요청 JSON을 생성합니다.
인증 필수 배포에서는 프로젝트 범위·만료·폐기를 적용한 수집기 Bearer 자격증명으로 브라우저
세션 없이 열한 개 상용 보고서 저장 API만 호출할 수 있으며 제출 신원은 실행 근거에 보존됩니다.
수집기는 실행 전에 현재 단계의 필수 도메인·claim·제출 경로와 MMMC 계획 버전을 읽어 자동화 설정을
서버 계획과 맞출 수 있습니다.
프로젝트 소유자는 웹에서 수집기 토큰을 한 번만 발급해 비밀 저장소로 옮기고, 만료·폐기 상태와
발급·폐기 처리자 감사 이력을 관리할 수 있습니다.
Calibre / Pegasus DRC 마커 JSON 가져오기는 툴·버전·좌표 단위·심각도와
도형을 검증하고 마커 탐색과 위반 검토 흐름에 연결합니다.
OpenLane 2 플로우 결과 가져오기는 final/metrics.json 또는 실패한 런의
state_out.json 하나로 코너별 STA, DRC·안테나·XOR·PDN, LVS 런을 같은 리비전에 만들고 리비전 간
비교에 연결합니다. 플로우 요약이므로 게이트를 열지 않습니다.
Calibre / Pegasus LVS 결과 가져오기는 레이아웃·회로도 TOP과 추출
개수, 비교 판정과 불일치를 검증하고 routing/final 게이트의 독립 LVS 근거로 연결합니다.
Formality / Conformal LEC 결과 가져오기는 reference·implementation
compare point와 등가성 실패를 검증하고 synthesis/final 게이트의 독립 논리 등가성 근거로 연결합니다.
TestMAX / Tessent / Modus DFT 결과 가져오기는 scan chain, DFT rule,
fault model별 ATPG coverage와 pattern 검증을 재계산하고 synthesis/final 게이트의 독립 DFT 근거로 연결합니다.
VC LP / Conformal Low Power 결과 가져오기는 UPF 전력 의도,
power domain/state와 isolation·level shifter·retention·PG 연결 finding을 독립 저전력 근거로 보존합니다.
RedHawk-SC / Voltus / Totem EM/IR 결과 가져오기는 전압 강하와
전류 밀도의 값·제한·단위·좌표를 검증하고 핫스폿 탐색과 위반 검토에 연결합니다.
PrimePower / Joules / PowerArtist 전력 결과 가져오기는 전력
구성 합계와 글리치 비중을 재검증하고 계층별 전력 탐색과 위반 검토에 연결합니다.
Celsius / Icepak / Calibre 3DSTACK 열 결과 가져오기는 온도와
제한, 3D 위치를 정규화하고 열 핫스폿 탐색과 위반 검토에 연결합니다.
VCS / Xcelium RTL 회귀 결과 가져오기는 컴파일·테스트·assertion
집계를 검증하고 테스트별 로그 탐색과 위반 검토에 연결합니다.
VC SpyGlass / Jasper CDC·RDC 결과 가져오기는 clock/reset domain,
crossing과 정적 finding을 검증하고 RTL 게이트의 독립 CDC/RDC 근거로 연결합니다.
운영 상태 확인과 문의 번호 로그는 운영 점검을 참고하세요.
프로젝트 사인오프 계획은 단계별 필수 도메인을 승인자 변경 사유와 append-only 버전으로 관리하며 게이트·내보내기·결정에 같은 계획을 결합합니다.
버전형 STA 시나리오 계획은 필수 MMMC mode/corner와 SPEF 요구를 승인자 이력으로 보존하고 수집기 서명·게이트에 계획 버전을 결합합니다.
스테이지 게이트는 수동 통과 상태만으로 열리지 않으며 도메인별 최신 런의 설계 리비전도 검사합니다.
검증 범위와 현재 지원 한계는 게이트 근거 정책을 참고하세요.
사인오프 결정과 근거 동결은 approver의 승인·차단 사유와
그 시점의 검증된 ZIP 패키지를 SHA-256에 묶어 불변 보관합니다. 현재 런·웨이버·계획이 바뀌면
과거 결정을 근거 변경 · 재결정 필요로 표시합니다.
KLayout DRC 마커 보고서 가져오기를 지원합니다. PV 런·위반·원본 근거로 보존하며 전체 DRC 통과와 구분합니다.
MIT — LICENSE 참고.



