DV17 [UVM 1.1d] 6-1. Advanced UVM Topics (Factory, Callback) 6.1 UVM Factory 개요UVM Factory는 UVM 환경에서 객체와 컴포넌트를 생성하고 관리하는 중앙 관리 시스템으로, 검증 환경에서 유연한 객체 생성과 재사용성을 보장합니다. 이를 통해 객체의 타입을 동적으로 설정하고, 특정 객체나 컴포넌트를 대체할 수 있는 Override 기능을 제공합니다.UVM Factory의 주요 기능:동적 객체 생성: 코드 내에서 객체의 타입을 고정하지 않고 필요할 때마다 원하는 타입으로 생성할 수 있습니다.Override 메커니즘: 기존 객체를 새 객체로 대체할 수 있으며, 이를 통해 테스트 환경의 구성을 유연하게 변경할 수 있습니다.객체 재사용성: 동일한 객체를 여러 테스트에서 사용하여 코드의 중복을 줄이고, 유지 보수성을 높입니다.객체 생성 예시class my_.. 2024. 11. 12. [UVM 1.1d] 5-4. Register Model (Register Abstraction Layer) 5.9 Register Sequences (레지스터 시퀀스)UVM에서 Register Sequence는 레지스터의 값을 읽거나 쓰기 위한 시퀀스입니다. 레지스터 접근 작업을 관리하며, 이를 통해 레지스터 값을 쉽게 제어할 수 있습니다.1. Register Sequence와 Virtual Sequence 제어Virtual Sequence는 여러 하위 시퀀서를 한꺼번에 제어하는 시퀀스입니다. 레지스터 시퀀스는 이러한 Virtual Sequence에 포함될 수 있으며, 하위 시퀀서를 통해 레지스터 읽기/쓰기 작업을 관리할 수 있습니다. 이를 위해, p_sequencer를 사용하여 가상 시퀀서에서 하위 시퀀서를 참조하고, 이를 통해 레지스터 시퀀스를 실행합니다.Register Sequence에서 Virtual .. 2024. 10. 20. [UVM 1.1d] 5-2. Register Model (Register Abstraction Layer) 5-2. Register Model 구축 (Building a Register Model)UVM의 Register Model은 하드웨어 설계에서 레지스터 맵을 추상화하여 검증 환경에서 관리하는 방법을 제공합니다. 이 모델은 레지스터와 필드의 객체를 생성하고, 이를 테스트벤치에서 사용할 수 있도록 조직화하는 데 중점을 둡니다.Register Model을 구성하는 주요 컴포넌트:uvm_reg_block: 레지스터 모델에서 최상위 블록으로, 레지스터와 서브 블록을 포함하는 컨테이너 역할을 합니다.uvm_reg: 실제 레지스터를 나타내는 객체로, 레지스터 필드를 포함합니다.uvm_reg_field: 레지스터 내에서 특정 필드를 나타내며, 여러 필드가 모여 하나의 레지스터를 구성합니다.Register Model .. 2024. 10. 15. [UVM 1.1d] 5-1. Register Model (Register Abstraction Layer) 5. Using the Register Layer Classes Register Layer는 UVM에서 설계의 레지스터 맵을 추상화하고, 쉽게 접근할 수 있는 방법을 제공합니다. 이를 통해 복잡한 설계의 레지스터 모델을 효율적으로 관리하고 테스트할 수 있습니다. 레지스터 모델은 하드웨어 레지스터에 대한 읽기/쓰기 작업을 추상화하고 자동화하여 검증 환경의 생산성을 높여줍니다.5.1 Register Model 개요Register Model은 하드웨어 설계에서 레지스터 맵을 테스트벤치 내에서 추상화하여 표현하는 모델입니다. 이를 사용하면 하드웨어 레지스터에 대한 복잡한 접근 작업을 간단하게 처리할 수 있습니다.목적레지스터 접근을 추상화하여 검증 코드와 레지스터 맵 간의 결합도를 낮춤.재사용성을 극대화하여 다양.. 2024. 10. 15. [UVM 1.1d] 4-2. Reusable UVM Component 4.8 가상 시퀀스 (Virtual Sequences)**가상 시퀀스(Virtual Sequence)**는 여러 시퀀서를 동시에 제어하고 조정할 수 있는 시퀀스입니다. 이를 통해 복잡한 시스템 수준 테스트를 보다 효율적으로 작성할 수 있습니다. 가상 시퀀스는 복수의 시퀀서를 조정하여, 병렬로 시퀀스를 실행하거나 다양한 시퀀스를 한꺼번에 관리할 수 있습니다.가상 시퀀스 예제 코드가상 시퀀스를 작성하고 환경에 설정하는 방법은 아래와 같습니다.class my_virtual_sequence extends uvm_sequence#(uvm_sequence_item); `uvm_object_utils(my_virtual_sequence) my_sequencer seqr1; my_sequencer seqr2; .. 2024. 10. 10. [UVM 1.1d] 4-1. Reusable UVM Component 4장: Reusable Verification ComponentsUVM에서 **검증 컴포넌트(Verification Components)**는 설계 검증을 위한 중요한 요소입니다. 이 장에서는 검증 컴포넌트를 사용하는 방법, 구성하는 방법, 그리고 테스트에 맞춰 커스터마이징하는 방법을 설명합니다.4.1 검증 컴포넌트 사용 (Using a Verification Component)검증 컴포넌트는 트랜잭션 레벨 모델링(TLM)과 UVM 시퀀서를 사용하여 디자인을 검증하는 데 핵심적인 역할을 합니다. 컴포넌트는 Driver, Monitor, Sequencer 등의 구성 요소로 이루어져 있으며, 설계와 테스트 시나리오 간의 상호작용을 관리합니다.특징:모듈화 및 재사용 가능 구조디자인의 특정 기능을 독립적으로 검.. 2024. 9. 29. 이전 1 2 3 다음 반응형