본문 바로가기

전체 글

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