어..? 이런걸 배웠었나?

응.. 괜찮아 회사는 오픈북이야

분류 전체보기 39

UVM create 와 Factory override (uvm_component_utils, uvm_object_utils)

UVM을 잘 모르고 사용할 때, 가장 많이 드는 의문점- uvm 클래스 정의할 때 왜 `uvm_component_utils나 `uvm_object_utils 같은 매크로를 사용하는거지? - uvm 클래스의 객체를 생성할 때 왜 create 와 같은 메소드를 써야하는 거지? ( 일반 시스템베릴로그 클래스의 객체랑 다르지 왜 ? ) 정답은 uvm 이란 프레임워크는 팩토리 패턴이란 디자인 패턴을 사용하기 때문이다. 팩토리패턴에 대해서 감을 잡고 싶다면? [SystemVerilog/UVM] Factory Pattern (팩토리 패턴)에 관하여. (tistory.com) [SystemVerilog/UVM] Factory Pattern (팩토리 패턴)에 관하여.Factory Pattern은 디자인 패턴이다. 0. ..

UVM 2024.11.02

2024 ARM Tech Symposia 를 다녀와서

2024 ARM Tech Symposia 를 다녀와서 짧게 적는 일기  회사 부서 선배분이 ARM Tech Symposia라는게 있다고 알려줘서 함께 다녀오게됐다. 특히 이번 암 테크 심포지아는 예년보다 사람들의 관심이 늘어 역대 최대 사전등록 참가자를 받았다고 했다. https://events.arm.com/TechSymposia Arm TechSymposia 2024Join us at Arm Tech Symposia to engage in ecosystem networking, hands-on workshops, and deep dive sessions led by Arm leadership and key partners. This extraordinary event spans four markets..

UVM 이란 무엇인가?

UVM 이란 무엇인가? UVM이란 Universal Verification Methodology의 약자로, 검증을 위한 프레임워크이다.검증을 위한 언어라고 많이들 착각하고 있으나, 검증 관련 언어는 systemverilog이다.UVM은 systemverilog로 작성된 클래스들의 패키지이다.(프레임워크란 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조이다. 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.) UVM의 전신은 OVM(Open Verification Methodology)이라고 한다.과거에는 EDA vendor사(시놉시스, 케이던스, 멘토)들이 독립적으로 검증 방법론을 개발해 왔던 것과 달리,UVM은 Accellera standard로서, 여러 벤더사들이 공동 지원하..

UVM 2024.09.28

1. 디지털 시스템 디자인 서론

