我们为什么要输出fsdb格式的波形文件的, 原因之一是fsdb文件比较小, 其二是该格式可以由Debussy读取,以便使用Debussy进行代码分析.
我们要输出fsdb的话, 要通过PLI 来调用Debussy的系统函数.
关于PLI, 在此不再赘述: 请看帖子
PLI文档 : http://bbs.dicder.com/thread-380-1-1.html
首先, 我们建立一个工作目录
$> mkdir work
$> cd work
然后新开一个teminal窗口, 找到Debussy的安装目录. 进入/share/PLI/, 在该目录下有很多版本的目录,选择一个属于你的NC版本的目录, 比如nc51, 然后选择你的操作系统, 如LINUX,(换而言之, 现在处于/share/PLI/nc51/LINUX) 之后你会发现:
nc_loadpli1/ nc_shared/ pli.a veriuser.c
把这些目录及文件拷贝到 work目录下.
免编译
如果你不需要添加其他的系统函数, 那么直接可以用nc_loadpli1 下debpli.so 文件.
使用方法:
$> ncverilog +access+wrc +loadpli1= ./nc_loadpli1/debpli.so : debpli_boot rtl.files
当然在testbench文件中要写上你所希望调用的debussy 提供的函数, 基本的如:
$fsdbDumpfile("wave.fsdb");
$fsdbDumpvars(6, tb);
需编译
如果你已经对veriuser.c进行了修改, 那么首先把veriuser.c 编译为veriuser.o文件.
cc -KPIC -c veriuser.c -I${CDS_INST_DIR}/tools/verilog/include
之后连接
ld -G veriuser.o pli.a -o debussypli.so
使用方法:
$> ncverilog +access+wrc +loadpli1= ./debussypli.so : debussy_bootstrap rtl.files
当然在testbench文件中要写上你所希望调用的debussy 提供的函数, 基本的如:
$fsdbDumpfile("wave.fsdb");
$fsdbDumpvars(6, tb);