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을 호출하겠다.
'SystemVerilog' 카테고리의 다른 글
[SystemVerilog] DPI의 심화 - Chandle이란? (1) | 2024.03.31 |
---|---|
[SystemVerilog] DPI의 심화(3) - data exchange (0) | 2024.03.31 |
[SystemVerilog] DPI의 심화(2) - pure와 context의 의미 (0) | 2024.03.31 |
[ SystemVerilog ] static변수와 함수의 의미, protected란? (0) | 2022.10.27 |
[SystemVerilog] Packed 와 Unpacked는 무슨 의미일까? (1) | 2022.10.19 |