Hi,
I am trying to link a pli to my system verilog(vmm) based code in questasim 10.0c simulator.
I am able to compile “c” code and generate the “.o” file but at simulation,simulator giving warning “System task or function ‘$sup_drv’ is not defined.”.
I am unable to understand why simulator unable to recognize “$sup_drv”.So please give your input and correct me if have done something incorrect.
Providing command line used for compilation and simulation.
compile:
vlib mylib;
vmap work mylib;
vlog -mfcu -sv +incdir+$(VMM_HOME)/sv +incdir+ +incdir+…/qsim …/qsim/device_tb.sv;
gcc -c -g -I/tool/questa_sim/questasim/include …/pli/sup_drv.c;
ld -shared -E -o sup_drv.sl sup_drv.o
sim:
vsim -c -do $(DO_LIST) -pli ./sup_drv.sl
My c code snippet –
#include “veriuser.h”
#include “acc_user.h”
#include “vpi_user.h”
#include “svdpi.h”
int sup_drv_checktf (),sup_drv_calltf ();
s_tfcell veriusertfs = {
{usertask, 0, sup_drv_checktf, 0, sup_drve_calltf, 0, “$sup_drv”},
{0}
};
int sup_drv_checktf()
{
//some checks
}
int sup_drv_calltf()
{
char *sim_time;
char *mod_name;
int result;
acc_initialize();
//some operation
tf_putrealp(0,result);
return (0);
}
Thanks
Kiran