CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
CONFIDENTIAL - CREAIM IP PROTECTION
특허 등록

RTL & UVM Generator

코드 생성 AI 기반 RTL/테스트벤치 자동 생성 엔진

특허 및 지적재산권

핵심 특허

"LLM 기반 RTL 코드 및 UVM 테스트벤치 동시 생성 시스템"
- Transformer 모델 기반 구조-코드 변환 기술
- 문법 검증 내장 코드 생성 (Syntax-Aware Generation)
- 테스트 커버리지 자동 최적화 UVM 생성

기술 개요

RTL & UVM Generator는 논리 합성된 마이크로아키텍처를 입력받아 Verilog/SystemVerilog RTL 코드와 UVM 테스트벤치를 동시에 자동 생성합니다. GitHub Copilot처럼 코드를 제안하는 수준이 아니라, 완전히 동작 가능한 RTL 전체를 생성하며 문법 오류율 0.1% 미만을 달성했습니다.

처리 시간
8.3초
평균 (3K LOC RTL)*
정확도
99.9%
문법 오류 제로율*
개선률
98%
vs 수동 코딩 시간 절감*

* RISC-V 5단 파이프라인 (3,247 LOC) 벤치마크 기준 (2024.Q4)

벤치마크 측정 방법론

• 입력: AI Logic Synthesizer 출력 (마이크로아키텍처 + 네트리스트)

• 출력 검증: Synopsys VCS 시뮬레이션 통과 + Formal Verification

• 문법 오류율: Verilator lint + VCS compile로 자동 검증 (3,247 LOC 중 3건 = 0.09%)

• 비교 기준: 수동 RTL 작성 (3명의 시니어 엔지니어, 평균 12일 소요)

• 측정 환경: AWS EC2 c6i.4xlarge (16 vCPU, 32GB RAM)

기존 기술 대비 차별점

vs GitHub Copilot / ChatGPT

❌ 코드 조각 제안, 전체 RTL 생성 불가
✅ CREAIM: 완전한 칩 설계 전체를 구조화하여 생성 (3000+ LOC)

vs High-Level Synthesis (HLS)

❌ C/C++ → RTL 변환, 제어 로직 제한적
✅ CREAIM: 아키텍처 다이어그램 → RTL, 복잡한 파이프라인/상태머신 지원

vs 수동 RTL 작성

❌ 개발자가 직접 작성, 수 주 소요
✅ CREAIM: 자동 생성 + 테스트벤치 포함, 10초 이내

핵심 기술 구조

1. Transformer 기반 Structure-to-Code

마이크로아키텍처 그래프를 Sequence로 변환 후 Transformer 모델로 RTL 코드 생성. 수백만 개의 오픈소스 RTL 코드를 학습하여 업계 관례에 맞는 코드 스타일 적용.

2. Syntax-Aware Generation

Verilog/SystemVerilog 문법을 트리 구조로 표현하고, 생성 과정에서 실시간 문법 검증. 이를 통해 컴파일 오류가 없는 RTL을 보장 (99.9% 정확도).

3. UVM 자동 생성 및 커버리지 최적화

RTL의 인터페이스를 분석하여 UVM Agent, Driver, Monitor, Scoreboard를 자동 생성. Coverage-Driven Verification으로 테스트 커버리지 85% 이상 자동 달성.

입력/출력 구조

입력

  • • 마이크로아키텍처 그래프
  • • 논리 회로 네트리스트
  • • 인터페이스 명세 (포트, 신호)
  • • 제약 조건 (SDC/UPF)

출력

  • • RTL 코드 (Verilog/SystemVerilog)
  • • UVM 테스트벤치 (전체 계층 구조)
  • • 시뮬레이션 스크립트 (VCS/ModelSim)
  • • 커버리지 리포트

자동 생성 코드 예시

// Auto-generated by CREAIM Chip Engine
module riscv_core #(
  parameter XLEN = 32
)(
  input  wire         clk,
  input  wire         rst_n,
  output wire [31:0]  pc_o,
  output wire [31:0]  instr_o,
  // ... more ports
);

  // Pipeline Stages
  reg [31:0] if_pc, id_pc, ex_pc, mem_pc, wb_pc;
  reg [31:0] if_instr, id_instr;
  
  // Fetch Stage
  always @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      if_pc <= 32'h0;
    end else begin
      if_pc <= if_pc + 4;
    end
  end
  
  // Decode Stage
  always @(posedge clk) begin
    id_pc    <= if_pc;
    id_instr <= if_instr;
  end
  
  // ... Execute, Memory, Writeback stages
  
  assign pc_o    = if_pc;
  assign instr_o = if_instr;
  
endmodule

실제 적용 사례

Case: RISC-V 5-Stage Pipeline 자동 생성

입력:

  • • 아키텍처: 5단 파이프라인
  • • 32개 레지스터
  • • 분기 예측기 포함

생성 결과:

  • ✓ RTL: 3,247 LOC (Verilog)
  • ✓ UVM TB: 1,850 LOC
  • ✓ 생성 시간: 8.3초
  • ✓ 문법 오류: 0건
  • ✓ 커버리지: 87.2%

현재 한계 및 제약사항

❌ 극도로 복잡한 상태머신

100개 이상의 상태를 가진 복잡한 FSM은 생성 코드의 가독성과 유지보수성이 저하될 수 있습니다.

❌ 비표준 코딩 스타일

회사별 특수한 코딩 컨벤션(주석 형식, 네이밍 규칙 등)은 추가 설정 없이는 완벽히 반영 불가.

❌ 시뮬레이터별 문법 차이

VCS/ModelSim/Xcelium 등 시뮬레이터별 미묘한 SystemVerilog 문법 차이는 수동 수정 필요할 수 있음.

기술적 챌린지 & 해결방법

챌린지 1: 긴 코드 생성 (3000+ LOC)

LLM은 보통 짧은 코드만 생성 가능 (수백 라인)

✓ 해결: Hierarchical Generation (모듈별 생성 후 조립) + Context Window 확장 기법

챌린지 2: 문법 오류 최소화

일반 LLM 생성 코드는 문법 오류율 10~20%

✓ 해결: Syntax-Aware Decoder + 실시간 문법 검증 + 자동 수정

챌린지 3: 고품질 UVM 테스트벤치

단순 랜덤 테스트로는 버그 검출 한계

✓ 해결: Coverage-Driven Test Generation + Directed Random 기법 적용