반응형 verilog8 [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] 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] 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] UVM Sequence Macro (uvm_do/uvm_do_with) uvm_do와 uvm_do_with는 UVM에서 자주 사용하는 매크로로, 시퀀스에서 시퀀스 아이템을 생성하고 실행하는 데 사용됩니다. 이 매크로들은 시퀀스를 더 간결하고 명확하게 작성할 수 있도록 도와줍니다. 다음은 uvm_do와 uvm_do_with의 핵심 개념과 사용 방법입니다.1. uvm_douvm_do는 시퀀스 아이템을 생성하고, 시퀀서에 전달하여 실행하는 기본 매크로입니다. 주로 시퀀스의 body 메서드 내에서 사용됩니다.형식: `uvm_do(item)item: 생성하고 실행할 시퀀스 아이템예시:task body(); my_sequence_item req; `uvm_do(req); // 시퀀스 아이템 생성 및 실행endtask 2. uvm_do_withuvm_do_with는 시퀀스 아이템.. 2024. 9. 29. [UVM 1.1d] 2. Transaction-Level Modeling (TLM) 2장: Transaction-Level Modeling (TLM)TLM 개요Transaction-Level Modeling(TLM)은 시스템의 상위 추상화 수준에서 설계 및 검증 작업을 수행하는 기법입니다. TLM은 주로 **데이터 전송(transaction)**을 중심으로 통신을 모델링하며, 설계 검증 시 성능 최적화와 재사용성을 극대화하는 데 도움을 줍니다. TLM 방식은 두 가지 주요 버전인 TLM 1.0과 TLM 2.0으로 나뉘며, 각기 다른 추상화 수준과 활용 방식에서 차이가 있습니다.TLM 1.0과 TLM 2.0 비교TLM 1.0: 메시지 전달 방식(message-passing system)을 기반으로 하며, 타이밍에 대한 명시적 주석이 제공되지 않는 단순한 구조입니다. 주로 이벤트 기반 설계.. 2024. 9. 23. 이전 1 2 다음 반응형