지노랩 /JinoLab
[UVM] 3.2 트랜잭션 레벨 컴포넌트 (Transaction-Level Components) 본문
UVM(Universal Verification Methodology)/3. 재사용 가능한 검증 컴포넌트 개발(Developing Reusabl
[UVM] 3.2 트랜잭션 레벨 컴포넌트 (Transaction-Level Components)
지노랩/JinoLab 2025. 3. 10. 13:033.2 트랜잭션 레벨 컴포넌트 (Transaction-Level Components)
UVM에서는 TLM(Transaction-Level Modeling) 인터페이스를 사용하여 트랜잭션을 주고받는 다양한 검증 컴포넌트를 연결할 수 있다. 이러한 컴포넌트들은 테스트벤치에서 인스턴스화(instantiation)되고 연결(connection)되어 디자인을 검증하는 데 필요한 다양한 작업을 수행한다.
3.2.1 트랜잭션 레벨 검증 환경의 기본 구성 요소

간단한 트랜잭션 레벨 검증 환경은 다음과 같은 주요 구성 요소로 이루어진다.
- 자극(stimulus) 생성기 (UVM Sequencer)
- DUT(Device Under Test)에 전달할 트랜잭션을 생성하는 역할.
- 일반적으로 UVM Sequence를 실행하여 트랜잭션을 생성함.
- 트랜잭션을 UVM Driver로 전달.
- 드라이버 (UVM Driver)
- 시퀀서에서 받은 트랜잭션을 신호 레벨 자극(signal-level stimulus)으로 변환하여 DUT의 인터페이스에 적용.
- 즉, 트랜잭션 수준(TLM)에서 핀 수준(Signal Level)으로 변환하는 역할.
- 모니터 (UVM Monitor)
- DUT 인터페이스에서 발생하는 신호 활동을 인식하고, 이를 다시 트랜잭션 객체로 변환.
- 생성된 트랜잭션을 분석 컴포넌트(예: Scoreboard, Coverage Collector)로 전달.
- 분석 컴포넌트 (Analysis Component)
- 트랜잭션을 분석하여 디자인이 올바르게 동작하는지 검증.
- 일반적으로 커버리지 수집기(Coverage Collector) 또는 스코어보드(Scoreboard) 역할 수행.
- 모니터에서 받은 트랜잭션을 기반으로 예상 값과 실제 값을 비교하는 작업 수행.
3.2.2 UVM TLM 인터페이스의 일관성과 모듈성

- TLM 인터페이스는 모든 UVM 컴포넌트에서 일관되게 사용되며, 모듈성을 제공.
- 특정 컴포넌트가 변경되거나 대체되더라도 TLM 인터페이스를 유지하면 기존 환경과 쉽게 결합 가능.
- 각 컴포넌트는 내부 구현 방식과 상관없이 트랜잭션을 송수신하는 인터페이스로 정의됨.
3.2.3 검증 컴포넌트의 캡슐화 및 재사용
UVM에서는 개별적인 저수준(low-level) 클래스들을 직접 재사용하는 것이 아니라,
이를 하나의 컴포넌트로 캡슐화(encapsulation)하여 재사용성을 극대화한다.
- 일관된 방식으로 서브클래스를 포함하는 컴포넌트를 만들어 관리.
- 특정 인터페이스를 표준화하여 컴포넌트 학습, 적용, 설정을 쉽게 할 수 있도록 구성.
- 개별 컴포넌트들을 에이전트(Agent)로 묶어 관리하면 유지보수와 확장이 쉬워짐.
✅ 3.2 요약
- TLM 인터페이스를 통해 검증 환경에서 트랜잭션을 주고받을 수 있음.
- 검증 환경은 Sequencer(자극 생성), Driver(신호 변환), Monitor(트랜잭션 변환), Analysis Component(분석 및 검증)로 구성됨.
- UVM에서는 개별 컴포넌트가 아니라, 에이전트(Agent)와 같은 캡슐화된 컴포넌트를 만들어 재사용성을 높임.
- 이러한 구조를 사용하면 컴포넌트 변경 및 확장이 용이하고, 검증 환경의 일관성을 유지할 수 있음.
본 내용은
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.1 데이터 항목 모델링 (Modeling Data Items for Generation) (0) | 2025.03.10 |
| [UVM] 3. 재사용 가능한 검증 컴포넌트 개발(Developing Reusable Verification Components) (0) | 2025.03.09 |