지노랩 /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:523. 재사용 가능한 검증 컴포넌트 개발(Developing Reusable Verification Components)
이 장에서는 일반적인 검증 환경을 구성하는 기본 개념과 컴포넌트를 설명한다.
또한, 계층적 아키텍처를 기반으로 재사용 가능한 검증 컴포넌트를 개발하는 방법을 다룬다.
✅ 3장에서 다루는 주요 내용
검증 컴포넌트를 개발하는 과정은 다음과 같은 순서로 진행된다.
- 데이터 항목 모델링 (Modeling Data Items for Generation)
- 검증 환경에서 사용할 트랜잭션 데이터를 모델링하는 방법.
- 트랜잭션 객체는 랜덤 생성 및 제약을 설정할 수 있도록 설계해야 함.
- 트랜잭션 레벨 컴포넌트 (Transaction-Level Components)
- UVM의 TLM(Transaction-Level Modeling) 개념을 기반으로 컴포넌트를 설계.
- UVM에서는 트랜잭션을 포트(port)와 익스포트(export)를 사용하여 연결.
- 드라이버 생성 (Creating the Driver)
- UVM Driver는 트랜잭션 데이터를 DUT(Design Under Test)로 전달하는 역할.
- 트랜잭션 데이터를 신호 기반으로 변환하여 DUT에 적용.
- 시퀀서 생성 (Creating the Sequencer)
- 시퀀서는 UVM Driver와 연결되어 트랜잭션 흐름을 제어.
- 다중 시퀀스를 관리하여 다양한 시나리오를 생성 가능.
- 모니터 생성 (Creating the Monitor)
- UVM Monitor는 DUT의 인터페이스를 샘플링하여 트랜잭션 데이터를 수집.
- 수집한 데이터를 분석 포트(analysis port)를 통해 전달.
- 컴포넌트 인스턴스화 (Instantiating Components)
- 생성한 드라이버, 시퀀서, 모니터 등을 UVM 환경에서 조립.
- TLM 인터페이스를 통해 컴포넌트를 연결.
- 에이전트 생성 (Creating the Agent)
- 에이전트(UVM Agent)는 드라이버, 시퀀서, 모니터를 하나로 묶은 컴포넌트.
- DUT의 인터페이스를 **"능동적(Active)" 또는 "수동적(Passive)"**으로 검증할 수 있도록 구성.
- 환경(Environment) 생성 (Creating the Environment)
- 에이전트(Agent), 스코어보드(Scoreboard), 커버리지 컬렉터(Coverage Collector) 등을 포함하는 상위 계층.
- 다양한 에이전트들을 하나의 검증 환경에서 조합하여 사용할 수 있도록 설계.
- 시나리오 생성 활성화 (Enabling Scenario Creation)
- 다양한 테스트 시나리오를 만들기 위해 시퀀스(Sequence)를 생성 및 실행.
- 검증 환경 내에서 시퀀스를 동적으로 변경 가능.
- 테스트 종료 관리 (Managing End of Test)
- 시뮬레이션이 종료되는 시점을 효과적으로 관리.
- 일반적으로 uvm_test_done 이벤트를 사용하여 종료 조건을 설정.
- 체크 및 커버리지 구현 (Implementing Checks and Coverage)
- 결과 데이터를 검증하기 위해 어설션(Assertions)과 비교(reference model) 로직 추가.
- 커버리지(Coverage)를 수집하여 테스트가 충분히 수행되었는지 평가.
✅ 3장의 핵심 개념
- UVM 환경에서는 모든 검증 요소가 독립적인 컴포넌트로 구성되며, 계층적 구조를 형성.
- TLM 기반 인터페이스를 활용하여 컴포넌트 간 데이터를 전달.
- 각 컴포넌트(드라이버, 시퀀서, 모니터, 에이전트 등)를 조합하여 재사용 가능한 검증 환경을 구축.
- 시퀀스를 활용하여 다양한 테스트 시나리오를 유연하게 적용 가능.
- 테스트 종료를 효과적으로 관리하고, 커버리지를 통해 검증의 완전성을 평가.
이처럼 UVM 기반의 검증 환경을 구축하면 컴포넌트의 재사용성이 증가하고, 보다 체계적인 검증이 가능해진다.
본 내용은
accellera에서 공개한
Universal Verification Methodology
(UVM) 1.2 User's Guide
를 바탕으로 작성된 글입니다.
'UVM(Universal Verification Methodology) > 3. 재사용 가능한 검증 컴포넌트 개발(Developing Reusabl' 카테고리의 다른 글
| [UVM] 3.5 드라이버와 시퀀서 연결 (0) | 2025.03.12 |
|---|---|
| [UVM] 3.4 시퀀서(Sequencer) 생성 (0) | 2025.03.11 |
| [UVM] 3.3 드라이버(Driver) 생성 (0) | 2025.03.11 |
| [UVM] 3.2 트랜잭션 레벨 컴포넌트 (Transaction-Level Components) (0) | 2025.03.10 |
| [UVM] 3.1 데이터 항목 모델링 (Modeling Data Items for Generation) (0) | 2025.03.10 |