2016-05-22 43 views
0

我知道可以通过Verilog编程接口(VPI)更改信号和变量的值。也可以通过在其上执行vpi_put_value(...)来触发指定事件。通过VPI调用任务或功能

是否有可能调用函数或启动任务?

回答

0

VPI不允许您从C调用任务或函数,但DPI​​会执行此操作。从技术上讲,DPI只允许您从SystemVerilog调用的C例程中调用SystemVerilog例程。 DPI具有导入/导出机制,需要维护您的SystemVerilog代码创建的所有线程的进程标识。

+0

这不是我要找的。通过DPI意味着我必须导出该功能。我想要做的是获取类对象的句柄,并使用VPI调用它的函数(即反射)。 –

+0

您无法跨语言边界传递类句柄。你需要做的是创建一个可以导出的包装函数,该函数可以调用类方法。 –