전체 글(43)
-
[UVM] uvm 자주사용하는 매크로 정리 | uvm_do_on_with, start_item, uvm_object_utils ...
✅ 1. 시퀀스 실행 관련 매크로매크로설명예제uvm_do(seq)시퀀스를 생성하고 실행uvm_do(my_seq);uvm_do_with(seq, { ... })시퀀스를 constraint 조건으로 랜덤화 후 실행uvm_do_with(my_seq, { mode == 1; });uvm_do_on(seq, sequencer)특정 시퀀서 위에서 실행uvm_do_on(my_seq, p_sequencer);uvm_do_on_with(seq, sequencer, { ... })시퀀서 + constraint 지정uvm_do_on_with(my_seq, p_sequencer, { addr == 32'h1000; });📌 이 매크로들은 내부적으로:create()randomize()start() 을 자동으로 처리해 줌.✅ ..
2025.04.07 -
[UVM] run_phase, build_phase | 시퀀스 구조와 랜덤 변수 공유 | config_db 사용법 등
UVM을 실무에서 사용하다 보면 문서에서 나오는 표준적인 구조 외에, 실제 동작에서 헷갈리거나 예상과 다른 결과를 마주할 때가 많다. 나도 그랬다. 이 글은 내가 경험한 시행착오와 그 과정에서 정리된 내용을 바탕으로, UVM 시퀀스 실행 구조, 랜덤 변수 처리, config_db를 통한 값 공유 방식에 대해 설명한다.시퀀스는 언제, 어떻게 실행되는가?UVM에서 시퀀스는 .start()를 호출해야만 실제로 실행된다. 실행되면 내부적으로는 다음과 같은 순서로 진행된다.randomize() 자동 호출pre_body() → body() → post_body() 순서로 실행이 전체 흐름은 run_phase() 안에서 이루어져야 하며, build_phase()에서는 시퀀스를 create()할 수는 있지만, rand..
2025.04.04 -
[Python] 파이썬의 함수 def, 클래스 class 상속에 대하여
1. 함수와 def 키워드함수란?반복되는 작업이나 특정 기능을 하나의 코드 블록으로 묶어 놓은 것입니다.def 키워드def를 사용해 함수를 정의합니다.def greet(name): return f"안녕하세요, {name}님!"print(greet("홍길동")) # 출력: 안녕하세요, 홍길동님!2. 클래스와 class 키워드클래스란?객체(인스턴스)를 만들기 위한 설계도입니다.클래스 안에는 변수(속성)와 함수(메서드)가 들어갑니다.class 키워드class를 사용해 클래스를 정의합니다.class Person: def __init__(self, name, age): self.name = name # 인스턴스 변수 self.age = age def introduce(..
2025.03.17 -
[Python] 파이썬 라이브러리 pandas 기본 개념, 함수 및 메소드 정리
1. 기본 개념DataFrame:2차원 테이블 형태의 데이터 구조. 여러 열(Series)로 구성됨.엑셀의 시트와 비슷하게, 행과 열로 데이터를 관리할 수 있음.Series:DataFrame의 한 열을 의미하는 1차원 배열 같은 객체.단순 리스트와 달리 각 데이터 값에 인덱스(레이블)가 포함되어 있음.딕셔너리의 key 값이 열, 그 열의 데이터는 value가 됨예제:import pandas as pddata = {"Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35]}df = pd.DataFrame(data)print(df)출력: Name Age0 Alice 251 Bob 302 Charlie 35df["Name"]은 "..
2025.03.02 -
[Linux] 정규표현식 총 정리 | Regular Expression, 메타문자, 문자 그룹핑, 문자열 패턴
이전 글2024.04.07 - [명령어] - [Linux] 자주사용하는 cat, grep 명령어 | 옵션 정리 [Linux] 자주사용하는 cat, grep 명령어 | 옵션 정리cat (catenate) : 사슬로 잇다, 연결하다; 암기하다 간단하게 파일을 출력하거나 바로 추가 및 작성할 수 있는 명령어 cat 사용법 cat 파일명 // 기존에 해당 파일일 있으면 터미널 창에 파일 내용을 바wolleyneerg.tistory.com1. 정규 표현식의 기본 개념목적: 문자열 내에서 특정 패턴(예: 이메일 주소, 전화번호, 특정 단어 등)을 검색하거나, 해당 패턴을 기준으로 문자열을 분리, 치환, 추출할 때 사용합니다.표현 방식: 일반 텍스트와 메타문자(특수문자)를 조합하여 패턴을 표현합니다. 2. 주요 구성..
2025.02.16 -
[UVM] new 생성자와 void 함수의 차이점 | 객체 초기값 설정
new 생성자와 일반적인 void 함수는 몇 가지 중요한 차이점이 있습니다. 근본적으로 new 함수는 **생성자(constructor)**이며, 객체가 생성될 때 자동으로 호출되어 초기화 작업을 수행하는 특별한 역할을 합니다. new 생성자와 void 함수의 차이점1. new 생성자란?정의: new는 클래스에서 객체를 생성할 때 호출되는 **생성자(constructor)**입니다.자동 호출: 객체 생성 시 자동으로 호출되므로, 생성자는 특별히 호출하지 않아도 됩니다.역할: 객체 생성 시 필요한 초기화 작업을 담당합니다. 변수 초기화나 메모리 할당 같은 작업을 포함할 수 있습니다.반환 타입 없음: new 생성자는 반환 타입이 없으며, 특정 값을 반환하지 않습니다.class MyClass; int valu..
2024.10.26 -
[UVM] super란? | 상위 클래스 메소드 호출, 상위 클래스의 생성자 호출
UVM에서 super란?super는 UVM 및 SystemVerilog에서 상위 클래스의 메서드나 생성자를 호출하기 위해 사용되는 키워드입니다. 상속 구조에서 상위 클래스의 동작을 그대로 유지하면서 추가적인 기능을 구현하는 데 유용합니다. 이를 통해 테스트벤치의 유연성을 확보하고, 코드 재사용성을 높일 수 있습니다.1. super의 역할super는 하위 클래스에서 상위 클래스의 메서드를 호출하여, 상위 클래스의 기본 동작을 유지하면서 확장된 기능을 구현하도록 돕습니다. 이 기능을 활용하면 테스트 환경을 유연하게 설정할 수 있어, 재사용 가능한 코드를 작성하는 데 유리합니다.2. super가 실행되는 방식a) 상위 클래스의 메서드 호출 super는 상속받은 클래스에서 상위 클래스의 메서드를 호출할 때 사용..
2024.10.26 -
[UVM] Factory란? | 오버라이드 차이
UVM Factory란?UVM Factory는 동적 객체 생성과 클래스 오버라이딩을 지원하는 매커니즘으로, 테스트벤치의 유연성, 확장성, 재사용성을 크게 향상시킵니다. 이를 통해 동일한 테스트벤치 코드에서 다양한 시나리오를 쉽게 적용할 수 있습니다. UVM Factory는 객체를 생성하는 시점에서 특정 클래스를 사용자가 지정할 수 있도록 하며, 상위 클래스의 인스턴스를 하위 클래스의 인스턴스로 대체(overriding)하는 기능을 제공합니다. UVM Factory의 이점유연성: 클래스 오버라이드를 통해 다양한 시나리오에 맞게 동적으로 객체를 변경할 수 있습니다.확장성: 기본 클래스를 재사용하면서도 필요한 부분만 변경하여 새로운 기능을 쉽게 추가할 수 있습니다.재사용성: 동일한 코드베이스에서 다양한 설정으..
2024.10.26