DPI基础知识

在2003年IEEE 1800 SV LRM 3.1a中提出了一种直接编程语言接口DPI(Direct Programming Interface),SystemVerilog DPI(直接编程接口)是将SystemVerilog与外部语言连接的一个接口;DPI能够更简洁的连接C/C++或者其他非verilog编程语言,只要使用 import 声明和使用,导入一个C子程序,就可以像调用SystemVerilog中的子程序一样来调用该C子程序;

DPI由两层组成:SystemVerilog层和外部语言层,两层都彼此隔离,实际使用哪种编程语言作为外语是透明的,与此接口的SystemVerilog端无关;理论上外部语言可以是C,C ++,SystemC以及其他语言。但是现在,SystemVerilog仅为C语言定义了一个外部语言层,也就是说目前 DPI 只支持 C;

来看下面一个简单的例子:

module test;
	import "DPI-C" pure function void from_c();//导入外部c 

	initial begin
		$display("Entering in sv initial block");
		#20;
		from_c();
		#5;
		$display("Exiting from sv initial block");
	end
	
endmodule

外部的C :

#include 

猜你喜欢

转载自blog.csdn.net/bleauchat/article/details/124994332