dpi (3) 썸네일형 리스트형 [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의 심화(2) - pure와 context의 의미 SystemVerilog DPI 심화 개념 Pure Import한 function을 pure로 선언하면 여러모로 최적화된 사용이 가능하다. 시뮬레이션 성능이 개선될 수 있으나 몇몇 제한이 걸린다. Function은 아래 조건을 충족할 때만 pure 선언이 가능하다. 1) 함수의 result가 오직 input에만 관계 있다. 2) 함수를 호출해도 side effect가 없다. 값을 직간접적으로 바꾸지 않는다. 다른 함수를 호출하지 않는다. File operation을 하지 않는다. Read/Write 동작이 없다. 3) output이나 inout argument가 없다. output이나 inout argument가 있을 경우, 이 함수는 output/inout argument를 바꿀 수 있으므로 side .. [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); systemver.. 이전 1 다음