'SystemVerilog' 태그의 글 목록
본문 바로가기
반응형

SystemVerilog16

[UVM 1.1d] 7-1. UBus Verification Example 7.3 UBus Top ModuleTop Module은 DUT(Design Under Test)와 UVM 기반 테스트벤치를 연결하는 역할을 합니다. 여기서는 SystemVerilog 인터페이스를 사용해 DUT와 테스트벤치 간의 신호를 연결하고, 시뮬레이션을 초기화합니다.Top Module 예제 (ubus_tb_top.sv)module ubus_tb_top; import uvm_pkg::*; import ubus_pkg::*; `include "test_lib.sv" ubus_if vif(); // UBus 인터페이스 인스턴스화 dut_dummy dut( vif.sig_request[0], vif.sig_grant[0], ... vif.sig_reset ); initial.. 2024. 11. 24.
[UVM 1.1d] 6-3. Advanced UVM Topics (UVM CLI) 6.5.3 Generating the Item or Sequence in Advance사전에 아이템 또는 시퀀스를 생성하기는 UVM에서 시퀀스가 실행되기 전에 필요한 아이템이나 하위 시퀀스를 미리 준비하는 방식을 설명합니다. 이는 복잡한 프로토콜 계층을 Layering하거나, 복수의 시퀀스 간 동기화가 필요한 상황에서 유용합니다.주요 개념사전 생성의 필요성: 아이템이나 시퀀스를 미리 생성하면 시퀀스 실행 중에 발생할 수 있는 지연 문제를 최소화하고, 예측 가능성을 높일 수 있습니다.효율성 향상: 시퀀스가 실행되기 전에 필요한 데이터를 준비하여 시퀀스의 실행 속도를 향상시킬 수 있습니다.구현 예시class advanced_sequence extends uvm_sequence#(uvm_sequence_ite.. 2024. 11. 19.
[UVM 1.1d] 6-2. Advanced UVM Topics (SEQ_LIB, Layering) 6.4 Sequence Library (seq_lib)Sequence Library는 다양한 시퀀스를 수집하여 검증 환경에서 재사용 가능하게 모아두는 시퀀스 집합체입니다. seq_lib는 검증 환경에서 특정 프로토콜이나 인터페이스를 검증하기 위한 시퀀스를 조직적으로 관리하고, 각 시퀀스를 필요에 따라 호출하여 사용할 수 있도록 합니다.Sequence Library의 주요 기능시퀀스 관리: 자주 사용하는 시퀀스를 미리 라이브러리로 등록하여 관리하고, 각 시퀀스를 쉽게 호출해 사용할 수 있습니다.재사용성 향상: 다양한 시퀀스를 라이브러리 형태로 저장하여 검증 환경 내에서 일관성 있게 사용할 수 있습니다.유연성 제공: 검증 요구사항에 따라 시퀀스를 추가하거나 교체할 수 있어, 검증 환경의 유연성이 높아집니다... 2024. 11. 13.
[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-3. Register Model (Register Abstraction Layer) 5.6 Predicting Values in the Register Model (레지스터 모델에서의 예측 값)UVM 레지스터 모델에서는 **예상 값(Predict)**을 추적하여 하드웨어와의 동기화를 관리합니다. 이는 레지스터에 대한 읽기/쓰기 작업이 실제 하드웨어와 일치하는지 확인할 수 있도록 도와줍니다.주요 기능:레지스터 값이 읽기/쓰기 작업 후 하드웨어와 일치하는지 확인.자동 동기화를 통해 소프트웨어 모델의 상태를 하드웨어 상태와 일치시킴.5.7 Backdoor Access and uvm_hdl_pathUVM에서 Backdoor Access는 설계의 레지스터에 접근할 때 버스를 거치지 않고 직접적으로 레지스터 값을 읽거나 쓸 수 있게 해주는 방법입니다. 이 방식은 시뮬레이션 성능을 높이는 데 유용하.. 2024. 10. 20.
반응형