基于VCS使用PLI在verilog中调用C程序
程序员文章站
2024-03-21 17:19:52
...
本文介绍一种在verilog中,运用PLI机制调用C程序的方法,其中的C程序,可以接受传参,且可以有返回值,仿真器选择的VCS。
- 编写C程序
#include <stdio.h> //#include "vpi_user.h" //使用PLI有两种机制:TF/ACC机制,或者VPI机制 void hello_calltf(int user_data, int reason) { int var,result; var = tf_getp(1);//取$hello调用时的第一个参数传递值 result = var; tf_putp(0, result);//实际返回值 0; }
- 建立链接,下面两种方式任选其一即可
- tab模式,编写xxx.tab文件,内容参考:
$hello size=32 call=hello_calltf //如果期望调用的C程序有返回值,则必须声明size=xxx,PLI视其为function,否则视其为task(无返回值)
- 注册模式,麻烦,略。
- tab模式,编写xxx.tab文件,内容参考:
- 仿真选项
vcs hello.c -P xxx.tab +vpi -CFLAGS ...
大功告成!
参考资料: