引言
本文介绍了一个最简单的例子,实现再sv中使用c函数,同时在c中使用sv中定义的task,编译器使用的是vcs
sv里的代码
sv想要引用c语言的函数,需要通过 import "DPI-C"的方式将c函数导入当前作用域,C语言与SV关于函数参数的映射关系可以参考绿皮书。

c代码
由于c函数中是不能添加延迟的,所以我们通过调用sv中的task来实现添加延迟的功能,将sv中的task导出供C模块使用用到的是export “DPI-C” task

vcs需要添加如下参数(c文件跟sv文件混在一起编译)

仿真结果
