본문 바로가기

SystemVerilog

[SystemVerilog] DPI의 개념 (1)

DPI 란?

Direct Programming Interface.

SystemVerilog와 다른 프로그래밍 언어(C, C++ SystemC등) 간 통신을 할 수 있도록 도와주는 인터페이스이다.

 

 

DPI Import and Export Methods

Import Method

다른 프로그래밍 언어로 구현된 함수를 SV 코드에서 호출하는 메소드

Export Method

SV로 구현된 메소드를 다른 프로그래밍 언어에서 호출하는 메소드.

 

의의 : 위 메소드들에 argument를 pass & return함으로써, 서로 다른 두 언어간 data를 주고 받을 수 있다.!!

 

 

 

Import Declaration

import "DPI-C" function int calc_parity(input int a);

 

systemverilog에서 제공해주는 DPI-C 인터페이스를 사용하여, C 함수를 sv에서 호출할 수 있게 한다.

calc_parity라는 c함수는 int를 return

SV Caller (함수 호출한 측)는 int a를 pass by value로 argument를 pass 한다. 

 

Export Declaration

export “DPI-C” my_cfunction = function myfunction;

c에서 sv함수 my_function을 호출하겠다.