콘텐츠로 이동

UVM (Universal Verification Methodology) — 개요

학습 플랜

  • 레벨: Advanced (6년+ UVM 실무, from scratch 환경 구축 경험)
  • 목표: UVM 아키텍처 전체를 화이트보드에 그리며 설계 의사결정의 근거를 설명할 수 있는 수준

핵심 용어집 (Glossary)

아키텍처 & 컴포넌트

약어 풀네임 설명
UVM Universal Verification Methodology SystemVerilog 기반 검증 프레임워크
DUT Device Under Test 검증 대상 설계
Agent Driver + Monitor + Sequencer 묶음 (Active/Passive 모드)
Driver DUT 인터페이스에 트랜잭션을 물리 신호로 변환하여 인가
Monitor DUT 신호를 관찰하여 트랜잭션으로 변환 (수동, 비침투적)
Sequencer Sequence와 Driver 사이의 중개자 (Arbitration 포함)
Scoreboard DUT 출력과 Reference Model의 기대값을 비교/판정
uvm_env Agent, Scoreboard, Coverage를 담는 컨테이너
uvm_test 최상위 테스트 클래스 (환경 구성 + 시나리오 선택)

Sequence & Stimulus

약어 풀네임 설명
Sequence 트랜잭션 생성 시나리오 (body() 태스크로 정의)
Sequence Item 하나의 트랜잭션 데이터 (uvm_sequence_item 상속)
Virtual Sequence 여러 Agent의 Sequence를 조합하는 시스템 레벨 시나리오
Constrained Random 제약 조건(constraint) 만족 하에 필드를 무작위 생성

인프라 패턴

약어 풀네임 설명
Factory 객체 생성을 위임하는 패턴 (type override로 유연성 확보)
config_db 계층 간 설정(VIF, 파라미터)을 전달하는 전역 저장소
TLM Transaction Level Modeling 컴포넌트 간 트랜잭션 기반 통신 (Analysis Port 등)
Analysis Port Monitor → Scoreboard/Coverage 단방향 브로드캐스트 포트
Virtual Interface RTL 신호 세계와 UVM class 세계를 연결하는 브릿지
RAL Register Abstraction Layer 레지스터 모델 추상화 및 자동화

Phase & 실행 제어

약어 풀네임 설명
Phase 시뮬레이션 실행 단계 (Build→Connect→Run→Extract→Report)
Objection run_phase 종료 제어 메커니즘 (raise/drop)
Drain Time 마지막 트랜잭션 이후 DUT 처리 완료 대기 시간

Coverage

약어 풀네임 설명
Covergroup 기능 커버리지 정의 컨테이너
Coverpoint 커버리지 수집 대상 신호/변수
Cross 여러 Coverpoint의 교차 조합 커버리지
Regression 다수 테스트를 다양한 시드로 반복 실행하여 커버리지 축적

기타 핵심

약어 풀네임 설명
DPI-C Direct Programming Interface C SystemVerilog↔C 양방향 인터페이스
Reference Model DUT의 기대 동작을 추상적으로 모델링 (C/SV)
grab/lock Sequence가 Sequencer를 독점하는 메커니즘

컨셉 맵

TSTENVAGSBSLCDBFAC
TSTENVAGSBSLCDBFAC

학습 단위

# 단위 핵심 질문
1 UVM 아키텍처 & Phase UVM의 클래스 계층과 Phase 실행 순서는 어떻게 동작하는가?
2 Agent / Driver / Monitor DUT와 상호작용하는 핵심 컴포넌트는 어떻게 설계하는가?
3 Sequence & Sequence Item 자극(Stimulus)을 어떻게 생성하고 제어하는가?
4 config_db & Factory 환경 설정과 객체 생성을 어떻게 유연하게 관리하는가?
5 TLM, Scoreboard, Coverage 컴포넌트 간 통신, 결과 비교, Coverage 수집은 어떻게 하는가?
6 UVM 실무 패턴 & 안티패턴 실무에서 반복되는 설계 패턴과 피해야 할 것은?

이력서 연결

이력서 항목 관련 Unit 면접 시 활용
E2E UVM from scratch (전 프로젝트) 전체 아키텍처 설계 의사결정
Legacy SV → UVM 전환 Unit 1, 6 전환 동기 + 설계 원칙
OTP Abstraction Layer (RAL 스타일) Unit 4 config_db / 추상화 설계
Active Driver (force/release) Unit 2, 3 Driver 설계 + Sequence 구조
Custom Thin VIP Unit 2 Agent 경량화 전략
Coverage-driven 방법론 Unit 5 Covergroup 설계 + Closure
다중 프로젝트 포팅 Unit 4, 6 재사용 가능한 설계 패턴