verilog pli相关,请帮忙,谢~~!
开发环境如下:
os:xp sp2
modlesim: modlesim se 6.3f
我写了一个misctf的函数,声明:int clkReactive (int data, int reason),
s_tfcell veriusertfs[] = {
{usertask, 0, clkInit, 0, clkGen, clkReactive, "$clkGen"},
{0}
};
编译通不过,因为veriuser.h头文件中定义如下:
typedef PLI_INT32 (*p_tffn)();
typedef struct t_tfcell
{
PLI_INT16 type; /* USERTASK, USERFUNCTION, or USERREALFUNCTION */
PLI_INT16 data; /* passed as data argument of callback function */
p_tffn checktf; /* argument checking callback function */
p_tffn sizetf; /* function return size callback function */
p_tffn calltf; /* task or function call callback function */
p_tffn misctf; /* miscellaneous reason callback function */
char * tfname; /* name of system task or function */
.....................
}
我知道参数个数不对,肯定编译不过,但是我看网上一些源代码中checktf,sizetf misctf都是可以带参数的,也能编译通过,运行,不知道他们是怎么办的的,这个链接(http://www.project-veripage.com/bfm8051.php)上给的源代码中misctf中也是带参数的,同样是modelsim,不知道为啥人家就能运行....难道是版本的问题?
我想捕获reason_reactivate这个事件,所以想问问大家有没有类似的经历,怎么解决的...谢!!