'지식 공유' 카테고리의 글 목록
본문 바로가기

지식 공유45

[UVM 1.1d] 9. Directed-Test Style (v.s. UVM Style) 1. Directed-Test Style InterfaceDirected-Test Style Interface는 전통적인 명령형 프로그래밍 스타일로, 테스트 작성자가 명시적으로 시퀀서와 상호작용하며 데이터 항목을 생성하고 실행합니다.예제 코드class directed_test extends ubus_example_base_test; `uvm_component_utils(directed_test) ubus_example_tb ubus_example_tb0; function new (string name = "directed_test", uvm_component parent = null); super.new(name, parent); endfunction virtual function void.. 2024. 12. 1.
[UVM 1.1d] 8. UVM Sequence Library 1. Sequencer 생성Sequencer는 Stimulus Data를 생성하여 Driver로 전달하는 역할을 합니다. 기본적으로 uvm_sequencer 클래스를 상속받아 커스터마이징합니다.주요 코드 예제systemverilogclass simple_sequencer extends uvm_sequencer #(simple_item); `uvm_sequencer_utils(simple_sequencer) // 생성자 function new (string name="simple_sequencer", uvm_component parent); super.new(name, parent); `uvm_update_sequence_lib_and_item(simple_item) endfunction.. 2024. 12. 1.
[UVM 1.1d] 7-3. UBus Verification Example 7.10 UBus Agent Monitor역할트랜잭션 감시: DUT와의 신호 상호작용을 모니터링하며, 이를 ubus_transfer 객체로 변환.데이터 전달: 생성된 트랜잭션 데이터를 analysis_port를 통해 다른 컴포넌트(예: Scoreboard)에 전달.체크 및 커버리지: 프로토콜 체크와 커버리지 수집 기능을 제공합니다.예제 코드class ubus_agent_monitor extends uvm_monitor; `uvm_component_utils(ubus_agent_monitor) virtual ubus_if vif; uvm_analysis_port#(ubus_transfer) analysis_port; function new(string name, uvm_component parent.. 2024. 12. 1.
[UVM 1.1d] 7-2. UBus Verification Example 7.6 UBus EnvironmentUBus Environment는 검증 환경의 상위 컨테이너로, 에이전트와 모니터, 스코어보드 등 다양한 컴포넌트를 포함합니다.주요 역할에이전트 관리: Master와 Slave Agent를 생성하고 환경 내에 통합.데이터 흐름 관리: 모니터와 스코어보드 간 연결 설정.예제 코드class ubus_env extends uvm_env; `uvm_component_utils(ubus_env) ubus_master_agent master_agent; ubus_slave_agent slave_agent; ubus_monitor bus_monitor; function new(string name = "ubus_env", uvm_component parent = null);.. 2024. 11. 26.
[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.
반응형