'분류 전체보기' 카테고리의 글 목록 (3 Page)
본문 바로가기
반응형

분류 전체보기100

[SystemVerilog 실무] 1. 데이터 타입과 연산자 완전 정복 데이터 타입과 연산자SystemVerilog는 하드웨어 설계 및 검증을 위한 대표적인 HDL(Hardware Description Language)입니다. 이 시리즈에서는 RTL 설계자와 Design Verification 엔지니어가 반드시 숙지해야 할 SystemVerilog의 핵심 문법과 실무 활용 사례를 다룹니다.이번 글에서는 데이터 타입과 연산자에 대해 살펴보겠습니다.1. 데이터 타입 (Data Types)하드웨어 동작을 정확하게 표현하기 위해 SystemVerilog는 다양한 데이터 타입을 제공합니다.1.1 정수형 (Integer Types)SystemVerilog의 정수형 타입은 상태 표현(state), 크기, 부호(signed/unsigned)에 따라 구분됩니다.타입 상태 표현 크기 기본 부.. 2025. 5. 5.
[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.
반응형