IT/ASIC | FPGA 2024. 5. 23.
UVM DPI (Direct Programming Interface) 기능 기초 예제
UVM DPI (Direct Programming Interface) 라이브러리는 UVM 환경에서 C 함수 호출 등을 가능하게 하는 라이브러리입니다. 이를 통해 SystemVerilog 테스트벤치와 외부 C 코드를 연동할 수 있습니다. 구체적인 예를 들어보겠습니다.예제: 외부 C 함수 호출아래는 SystemVerilog 코드에서 외부 C 함수를 호출하는 예제입니다. 이 예제에서는 UVM DPI 라이브러리를 사용하여 외부 C 함수를 호출하여 데이터를 처리합니다.C 함수 정의먼저, 외부 C 함수가 정의되어 있습니다. 이 함수는 두 개의 정수를 더하는 간단한 함수입니다.// add.c#include int add(int a, int b) { return a + b;}DPI 임포트SystemVerilog ..
IT/리눅스 2024. 5. 23.
리눅스에서 큰 폴더 찾기: du 명령어 활용법
서버 공간이 꽉 차서 어디서부터 청소를 시작해야 할지 모르시겠다고요? 'du' 명령어와 몇 가지 유용한 옵션을 활용하면, 가장 많은 공간을 차지하는 파일과 폴더를 빠르게 찾아낼 수 있습니다. 이제 du 명령어를 좀 더 빠르게 실행해 보는 방법을 소개합니다!참고글은 아래와 같습니다.리눅스 폴더별 용량 확인(du 명령어) (tistory.com)빠른 'du' 명령어로 리눅스에서 대형 폴더 식별하기빠르게 큰 폴더 찾기du -ah --max-depth=1 | sort -rh | head -n 5이 명령어는 다음과 같은 기능을 수행합니다:-ah: 파일과 폴더의 용량을 사람이 읽기 쉽게 표시합니다.--max-depth=1: 현재 디렉토리 바로 아래에 있는 항목들만 조사하여 속도를 향상시킵니다.sort -rh: 결과..
IT/ASIC | FPGA 2024. 5. 22.
SystemVerilog에서 패키지를 사용하는 장점
SystemVerilog에서 패키지를 사용하는 것은 매우 중요한 설계 및 조직 전략이며, 패키지를 사용하지 않을 때와 비교해 여러 장점이 있습니다. 아래에서는 패키지를 사용하는 것과 사용하지 않는 것의 차이점 및 패키지 사용의 주요 이점을 설명합니다.패키지를 사용하는 것과 사용하지 않는 것의 차이네임스페이스 관리: 패키지 사용: 패키지는 데이터 타입, 서브루틴, 파라미터 등을 포함할 수 있는 컨테이너 역할을 하며, 네임스페이스를 제공합니다. 이를 통해 다른 패키지나 모듈에서 동일한 이름을 사용하더라도 충돌 없이 관리할 수 있습니다.패키지 미사용: 이름 충돌의 가능성이 높아지고, 글로벌 스코프에서 모든 정의를 관리해야 하므로 복잡성이 증가할 수 있습니다.코드의 재사용성 및 모듈화: 패키지 사용: 관련된 기..
IT/파이썬 2024. 5. 21.
'\n'.join(str_buffer) 구문 설명 - join 자동 루프
'\n'.join(str_buffer) 구문은 Python에서 리스트를 돌면서 지정한 문자열을 붙여서 리턴하는 구문입니다.아래 코드를 보고 이해해 봅시다.result_script: 이 변수는 문자열들의 리스트를 담고 있습니다. 각 문자열은 스크립트의 한 줄을 나타냅니다.'\n'.join(result_script): 이 부분은 리스트에 있는 모든 문자열을 하나의 문자열로 결합합니다. 문자열들 사이에는 줄바꿈 문자(\n)가 들어갑니다. 결과적으로, 리스트의 각 요소(문자열)가 하나의 큰 문자열로 연결되고 각 요소는 새로운 줄에서 시작합니다.return '\n'.join(result_script): 이 코드는 결합된 문자열을 함수의 결과로 반환합니다. 이는 함수가 호출된 곳에서 해당 문자열을 사용할 수 있게 ..
IT/파이썬 2024. 5. 20.
파이썬 패턴 처리 기능 - 멀티라인 처리 예제
tcl 스크립트를 보다 보면 맨 마지막 "\" 를 입력하여 한줄짜리 명령을 다중 라인으로 처리하는 경우가 있다. 그리고 문법상으로 {, [, ( 이런 오픈 브레이스 이후의 멀티라인도 한 줄로 처리할 수 있도록 하는 것이 필요하다.이런 찾아내서 한줄로 만드는 코드 샘플을 보자.이 코드는 괄호 { } 사이에 있는 단어를 추출하는 기능을 포함하며, 줄 끝에 있는 \는 단순한 줄바꿈으로 처리하여 해당 줄을 다음 줄과 결합하지만, 공백 없이 연결합니다.import redef join_lines(lines): combined_lines = [] open_brackets = {'{': '}'} stack = [] current_line = "" for line in lines: ..
IT/파이썬 2024. 5. 17.
frozenset 의미와 사용 예제
마찬가지로, 클럭 관계를 정의하는 클래스를 제작하면서 나온 설명입니다. frozenset 의 의미와 용법 정도만 알면 큰 도움이 될듯, 원래 쓴 용도는 클럭 쌍이 순서는 의미가 없는 정보를 저장하기 위해서 코드를 생성했는데 frozenset 을 이용해서 찾아봤습니다. 참고하세요.frozenset은 파이썬에서 제공하는 불변(immutable) 집합 자료형입니다. frozenset은 일반적인 set과 동일한 기능을 제공하지만, 한 번 생성된 이후에는 변경할 수 없습니다. 이를 통해 변경되지 않아야 하는 데이터 구조를 표현할 수 있습니다.frozenset의 주요 특징불변성: frozenset은 생성된 이후 요소를 추가하거나 제거할 수 없습니다. 이로 인해 frozenset은 해시 가능하며, 딕셔너리의 키나 다..
IT/파이썬 2024. 5. 17.
@classmethod 사용 예
예제로 JSON 파일에서 어떤 데이터를 읽어와서 객체를 만드는 예제에서 설명을 가져왔습니다. 참고해서 보세요! 왜 사용하는지, 왜 써야 하는지 힌트가 되는 글입니다.import_from_file 메서드는 JSON 파일에서 데이터를 읽어와 ClockRelations 객체를 생성하는 메서드입니다. 이 메서드는 클래스 메서드 (classmethod)로 정의되어 있습니다. 클래스 메서드를 사용하는 이유와 해당 메서드의 작동 방식을 설명하겠습니다.import_from_file 메서드@classmethoddef import_from_file(cls, filename): with open(filename, 'r') as f: data = json.load(f) obj = cls(data['cl..
IT/ASIC | FPGA 2024. 5. 16.
UPF 파일 작성 방법 공부
주의!!! 내용이 실제 업무에 맞지 않을 수 있으므로 아래 내용을 토대로 실무에 적용을 하면 안됩니다. 아무런 책임이 없는 글입니다. 챗GPT는 실수를 허용합니다. ^^;;;UPF 파일을 작성하는 과정은 전적으로 수동으로 수행될 수 있습니다. 일반적으로 설계 엔지니어가 저전력 설계 요구사항을 기반으로 UPF 파일을 작성합니다. UPF 파일은 텍스트 파일 형식으로, 전원 도메인, 전원 스위치, 레벨 시프터, 전원 상태 등을 정의합니다.UPF 파일 작성 단계전원 도메인 정의: 설계의 각 부분이 어떤 전원 도메인에 속하는지 정의합니다.전원 스위치 정의: 전원 스위치를 정의하여 전원 도메인 간의 전원 공급을 제어합니다.레벨 시프터 정의: 서로 다른 전원 도메인 간의 신호 전송을 위해 레벨 시프터를 정의합니다.전..
IT/ASIC | FPGA 2024. 5. 16.
Netlist vs UPF 포함 Netlist - UPF 파일 소개 및 적용 방법
반도체 설계에서 넷리스트(Netlist)는 전자 회로의 연결 정보를 담고 있는 파일입니다. 넷리스트는 기본적으로 회로의 모든 소자와 그 연결 관계를 나열합니다. UPF(Universal Power Format)가 적용된 넷리스트는 저전력 설계를 위한 전원 관리 정보가 포함된 넷리스트입니다.UPF 파일 소개기본 넷리스트 예제먼저, 기본적인 넷리스트 파일을 살펴보겠습니다. 여기서는 간단한 AND 게이트 회로의 넷리스트를 예로 들겠습니다.기본 넷리스트 (basic_netlist.v)module simple_and ( input a, input b, output c); assign c = a & b;endmodule이 기본 넷리스트는 simple_and 모듈을 정의하고, 입력 a와 b를 논..
IT/파이썬 2024. 5. 16.
파이썬에서 파일 열기: `w`와 `wt` 모드의 차이점 및 한글 인코딩 처리
파이썬에서 파일을 열 때 사용하는 open() 함수는 다양한 mode 인자를 통해 파일을 읽기, 쓰기, 추가 등의 작업을 수행할 수 있습니다. 이 글에서는 w와 wt 모드의 차이점과 한글을 제대로 처리하기 위한 인코딩 옵션을 다루어 보겠습니다.w 모드와 wt 모드의 차이점w와 wt는 모두 파일을 쓰기 모드로 여는 것을 의미합니다. 하지만 두 모드 사이에는 약간의 차이가 있습니다.w 모드:파일을 쓰기 모드로 엽니다.파일이 이미 존재하면 그 내용을 모두 지우고 새로 작성합니다.파일이 존재하지 않으면 새 파일을 만듭니다.기본적으로 텍스트 모드로 파일을 엽니다.wt 모드:w 모드와 마찬가지로 파일을 쓰기 모드로 엽니다.t는 텍스트 모드를 의미합니다. 따라서 wt는 파일을 쓰기 모드로 텍스트 형식으로 연다는 것을..
IT/ASIC | FPGA 2024. 5. 14.
SDC 작성 하는 방법 - 글 정리중
SDC(Synopsys Design Constraints)에 대해 이해하고 작성해보기 글을 완성해보자.---title: "Synopsys Design Constraints (SDC) 이해하기"date: 2024-05-14author: "작성자 이름"categories: ["반도체 설계", "SDC", "EDA"]tags: ["SDC", "칩 설계", "전자설계자동화(EDA)"]---Synopsys Design Constraints (SDC) 이해하기이 블로그 포스트에서는 Synopsys Design Constraints(SDC)에 대해 탐구하고, SDC의 중요성과 효과적인 사용 방법을 알아보겠습니다.소개Synopsys Design Constraints(SDC)는 반도체 설계에서 중요한 역할을 하는 파일 ..
IT/ASIC | FPGA 2024. 5. 14.
LDRC 체크 - sdc 중심으로
논리 설계 규칙 검사(Logic Design Rule Checking, LDRC)는 논리 회로 설계가 특정 규칙과 제약 조건을 준수하는지 확인하는 과정입니다. LDRC 작업은 타이밍 분석, 클럭 도메인 교차, 설정 및 홀드 시간 검증, 그리고 논리적 일관성 검사를 포함합니다.아래는 예제 SDC(Synopsys Design Constraints) 파일을 사용하여 LDRC 작업을 수행하는 예제를 제공합니다. 이 예제는 특정 설계 규칙을 검증하는 데 필요한 내용을 포함합니다.1. SDC 파일 예제SDC 파일은 설계 제약 조건을 정의하는 파일입니다. 다음은 예제 SDC 파일입니다:# Define the clockcreate_clock -name clk -period 10 [get_ports clk]# Defin..
IT/ASIC | FPGA 2024. 5. 14.
GCA - Clock 관련 SDC 확인
칩 설계 및 합성 분야에서 "GCA"는 2가지 설명 버전 약자를 쓰게 되면 이래저래 상황에 따라 달리 쓰이니 자기 회사에 맞는 것을 제대로 물어보고 쓰자!Galaxy Constraint Analyzer"Galaxy Constraint Analyzer (GCA)"는 Synopsys의 EDA(Electronic Design Automation) 도구입니다. GCA는 설계 제약 조건을 분석하고 검증하는 데 사용되는 도구로, 특히 SoC(System on Chip) 설계에서 중요한 역할을 합니다. GCA는 Synopsys의 Galaxy Design Platform의 일부로, 설계의 타이밍, 전력, 전압 드롭 등을 분석하여 설계 품질을 향상시키는 데 도움을 줍니다.주요 기능과 목적제약 조건 관리:설계 제약 조건 ..