반응형 SystemVerilog31 [SystemVerilog 실무] 5. SystemVerilog 클래스 기초 완전정복 SystemVerilog는 객체 지향 개념을 지원하여 복잡한 테스트벤치 구조를 효율적으로 구현할 수 있습니다. 이 글에서는 클래스의 정의부터 상속, 생성자, 정적 변수, 캐스팅까지 SystemVerilog 클래스의 핵심을 정리해보겠습니다.클래스란 무엇인가?클래스는 데이터와 메서드를 캡슐화하여 재사용성과 모듈성을 높이는 구조입니다.SystemVerilog는 OOP(Object Oriented Programming)를 지원합니다.주요 특징:new()를 통한 동적 객체 생성extends를 통한 상속 및 추상화 지원포인터처럼 동작하는 객체 핸들(Handle) 기반 설계class Packet; int address; bit [63:0] data;endclass클래스 선언 방식class와 endclass 키워드.. 2025. 5. 10. [SystemVerilog 실무] 4. 절차적 블록과 제어 구조 이해하기 SystemVerilog는 여러 프로세스 모델을 지원하여, 다양한 시나리오의 동시성(Concurrency) 및 동기화(Synchronization)을 표현할 수 있습니다. 본 포스트에서는 정적 프로세스와 동적 프로세스, 그리고 race condition을 방지하기 위한 시뮬레이션 시간 모델에 대해 설명합니다.정적 프로세스 (Static Processes)SystemVerilog에서 가장 기본적인 프로세스는 always와 initial입니다.always block특정 이벤트에 반응하여 반복적으로 실행됩니다.always @(posedge clk) ... // clock edge에 반응always @(a or b) ... // a, b 중 하나라도 바뀌면 실행initial block시뮬레이션 시작 시 단 .. 2025. 5. 10. [SystemVerilog 실무] 3. 절차적 블록과 제어 구조 이해하기 SystemVerilog 설계 및 검증 흐름에서 가장 기본이자 중요한 개념 중 하나는 **절차적 블록(Procedural Blocks)**과 **제어 구조(Control Structures)**입니다. 본 포스트에서는 이를 중심으로 실무에 바로 활용 가능한 문법과 구조를 정리합니다.절차적 블록 (Procedural Blocks)SystemVerilog의 절차적 블록은 하드웨어의 **동작(behavioral)**을 기술하는 핵심 구조입니다.initial시뮬레이션 시작 시 단 한 번만 실행testbench setup 등 초기화 용도에 자주 사용final시뮬레이션 종료 직전에 한 번 실행로그 출력이나 리소스 정리에 사용always조건 없이 무한히 반복 실행순차 논리 설계의 기본 구조SystemVerilog는 .. 2025. 5. 10. [SystemVerilog 실무] 2. 자료구조와 활용 SystemVerilog는 단순한 하드웨어 기술 언어를 넘어서 강력한 테스트벤치 언어로 자리잡았습니다. 이 글에서는 Verification에서 자주 사용되는 SystemVerilog의 4가지 주요 배열 타입과 데이터 조작 기법을 살펴보고, 각 자료구조가 실제 DV 환경에서 어떻게 활용되는지 소개합니다.1. 배열의 분류와 개념1-1. Packed vs Unpacked ArraysPacked Array연속된 비트들로 구성 → 버스나 레지스터 표현에 적합고정 크기, 비트 단위 연산 가능예시: bit [2:0][7:0] packed_array; → 3개의 8비트 값Unpacked Array일반적인 소프트웨어 배열 형태다양한 타입 포함 가능 (예: 구조체, 클래스)예시: bit [7:0] unpacked_arra.. 2025. 5. 10. [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. 이전 1 2 3 4 5 6 다음 반응형