디지털 시스템은 현대 사회에서 만연하다. 개인 pc나 통신스위치 같은 시스템은 누가 봐도 분명한 디지털 시스템 기술이다. 그런데 디지털 테크놀로지에는 이것들 말고도 다양한 애플리케이션들이 있다. 몇가지 예를 들자면.. 1. 전화통화 통화를 하는 동안 당신의 목소리는 디지털화되어 디지털 통신 장치를 통해 전송된다. 2. 음성파일 당신이 듣는 디지털 음원 파일은 디지털의 형태로 녹음되어 가공된다. 에러 보정과 음질 향상을 위해 디지털 로직을 거친다. 3. 텔레비전 당신이 텔레비전을 감상할때에도, 영상은 디지털 포맷으로 전송되며, 디지털 기기에 의해 가공된다. 4. DVD dvd는 영상을 디지털로 녹화하여 압축한 것이다. (compress) 당신이 dvd나 영상 스트리밍을 할 때, 디지털 압축을 해제(deco..

Digital Design 2024.07.10

Digital Circuit의 Static Path Delay 계산하기 (3) Fan-In, Logical Effort의 정의

지난 시간 Fan-out이 path delay에 미친 영향에 대해서 공부했다. 이번 시간에는 Fain-In이 Path Delay에 미치는 영향에 대해서 공부한다. Fan-Out은 로직게이트의 출력이 다음 단에서 최대 몇개의 게이트 입력을 구동할 수 있는가였습니다. Fan-In은 로직게이트의 입력단에 최대로 연결될 수 있는 갯수입니다. 즉, 게이트 입력의 갯수(?) Fan-In은 드라이빙게이트의 output resistance를 증가시킴으로써 딜레이에 영향을 줍니다.. 우리의 모든 딜레이 계산은 unit-size inverter를 기준으로 합니다. 따라서 fan-in의 영향을 받은 게이트가 unit-size inverter 대비 얼만큼 딜레이가 증가했는지를 모델링하기 위해, 우선 게이트의 output dr..

Digital Design 2024.06.22

CMOS gate의 static delay (2) - Fan-Out / Driving Larg Loads

지난 시간엔 CMOS 로직 게이트 딜레이, 즉 propagation delay에 대해서 공부했어요. 그리고 단위 사이즈 인버터의 딜레이를 계산하는 예제까지 접해보았죠. 오늘은 팬아웃, 그리고 큰 로드를 구동하기 위해서 게이트 스테이지를 나누면 좋은 이유를 공부할 거예요. fan-out 이란?Fan-Out 이란? Fan Out 정의 fan out 은 로직 게이트에서 하나의 출력이 (최대) 몇 개의 입력을 구동할 수 있는지를 말한다. 이때 회로의 동작을 저해하지 않는 한에서 갯수를 의미한다. Fan-Out 4 인버터 예제지난 시간에 공부했던 size 1의 single inverter를 고려해보자. unit size inverter란 Width Wp 가 Kp만큼 사이징 되어 Kp x Wn 이었고 ( 따라서 p..

Digital Design 2024.06.16

CMOS gate의 static delay (1) - Propagation delay

#delay시리즈#DegitalDesign디지털 회로 설계에서 회로의 기능 구현 (Function) 뿐만 아니라 Delay(Timing)와 Power 또한 Digital System의 스펙이다. 예를 들어 Adder를 설계한다고 하면,Output 은 두 input의 Sum이라는 기능적인 스펙은 반드시 갖춰야 할 뿐만 아니라 아웃풋이 1ns내에 stable 해져야 한다각 add 연산은 2pJ 를 넘으면 안된다  디자인의 스펙이다.  delay시리즈에서는 CMOS logic circuit의 delay를 추정하기 위한 여러 방법들을 유도할 것이다.  그 여정의 첫번째 포스팅!! 함께 하시죠!!Propagation Delay우선 우리는 logic path(쉽게 말해 로직 연산을 수행하는 signal path)의..

Digital Design 2024.06.07

[UVM] UVM subscriber의 개념 잡기

Observer Design Pattern * observer = 관찰자 UVM subscribe의 개념은 "Observer Design Pattern"(Twitter Design Pattern) 이라는 디자인패턴으로부터 출발한다. 디자인 패턴이란,  소프트웨어 개발 과정에서 빈번히 발생하는 문제들에 대한 일반적인 해결책들을 분류해놓은 것이다. ( 정형화된 문제 해결 방식? 정형화된 코딩 패턴? 정도로 생각하면 된다. )  Observer Design Pattern은 Twitter Design Pattern으로도 불리는데, 트위터에서 트윗을 전송하면 당신의 팔로워들이 그 트윗을 볼 수 있다는 점이 이 패턴의 동작 방식과 유사하다.  일단 유저가 트윗을 보내면, 해당 유저의 팔로워가 누군지, 팔로워들이 해..

UVM 2024.04.28

[SystemVerilog] DPI의 심화 - Chandle이란?

Chandle이란? 외부 C/C++ 자료구조에 access하기 위한 (sv에서 사용되는) pointer이다. systemverilog 디자인에서 다른언어의 data 구조를 조작하기 위해 사용되는 pointer이다. Chandle은 사용전에 반드시 null로 initialize 되어야 한다. chandle 선언 및 초기화 chandle myPointer = null; Chandle의 사용 myPointer = some_dpi_function(); some_dpi_function이라는 dpi 함수를 호출하고, 그 함수가 반환하느 pointer를 myPointer라는 chandle pointer var에 assign 함. 이제 이 pointer를 사용해서 c자료구조의 값을 바꿔볼 것임. (* (my_data_..

SystemVerilog 2024.03.31

[SystemVerilog] DPI의 심화(3) - data exchange

SystemVerilog와 C 사이의 data exchange는 DPI-C interface를 통해 이루어진다. 이번 게시글에서는 SV가 C 함수를 호출한다는 것 자체보다, SV에서 C로 함수 호출시 argument를 건네줌으로써 data를 교환할 수 있다는 데에 초점을 맞추어서 본다!! Data Mapping between SV and C 대부분의 SystemVerilog Data Type들은 C언어와 직접 대응되는 data type이 있는 반면, 그렇지 않은 데이터 타입들(4 state variable이나 array)들은 DPI-C나 API에 define된 특정 type을 필요로 한다.. ( 기존의 SystemVerilog Data Type이 아니라, user-defined? DPI에서 새롭게 정의된..

SystemVerilog 2024.03.31