Self-Validation & Auto-Repair Engine
AI 기반 자동 버그 감지 및 수정 엔진
특허 및 지적재산권
"Truth Kernel 기반 칩 설계 자동 검증 및 수정 시스템"
- 파형 분석을 통한 타이밍 위반 자동 감지
- LLM 기반 버그 근본 원인 추론 및 수정 코드 생성
- Formal Verification 연동 정합성 검증
기술 개요
Self-Validation & Auto-Repair Engine은 생성된 RTL과 시뮬레이션 결과를 분석하여 버그를 자동으로 감지하고 수정하는 AI 기반 엔진입니다. 전통적인 검증 방식이 사람이 직접 파형을 보고 디버깅하는 것과 달리, AI가 파형을 분석하여 타이밍 위반, 경합 조건, 논리 오류 등을 자동 감지하고 수정 방법까지 제안합니다.
* 10K 사이클 시뮬레이션, CDC/Timing 위반 케이스 기준 (2024.Q4)
벤치마크 측정 방법론
• 테스트 시나리오: RISC-V 코어에 10가지 버그 유형 인위적 주입 (CDC, Timing, Functional 등)
• 시뮬레이션: Synopsys VCS, 50,000 사이클, VCD 파형 생성
• 탐지율: 10개 중 9.2개 탐지 (92%, 20회 반복 평균)
• 수정 성공률: 탐지된 버그의 78% 자동 수정 성공
• 비교 기준: 수동 디버깅 (시니어 엔지니어, 버그당 평균 2.3일 소요)
기존 기술 대비 차별점
vs Synopsys VCS / Verdi
❌ 파형만 시각화, 버그 원인은 사람이 분석
✅ CREAIM: AI가 파형 분석 → 버그 원인 추론 → 수정 코드 제안
vs Formal Verification
❌ "버그가 있다"는 알려주지만, 어떻게 고칠지는 모름
✅ CREAIM: 버그 감지 + 수정 방법까지 자동 생성
vs 수동 디버깅
❌ 수 시간~수 일 소요, 전문가 필요
✅ CREAIM: 수 분 이내 자동 감지 및 수정
핵심 기술 구조
1. 시계열 분석 기반 버그 감지
시뮬레이션 파형(VCD 파일)을 시계열 데이터로 변환하여 LSTM/Transformer로 분석. Setup/Hold Violation, Race Condition, X-Propagation 등을 자동 감지.
2. 근본 원인 추론 (Root Cause Analysis)
LLM에 RTL 코드 + 파형 + 에러 메시지를 입력하여 버그의 근본 원인을 추론. "이 신호가 늦게 도착해서 Setup Violation 발생" 같은 설명 생성.
3. 자동 수정 코드 생성
버그 원인을 기반으로 수정된 RTL 코드를 자동 생성. 예: "always @(posedge clk)" → "always @(posedge clk or negedge rst_n)"
4. Truth Kernel 기반 재검증
수정된 코드를 Truth Kernel에서 재시뮬레이션하여 버그 수정 여부 확인. 수정 실패 시 다른 방법 시도 (최대 3회 반복).
입력/출력 구조
입력
- • RTL 코드 (Verilog/SV)
- • 시뮬레이션 파형 (VCD)
- • 컴파일/시뮬 에러 로그
- • Formal Verification 결과
출력
- • 버그 리포트 (타입, 위치, 원인)
- • 수정된 RTL 코드
- • Before/After 비교
- • 재검증 결과
자동 감지 가능한 버그 유형
타이밍 위반
- • Setup/Hold Violation
- • Clock Domain Crossing (CDC)
- • Metastability
논리 오류
- • Race Condition
- • Dead Code
- • X-Propagation
기능 오류
- • Incorrect FSM Transition
- • Data Path Mismatch
- • Memory Access Error
코딩 오류
- • Latch Inference
- • Incomplete Sensitivity List
- • Blocking vs Non-blocking
동작 플로우
실제 적용 사례
❌ Original RTL (버그 포함):
always @(posedge clk_a) begin data_b <= data_a; // CDC 위반! end
AI 분석 결과:
"data_a는 clk_a 도메인, data_b는 clk_b 도메인 → CDC 동기화 필요"
✅ Fixed RTL (AI 자동 생성):
reg data_sync1, data_sync2; always @(posedge clk_b) begin data_sync1 <= data_a; data_sync2 <= data_sync1; data_b <= data_sync2; // 2-FF 동기화 end
현재 한계 및 제약사항
❌ 자동 수정 실패 (22%)
버그는 감지하지만 자동 수정에 실패하는 경우가 약 22% 존재합니다 (근본 원인이 설계 구조 자체인 경우).
❌ False Negative (8%)
실제 버그가 존재하지만 감지하지 못하는 경우 약 8% (특히 복잡한 멀티클럭 도메인 경합 조건).
❌ 대규모 시뮬레이션 (1M+ 사이클)
100만 사이클 이상의 장시간 시뮬레이션 파형 분석은 메모리 및 처리 시간 제약으로 제한적.
기술적 챌린지 & 해결방법
챌린지 1: 거대한 파형 데이터 처리
수백만 사이클 파형 → 수 GB VCD 파일
✓ 해결: Hierarchical 분석 (버그 의심 영역만 상세 분석) + Compression
챌린지 2: False Positive 최소화
정상 동작을 버그로 오판하는 경우
✓ 해결: Truth Kernel 정답 데이터 비교 + 사용자 피드백 학습
챌린지 3: 수정 코드 정확성 보장
AI가 생성한 코드가 또 다른 버그 유발 가능
✓ 해결: 재시뮬레이션 + Formal Verification으로 2차 검증