请教fsdb波形matlab字符串产生波形命令的问题

->【Xilinx技术小组】
使用了$fsdbDumpfile和$fsdbDumpvars两个函数,但是,warning如下: # Warning: VCP7050 dct_tb.v : (73, 39): Non-standard system task enable: $fsdbDumpfile. # Warning: VCP7050 dct_tb.v : (74, 26): Non-standard system task enable: $fsdbDumpvars. 该怎么操作呢?各种仿真波形文件
一、仿真波形文件介绍
1. Wlf文件:WLF波形日志文件,是modelsim的专用文件。
这个wlf文件只能是由modelsim来生成,也只能通过modelsim来显示。
在用modelsim做仿真时,仿真结束都会生成一个*.wlf的文件(默认是vsim.wlf)。
下次就可以通过通过modelsim直接打开这个保存下来的波形。
vsim -view vsim.wlf -do run.do
其中run.do中的内容为要查看的波形信号。要强调的是不是一个通用的文件文件格式。
2.VCD文件:VCD 是一个通用的格式。
VCD文件是IEEE1364标准(Verilog&HDL语言标准)中定义的一种ASCII文件。
可以通过Verilog&HDL的系统函数&$dumpfile,$dumpvars&等来生成。
我们可以通过$dumpvars的参数来规定我们抽取仿真中某个特定模块和信号的VCD数据。
它主要包含了头信息,变量的预定义和变量值的变化信息。正是因为它包含了信号的变化信息,就相当于记录了整个仿真的信息。
可以用这个文件来再现仿真,也就能够显示波形。
另外我们还可以通过这个文件来估计设计的功耗。
因为VCD是&Verilog&HDL语言标准的一部分,因此所有的verilog的仿真器都要能实现这个功能。
因此我们可以在verilog代码中通过系统函数来dump&VCD文件。
另外,我们可以通过modelsim 命令来dump VCD文件,这样可以扩展到VHDL中。
具体的命令:
vcd file myfile.vcd vcd add /test/dut/*
这个就生成一个含dut下所有信号的VCD数据信息。我们在使用来进行仿真
vsim -add wave /*;run -
&注意:WIF:波形中间格式;WLF:波形日志文件。由于在ModelSim下只能打开VCD文件
使用ModelSim行命令vcd2wlf将VCD文件转化为WLF文件&。
VCD文件生成
在testbench中加入:
$dumpfile("tb.vcd");
$dumpvars();
&3.FSDB文件:fsdb文件是verdi使用一种专用的数据格式。
类似于VCD,但是它是只提出了仿真过程中信号的有用信息,除去了VCD中信息冗余,就像对VCD数据进行了一次huffman编码。
因此fsdb数据量小,而且会提高仿真速度。
我们知道VCD文件使用verilog内置的系统函数来实现的,fsdb是通过verilog的PLI接口来实现的,&$fsdbDumpfile,$fsdbDumpvars&等。
另外,在VCS仿真器中还有一种VCD+的数据格式VPD,详细情况参照VCS的使用。
&Testbench中加入:
$fsdbDumpfile("tb.fsdb");
$fsdbDumpvars();
4、shm&是Cadence公司 NC verilog 和Simvision支持的波形文件,实际上 .shm是一个目录,其中包含了.dsn和.trn两个文件。
5、vpd&是Synopsys公司 VCS DVE支持的波形文件,可以用$vcdpluson产生。
二、波形文件的具体生成
阅读(...) 评论()Debussy&FSDB&Verdi(4)
fsdbDumplimit - 限制FSDB文件size
-- $fsdbDumpvars([&level&], &scope | signal&*)
fsdbDumpfile - 指定FSDB文件名
-- $fsdbDumpfile(“&FSDB name&”)
fsdbDumpvars - Dump指定的变量
fsdbDumpSingle - Dump指定的信号
fsdbDumpvariable - Dump指定的VHDL变量
fsdbSwitchDumpFile - 将dumping切换到另一个FSDB文件
-- $fsdbSwitchDumpFile(“&new FSDB name&”)
fsdbAutoSwitchDumpfile - 限制文件大小并在数据量过大时自动创建新的FSDB文件
-- $fsdbAutoSwitchDumpfile(&file size&, “&FSDB name&”,& number of file&)
fsdbDumpflush - Force to Dump Result to FSDB file
fsdbDumpMem - Dump 指定的memory的内容
-- $fsdbDumpMem(&reg name&, [&start addr&, [&size&]])
$fsdbDumpon - 打开 FSDB dumping
$fsdbDumpoff - 关闭 FSDB dumping
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1952次
排名:千里之外
转载:45篇
(10)(36)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'&reference :&/weiqi7777/p/
&&&&&&&&&对于编写的systemverilog代码,在linux下,可以使用vcs编译,但是编译的时候,要注意,要加入几个选项。
&&&&&&&&&整个过程,linux使用的是64位的redhat,vcs使用的是vcs2015,verdi使用的是verdi2015。
&&&&&&&&&如以下的systemverilog代码。
&&&&&&&&&其中router_test_top.sv是顶层的代码。
&&&&&&&&&使用命令
&&&&&&&&&&&&&&&&&&&vcs&&-sverilog&&router_test_top.sv –full64 –debug_all +incdir+./ -y ./ +libext+.sv+.v –P ${VERDI_HOME}/share/PLI/VCS/LINUXAMD64/novas.tab ${VERDI_HOME}/share/PLI/VCS/LINUXAMD64/pli.a
&&&&&&&&&其中:
&&&&&&&&&-sverilog&:&表示vcs编译,支持systemverilog
&&&&&&&&&router_test_top.sv:&&表示指定的顶层是&router_test_top.sv
&&&&&&&&&-full64:&&当系统是64位,需要此选项,否则编译会出错
&&&&&&&&&-debug_all:&开始调试功能,这样才能在生成的simv中看波形
&&&&&&&&&+incdir./+:&&将当前目录&加入&`include&的搜索路径
&&&&&&&&&-y&&./:&&将当前目录加入搜索路径,这样在顶层中调用的module才会被找到
&&&&&&&&&+libext+.sv+.v:&&指定文件,这里表示指定后缀为.sv和.v的文件
&&&&&&&&&-P:&指定使用的PLI,这里指定verdi下的PLI,因为verdi是需要fsdb文件来显示波形的,而fsdb文件的生成,需要系统函数(如$fsdbDumpfile,$fsdbDumpvars等等),而这些系统函数,vcs中是没有的,但是在verdi的PLI中有,所以这里需要指定一下。
&&&&&&&&&执行完毕后,就会生成&simv了。但是别忘记要执行以下simv,因为执行来,才会生成fsdb文件。
&&&&&&&&&生成fsdb后,就可以用verdi打开了。
&&&&&&&&&Verdi软件,需要源代码以及fsdb文件。
&&&&&&&&&命令:
&&&&&&&&&&&&&&&&&&&verdi -sv -f filelist –ssf test.fsdb
&&&&&&&&&其中:
&&&&&&&&&&&&&&&&&&&-sv:&表示&Verdi&软件&要支持systemverilog
&&&&&&&&&&&&&&&&&&&-f filelist:&&源代码的文件列表
&&&&&&&&&&&&&&&&&&&-ssf test.fsdb:&&指定fsdb文件
&&&&&&&&&而源代码的文件列表:
&&&&&&&&&执行后,就启动verdi了。
&&&&&&&&&将上述的命令,封装成makefile
&&&&&&&&&以后,只需要将objs的变量修改下,修改为当前设计的顶层。然后直接make命令,就可以对systemverilog代码进行编译,然后仿真,最后启动verdi查看波形。
本文已收录于以下专栏:
相关文章推荐
1,假设有三个top.sv
1.可仿真的Verilog文件
通常是写一个module.v文件,然后写一个testbench即module_tb.v文件,该文件中例化module。可仿真的Verilog文件是指testbench...
In many customer engagements, I need to establish a basic set of principles of SOA. The following se...
             最近,在64bit的LINUX(cent os 6.4)上安装好,synopsys的VERDI和VCS后,写好MAKEFILE脚本,在运行的时候总...
首先搭建好vcs和Verdi都能工作的环境,主要有license问题,环境变量的设置。在220实验室的服务器上所有软件的运行环境都是csh。所以,所写的脚本也都是csh的语法。
生成波形...
(1)首先编写makefile文件
     vcs -f ./filelist.f -R -fsdb -full64 -l analyze.log
     verdi -f...
程序人生 | 如果不从事编程,我可以做什么?作者:下一个丶奇迹
如果有一天不做编程了,我能做什么?或许,我会去开一家类似猫的天空之城一样的书店,天天在书香中度过,谈笑有鸿儒,往来无白丁,一定是很美...
第一篇:勿忘初心,继续coding
第二篇:编程路上,送给处于迷茫中的你和自己
第三篇:编程路上,对于迷失者的一些小小建议
第四篇:如果不从事编程,我可以做什么?
在校期间踏入工作的不到五年时间里,曾...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 波形产生器 的文章

 

随机推荐