지노랩 /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:03

3.2 트랜잭션 레벨 컴포넌트 (Transaction-Level Components)

UVM에서는 TLM(Transaction-Level Modeling) 인터페이스를 사용하여 트랜잭션을 주고받는 다양한 검증 컴포넌트를 연결할 수 있다. 이러한 컴포넌트들은 테스트벤치에서 인스턴스화(instantiation)되고 연결(connection)되어 디자인을 검증하는 데 필요한 다양한 작업을 수행한다.


3.2.1 트랜잭션 레벨 검증 환경의 기본 구성 요소

간단한 트랜잭션 레벨 검증 환경은 다음과 같은 주요 구성 요소로 이루어진다.

  1. 자극(stimulus) 생성기 (UVM Sequencer)
    • DUT(Device Under Test)에 전달할 트랜잭션을 생성하는 역할.
    • 일반적으로 UVM Sequence를 실행하여 트랜잭션을 생성함.
    • 트랜잭션을 UVM Driver로 전달.
  2. 드라이버 (UVM Driver)
    • 시퀀서에서 받은 트랜잭션을 신호 레벨 자극(signal-level stimulus)으로 변환하여 DUT의 인터페이스에 적용.
    • 즉, 트랜잭션 수준(TLM)에서 핀 수준(Signal Level)으로 변환하는 역할.
  3. 모니터 (UVM Monitor)
    • DUT 인터페이스에서 발생하는 신호 활동을 인식하고, 이를 다시 트랜잭션 객체로 변환.
    • 생성된 트랜잭션을 분석 컴포넌트(예: Scoreboard, Coverage Collector)로 전달.
  4. 분석 컴포넌트 (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
를 바탕으로 작성된 글입니다.