지노랩 /JinoLab

[UVM] 3. 재사용 가능한 검증 컴포넌트 개발(Developing Reusable Verification Components) 본문

UVM(Universal Verification Methodology)/3. 재사용 가능한 검증 컴포넌트 개발(Developing Reusabl

[UVM] 3. 재사용 가능한 검증 컴포넌트 개발(Developing Reusable Verification Components)

지노랩/JinoLab 2025. 3. 9. 13:52

3. 재사용 가능한 검증 컴포넌트 개발(Developing Reusable Verification Components)

이 장에서는 일반적인 검증 환경을 구성하는 기본 개념과 컴포넌트를 설명한다.
또한, 계층적 아키텍처를 기반으로 재사용 가능한 검증 컴포넌트를 개발하는 방법을 다룬다.


✅ 3장에서 다루는 주요 내용

검증 컴포넌트를 개발하는 과정은 다음과 같은 순서로 진행된다.

  1. 데이터 항목 모델링 (Modeling Data Items for Generation)
    • 검증 환경에서 사용할 트랜잭션 데이터를 모델링하는 방법.
    • 트랜잭션 객체는 랜덤 생성 및 제약을 설정할 수 있도록 설계해야 함.
  2. 트랜잭션 레벨 컴포넌트 (Transaction-Level Components)
    • UVM의 TLM(Transaction-Level Modeling) 개념을 기반으로 컴포넌트를 설계.
    • UVM에서는 트랜잭션을 포트(port)와 익스포트(export)를 사용하여 연결.
  3. 드라이버 생성 (Creating the Driver)
    • UVM Driver는 트랜잭션 데이터를 DUT(Design Under Test)로 전달하는 역할.
    • 트랜잭션 데이터를 신호 기반으로 변환하여 DUT에 적용.
  4. 시퀀서 생성 (Creating the Sequencer)
    • 시퀀서는 UVM Driver와 연결되어 트랜잭션 흐름을 제어.
    • 다중 시퀀스를 관리하여 다양한 시나리오를 생성 가능.
  5. 모니터 생성 (Creating the Monitor)
    • UVM Monitor는 DUT의 인터페이스를 샘플링하여 트랜잭션 데이터를 수집.
    • 수집한 데이터를 분석 포트(analysis port)를 통해 전달.
  6. 컴포넌트 인스턴스화 (Instantiating Components)
    • 생성한 드라이버, 시퀀서, 모니터 등을 UVM 환경에서 조립.
    • TLM 인터페이스를 통해 컴포넌트를 연결.
  7. 에이전트 생성 (Creating the Agent)
    • 에이전트(UVM Agent)는 드라이버, 시퀀서, 모니터를 하나로 묶은 컴포넌트.
    • DUT의 인터페이스를 **"능동적(Active)" 또는 "수동적(Passive)"**으로 검증할 수 있도록 구성.
  8. 환경(Environment) 생성 (Creating the Environment)
    • 에이전트(Agent), 스코어보드(Scoreboard), 커버리지 컬렉터(Coverage Collector) 등을 포함하는 상위 계층.
    • 다양한 에이전트들을 하나의 검증 환경에서 조합하여 사용할 수 있도록 설계.
  9. 시나리오 생성 활성화 (Enabling Scenario Creation)
    • 다양한 테스트 시나리오를 만들기 위해 시퀀스(Sequence)를 생성 및 실행.
    • 검증 환경 내에서 시퀀스를 동적으로 변경 가능.
  10. 테스트 종료 관리 (Managing End of Test)
  • 시뮬레이션이 종료되는 시점을 효과적으로 관리.
  • 일반적으로 uvm_test_done 이벤트를 사용하여 종료 조건을 설정.
  1. 체크 및 커버리지 구현 (Implementing Checks and Coverage)
  • 결과 데이터를 검증하기 위해 어설션(Assertions)과 비교(reference model) 로직 추가.
  • 커버리지(Coverage)를 수집하여 테스트가 충분히 수행되었는지 평가.

✅ 3장의 핵심 개념

  • UVM 환경에서는 모든 검증 요소가 독립적인 컴포넌트로 구성되며, 계층적 구조를 형성.
  • TLM 기반 인터페이스를 활용하여 컴포넌트 간 데이터를 전달.
  • 각 컴포넌트(드라이버, 시퀀서, 모니터, 에이전트 등)를 조합하여 재사용 가능한 검증 환경을 구축.
  • 시퀀스를 활용하여 다양한 테스트 시나리오를 유연하게 적용 가능.
  • 테스트 종료를 효과적으로 관리하고, 커버리지를 통해 검증의 완전성을 평가.

이처럼 UVM 기반의 검증 환경을 구축하면 컴포넌트의 재사용성이 증가하고, 보다 체계적인 검증이 가능해진다.

 

 

 

 


 

본 내용은
accellera에서 공개한
Universal Verification Methodology
(UVM) 1.2 User's Guide
를 바탕으로 작성된 글입니다.