반응형 designverification5 [SystemVerilog 실무] 9. Functional Coverage의 이해 SystemVerilog에서 Functional Coverage는 단순히 테스트가 실행되었는지를 넘어서 **"테스트가 어떤 상황을 실제로 검증했는가"**를 정량화하는 데 핵심적인 역할을 합니다. 이번 포스트에서는 Functional Coverage의 개념부터 covergroup 작성법, bins 설정, 주요 메서드 및 시스템 함수까지 실습 중심으로 정리해보겠습니다.Functional Coverage란?설계 명세서(Specification)를 기준으로, 테스트가 해당 명세를 얼마나 커버했는지를 측정하는 기법입니다.사용자가 직접 coverage 항목을 정의해야 하며, 시뮬레이터가 자동으로 추출해주지 않습니다.구조 커버리지(코드 기반)와 달리, 설계 코드와는 독립적인 방식으로 정의됩니다.체계적인 검증 전략 수.. 2025. 5. 10. [SystemVerilog 실무] 6. SystemVerilog OOP: 캡슐화, 상속, 다형성 SystemVerilog는 기존 Verilog의 기능을 확장하여 객체지향 프로그래밍(Object-Oriented Programming, OOP) 개념을 지원합니다. 이를 통해 코드의 재사용성, 유지보수성, 모듈화가 한층 향상됩니다. 본 포스트에서는 OOP의 핵심 개념인 캡슐화(Encapsulation), 상속(Inheritance), **다형성(Polymorphism)**에 대해 SystemVerilog 관점에서 설명합니다.OOP 개요OOP는 클래스를 기반으로 한 설계 방식을 제공하여, 코드 구조의 체계화를 돕습니다.디버깅과 유지보수를 용이하게 하며, 기능의 확장성을 제공합니다.캡슐화 (Encapsulation)캡슐화는 데이터와 해당 데이터를 조작하는 메서드를 하나의 클래스로 묶는 개념입니다.객체 내부의.. 2025. 5. 10. [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. [UVM 1.1d] 3-1. UVM Components 3-1장: 재사용 가능한 검증 Component 개발UVM(Universal Verification Methodology)에서는 재사용 가능한 검증 Component를 효율적으로 개발하는 것이 중요합니다. 각 컴포넌트는 데이터 항목(Transaction), 드라이버(Driver), 시퀀서(Sequencer), 모니터(Monitor), 에이전트(Agent), 환경(Environment) 등의 요소로 구성되어 있습니다. 이들은 각각 고유한 역할과 목적을 가지며, 통합하여 강력한 검증 환경을 제공합니다.1. 데이터 항목 (Transaction)목적: 데이터 항목은 설계 검증에서 DUT(Device Under Test)로 전달되는 정보를 표현하는 객체입니다. 트랜잭션은 네트워크 패킷, 버스 트랜잭션, 명령어 등.. 2024. 9. 25. 이전 1 다음 반응형