在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7660|回复: 4

求助:PLI使用中的报错

[复制链接]
发表于 2009-6-3 16:18:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最近自学,在搞PLI,参考一些稀少的材料,做了个最简单的pli,可是还是报错……
废话说少,如下:
c代码  hello.c
#include "veriuser.h"
static PLI_INT32 hello()
{
    io_printf("Fuck PLI!\n");
    return 0;
}
s_tfcell veriusertfs[]={
  {usertask,0,0,0,hello,0,"$hello"},
  {0}
};
v代码  hello.v
module hello;
    initial $hello;
endmodule

生成hello.dll文件copy到modelsim的win32文件夹下

modelsim下输入:vsim -c -pli hello.dll hello
报错:
# ** Error: (vsim-PLI-3001) Failed to find init_usertfs function or veriusertfs array or vlog_startup_routines array in PLI object file "C:\Modeltech_6.0\win32/hello.dll".

呼唤明白人解释,自己琢磨实在是没有头绪……唉……
发表于 2013-4-28 08:32:13 | 显示全部楼层
楼主这个问题解决了没呢?我也遇到了同样的问题~~~~
发表于 2013-7-2 15:07:55 | 显示全部楼层
我也遇到这个问题,请问找到原因了吗?
发表于 2014-9-17 10:39:36 | 显示全部楼层
如果使用的是vs的C++环境,可以在每个函数前面加:extern "C" __declspec(dllexport)
修改后的代码是:
extern "C" __declspec(dllexport)PLI_INT32 hello()
{
        setbuf(stdout,(char*)(0));
        printf("hello pli");

        return 0;
}

extern "C" __declspec(dllexport)  s_tfcell veriusertfs[] = {
        {usertask, 0, 0, 0, hello, 0, "$hello"},
        {0} /* last entry must be 0 */
};
发表于 2014-9-20 22:11:01 | 显示全部楼层
不错的资料
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-14 14:31 , Processed in 0.024938 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表