所谓PLI乃一装B技术而已,它是当年Verilog HDL语言诞生之时预留的一个接口,可以对接C/C++一类的外部语言,后来靠此发展出了systemC与systemVerilog。这些都是老黄历了,不提也罢,时代发展了,所谓长江后浪推前浪,前浪死在沙滩上。因此我们也没必要把孔老二拉出来唬人。因此,此专题,原创博文仅此一篇,算是祭文,以后还是老老实实学习诸如sc/sv一类的新生代语言吧!
在 Cadence环境中
工具: 1.Cadence_9.2 ncverilog,9.2版
2.Linux环境,gcc 4.1.2
cat hello.c
#include “veriuser.h” static PLI_INT32 hello() { printf(“Hello Everybody!You are great!\n”); };
注册函数 cat veriuser.c #include “veriuser.h” #include “vxl_veriuser.h” #include “hello.c”
s_tfcell veriusertfs[]={ {usertask,0,0,0,hello,0,”$hello”,0}, {0} };
头文件 veriuser.h vxl_veriuser.h 请在cadence安装目录下寻找对应的版本
cat Makefile all: @{MAKE} -s clean run clean: /bin/rm -rf *.log *.so run: ${MAKE} -s link cp link: gcc -shared -fPIC -o libpli.so veriuser.c hello.c cp: cp *.so ../
make后就得到了你所需的 libpli.so,然后将其填加在仿真器中
ncverilog \ +loadpli1=$PATH/libpli.so \ $OtherOption
然后运行等着看你的杰作吧!
ModelSim下的举例将再以后填加!稍安毋躁! |