方案1:
1.
准備c文件, cprog.c:
#include<stdio.h> void echo(char* str){ printf("chaogang test\n"); printf("test str %s\n",str); }
2.
通過vcs去編譯該c文件:
3.
在sv中想要使用cprog.c中定義的echo函數的地方,通過DPI機制導入,然后可以直接調用:
方案2:
將寫好的c文件編譯成共享庫,在執行simv的時候通過 -sv_root -sv_lib 參數告知simv 共享庫的路徑
生成共享庫方法如下:
gcc -fPIC -Wall -c cprog.c gcc -fPIC -shared -o cprog.so cprog.o
這種情況在vcs編譯階段不需要編譯c代碼:
在執行simv的時候通過-sv_lib 參數傳遞共享庫。共享庫文件名為cprog.so,但傳遞-sv_lib參數時不帶.so后綴。 -sv_root參數可以指定共享庫的路徑,在共享庫與simv不在同一目錄時需要-sv_root指定共享庫所在路徑。