콘텐츠로 이동

UVM (Universal Verification Methodology)

🧪
UVM (Universal Verification Methodology)

UVM 방법론 — phase, agent, sequence, factory, TLM

🎯 학습 목표

코스를 마치면 다음을 할 수 있습니다:

  • Diagram (분석) UVM 클래스 계층 전체와 Phase 실행 순서를 화이트보드로 그리며 설계 의사결정을 설명
  • Design (생성) Agent/Driver/Monitor 구조를 Active/Passive 모드를 구분해 설계
  • Apply (적용) Sequence + Virtual Sequence + Factory Override로 다양한 시나리오를 재사용 가능하게 구성
  • Analyze (분석) config_db 계층 전달, TLM 포트 연결, Scoreboard 비교 로직을 트레이스
  • Evaluate (평가) UVM 실무 패턴/안티패턴을 식별하고 코드 리뷰에서 근거 있는 피드백 제공

📋 사전 지식

다음 항목을 알고 있어야 본문이 매끄럽게 읽힙니다:

  • SystemVerilog 객체지향: class, virtual function/task, polymorphism, parameterized class
  • 랜덤화: randomize(), constraint, rand/randc 차이
  • Interface & modport: virtual interface 개념
  • 시뮬레이터 사용 경험: VCS / Questa / Xcelium 중 하나로 +runtest, +UVM_TESTNAME 등의 경험

부족한 부분이 있다면 SystemVerilog IEEE 1800 사양서나 SystemVerilog for Verification (Spear) 1-7장을 먼저 보세요.

🗺️ 개념 맵

개념 의존성 — 순서대로 학습 권장
각 노드 = 모듈 (클릭하여 이동) · 화살표(→) = 선수 지식 흐름

📚 학습 모듈

순차 학습을 권장합니다 (특히 1→4까지). 5~7은 토픽 단위로도 가능합니다.

📊 모듈 흐름

코어(Module 01-04) → 심화(05-06) → 참조(07) 순서로 의존성이 있습니다.

M01
아키텍처 & Phase
M02
Agent/Drv/Mon
M03
Sequence
M04
config_db & Factory
M05
TLM/SB/Coverage
M06
실무 패턴
M07
Quick Ref

Tier 색상: 코어 (M01-M04, 강한 의존) ・ 심화 (M05-M06) ・ 참조 (M07, 치트시트)

🎓 코스 운영 방식

각 모듈은 다음 순서로 구성됩니다:

  1. 학습 목표 — 모듈 완료 후 할 수 있는 것 (Bloom's Taxonomy 동사)
  2. 사전 지식 — 본 모듈에 필요한 선행 학습 항목
  3. 본문 — 핵심 개념 + 예제 코드 + 다이어그램
  4. 워크스루 (Walkthrough) — 단계별 실습 시나리오
  5. 연습문제 — 직접 풀어보는 문항 + 모범 답안
  6. 핵심 정리 — 5~7개의 압축된 takeaway
  7. 퀴즈 — 이해도 점검 (별도 페이지)

📖 관련 자료

💡 학습 팁

효율적 학습

  • 순서 고수: Module 01-04는 강한 의존이 있으므로 순차 학습
  • 퀴즈 즉시: 각 모듈 끝나면 바로 퀴즈 풀고 본문 재방문
  • 코드 직접 작성: 본문 코드는 읽기만 말고 실제 시뮬레이터에서 컴파일/실행
  • 다이어그램 화이트보드: 클래스 계층/Phase 흐름은 자기 손으로 그릴 수 있어야 함

안티패턴 경계

UVM 실무에서 가장 자주 발생하는 문제는 Phase 오해, config_db 경로 불일치, Factory Override 누락입니다. Module 06에서 별도 다룹니다.

🔗 관련 토픽