modelsim 保存波形测试文件仿真时无波形图案并且value为U怎么回事?在线等

ModelSim VCD的运用
&&&& 一直想写关于ModelSim的一些文章,刚好前几天帮老师做ppt,学习了下VCD的运用,这里写写学习心得,希望对学习VCD的同学能有所帮助/ VCD:Value Change Dump VCD文件是IEEE1364标准中定义的一种ASCII文件,可以用过Verilog命令或者系统函数命令来生成/ 运用:记录仿真中波形的变化、再现仿真,显示波形、作为测试文件的激励/ 还有在找资料的过程中说可以算功耗,我没算过,所以不清楚/ 手册上说还能记录端口驱动的强弱等,后仿真的用的比较多/所以这篇文章就主要关心前三个运用,尤其是后两个/ 不多说,先给命令吧: cd installDir/examples vlib work vlog cla4.v cla4_tb.v vopt cla4_tb +acc -o cla4_tb_opt vsim cla4_tb_opt vcd file myvcdfile.vcd vcd add /cla4_tb/* run quit -sim这里写了一个4位超前进位的加法器(cla4),cla4_tb是测试文件/ 代码是从手册上来的,前一段是对.v的文件编译、优化然后运行,后一段是用来产生VCD文件的,注意第一行路径,不是常用的&\&,而是&/&,这个我也不是太明白为什么,如果有知道的看到文章告诉我一声哈/ 运行完上面的命令,就能再相应的文件夹里找到myvcdfile.vcd这个文件,说明一下:文件的每一部分由$end结束,对应一个VCD命令,比如文件头中$date...$end、$timescale...$end等;每一个信号由!到~的字符或组合表示(内码33~126);模拟过程中的各个数值变化均以#time开始,如#10表示#10时间点,#0表示信号变化到0/ 有了.vcd文件,要显示波形,用vcd2wlf命令,命令格式是vcd2wlf name.vcd name.wlf 前一个vcd的name是刚生成的vcd文件名,后一个波形的文件可以自己取,运行完这个命令就可以产生一个.wlf文件,用ModelSim工具栏view&&wave查看 vcd文件作为激励源仿真分两种,一种是作为输入值来仿真设计的顶层模块;一种是用vcd文件里记录的输出值去替代指定模块中的instance/ 前一种的命令举例: vsim -vcdstim cla_4.vcd cla4 add wave /* run 200 后一种的命令举例 vcd dumpports -vcdstim -file proc.vcd /top/p/* vcd dumpports -vcdstim -file cache.vcd /top/c/* vcd dumpports -vcdstim -file memory.vcd /top/m/* vsim top_opt -vcdstim /top/p=proc.vcd -vcdstim /top/c=cache.vcd -vcdstim /top/m=memory.vcd quit -sim 这个例子中,/top/p, /top/c,和 /top/m在仿真中被相应的vcd文件的输出值替代/ 前一种验证过,后一种没有验证/ VCD文件还可以用系统命令产生,具体来说,常用的有下面的命令: $dumpfile(); 打开一个VCD数据库用于记录 $dumpvars(); 选择要记录的信号 $ 将VCD数据保存到磁盘 $ 停止记录 $ 重新开始记录 $dumplimit(); 限制VCD文件的大小(以字节为单位) $ 记录所有指定的信号值 比如,我在Verilog代码中可以加入 initial begin $dumpfile (&cla_4.vcd&); $dumpvars (0,U_1.a,U_1.b,U_1.cin); $dumpvars (0,U_1.cout); $dumpvars (0,U_1.sum); #200 $ #100 $ end U_1是测试模块名,a b cin cout sum都是信号名 写到这想要介绍的基本上介绍完了,总结一下吧,从一开始看tcl到学习VCD,感觉和以前用的ModelSim思路上有一些出路,学习ModelSim时是一套思路,真正用起来会是另一套思路/ 比如你写好代码,做了仿真,代码传到下一个人手里,下一个人要仿真,就不去写那些测试代码了,用VCD文件当激励源、把命令做成.do文件,这样,很容易看到仿真结果/ 以上是一点自己的看法,原创的,第一次写这种关于技术的文章,有些不对的地方或者理解错的欢迎高手指正/
请各位遵纪守法并注意语言文明在ModelSim模拟波形
Welcome, Guest. Please
or .Did you miss your
Login with username, password and session length
Pages: [1]
Topic: 在ModelSim模拟波形 &(Read 3310 times)
dsp_forall
on: February 23, :37 AM »
任何一个可以帮助查看的ModelSim模拟波形假设我想查看200赫兹的正弦波输入数据??谢谢
« Reply #1 on: February 23, :37 AM »
如果U大约在FPGA设计仿真ModelSim的谈话绝不u能做到这一点,必须是数字信号, &以您的设计, &可以代替ü根据与releated数字信号模拟信号......
dsp_forall
« Reply #2 on: February 23, :37 AM »
确定, &如果我想给.....相当于模拟数字信号, &也可取得这些数字信号..感谢事先
« Reply #3 on: February 23, :37 AM »
u能张贴关于您的设计更多的细节?
dsp_forall
« Reply #4 on: February 23, :37 AM »
假设我想过滤说杉木与截止频率250赫兹, &如果我请输入数据的三个频率之说,200赫兹和500赫兹1000Hz我可以只一个频率是200赫兹输出。我希望看到的ModelSim
« Reply #5 on: February 23, :37 AM »
确定plz纠正我, &如果我错了üü了数字滤波器,输入信号是数字有不同的频率和u要模拟不同程度的ModelSim的频率信号?
« Reply #6 on: February 23, :37 AM »
dsp_forall
« Reply #7 on: February 23, :37 AM »
« Reply #8 on: February 23, :37 AM »
ü没有尝试使该时钟(从的ModelSim)&变化的责任和期间所需的频率输入信号或ofcourse的SYS时钟必须在更高的频率则U可以把更多的封锁, &迫使输入的时钟分频器到所需的频率cotrlled
dsp_forall
« Reply #9 on: February 23, :37 AM »
见我们不能强迫一个时钟, &但方波频率, &具有无限的核查问题....
« Reply #10 on: February 23, :37 AM »
让我提醒ü ü ....作出的过滤器, &必须与数字滤波器, &因此ü不能采用一个compsite频率不经过ADC的模拟信号通过直接向数字滤波器注意, &数字滤波器的滤波能力方波
dsp_forall
« Reply #11 on: February 23, :37 AM »
确定是我干的......我知道, &数字滤波输入的是数字形式(例如8位)...我所做的是在MATLAB的复合信号, &得到样本..样本, &以二进制转换(8位它),并应用于滤波器的输入。现在我changet的格式在ModelSim模拟波形窗口, &我可以查看模拟波形。 。设置像素设置根据您的选择得到顺利输出..有一个好时间, &享受
Pages: [1]QUARTUSⅡ10波形仿真(ModelSim)入门指南_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
QUARTUSⅡ10波形仿真(ModelSim)入门指南
上传于|0|0|文档简介
&&QUARTUSⅡ10波形仿真(ModelSim)入门指南,适合第一次使用QUARTUSⅡ10的初学者,主要介绍ModelSim-Altera 6.5e (Quartus II 10.0)
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢波形文件的三个术语:VCD(Value Change Dump)文件,fsdb(Fast Signal DataBase)文件,WLF(Wave Log File).
对于WLF波形日志文件,只要我们使用过modelsim,应该都很熟。但我们在波形窗口观察波形时,仿真结束时都会生成一个*.wlf的文件(默认是vsim.wlf)。我们下次就可以通过通过modelsim直接打开这个保存下来的波形。vsim -view vsim.wlf -do run.do 其中run.do中的内容为要查看的波形信号。要强调的是这个wlf文件只能是由modelsim来生成,也只能通过modelsim来显示。不是一个通用的文件文件格式。而下面要说明的VCD 却是一个通用的格式。
VCD文件是IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件。可以通过Verilog HDL的系统函数$dumpfile,$dumpvars等来生成。我们可以通过$dumpvars的参数来规定我们抽取仿真中某个特定模块和信号的VCD数据。它主要包含了头信息,变量的预定义和变量值的变化信息。正是因为它包含了信号的变化信息,就相当于记录了整个仿真的信息。我们可以这个文件来再现仿真,也就能够显示波形。另外我们还可以通过这个文件来估计设计的功耗。解决了前一段时间一直不知道这个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 -
fsdb文件是verdi使用一种专用的数据格式,类似于VCD,但是它是只提出了仿真过程中信号的有用信息,除去了VCD中信息冗余,就像对VCD数据进行了一次huffman编码。因此fsdb数据量小,而且会提高仿真速度。我们知道VCD文件使用verilog内置的系统函数来实现的,fsdb是通过verilog的PLI接口来实现的。$fsdbDumpfile,$fsdbDumpvars等
另外,在VCS仿真器中还有一种VCD+的数据格式VPD,详细情况参照VCS的使用。
旗下网站:
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号}

我要回帖

更多关于 modelsim显示模拟波形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信