如何在verilog中制作VPI?

时间:2015-12-24 05:52:23

标签: verilog

当我在网上浏览时,我发现了这个问题how to use verilog PLI communicate with c by ncverilog compiler

我跟着最后一个答案,但它不起作用。 其中一个错误是hello_vpi.c:" vpi_user.h没有这样的文件或目录" hello_vpi.c 12:错误' s_vpi_systf_data'未声明(首次使用此功能) ....

我应该解决什么?

更新

@Greg ::我的模拟器是Incisive15.10.002和Linux6.0。

我遇到了一些问题,就像我这样运行gcc hello_vpi.c -fPIC -shared -o hello_vpi.so -I /cadence/Incisive/Incisive15.10.002/tools.lnx86/include然后我收到了一些消息。

  

hello_vpi.c:Inf​​unction' register_hello' :
  hello_vpi.c:16:警告:从不兼容的指针类型中分配。

当我运行此命令时,我收到了一些错误消息  ncverilog test.v +access+r -v hello_vpi.so

  

...
   * W.LIBNOU:图书馆" hello_vpi.so但未使用。
  ...
  $你好;
  无法识别的系统任务或功能
  ...
  libvpi.so无法打开shaed对象文件:没有这样的文件目录或文件无效ELFCLASS64库
  ...
  * E,MSSYSTF:在仿真期间注册并在仿真中使用的用户定义的系统任务或函数($ hello)在仿真期间尚未注册。

我不知道我该怎么做?

1 个答案:

答案 0 :(得分:2)

删除-I

之后的空格
gcc hello_vpi.c -fPIC -shared -o hello_vpi.so -I/cadence/Incisive/Incisive15.10.002/tools.lnx86/include

您也可以尝试:(注意:我猜测Incisive附带的gcc的路径)

/cadence/Incisive/Incisive15.10.002/tools.lnx86/bin/gcc hello_vpi.c -fPIC -shared -o hello_vpi.so

如果ncverilog test.v +access+r -v hello_vpi.so不起作用,请尝试:

ncverilog test.v +access+r -loadvpi ./hello_vpi.so:register_hello