原创 Modelsim仿真查看内部信号

2014-7-1 20:45 1287 14 14 分类: FPGA/CPLD

http://blog.csdn.net/xianrudu/article/details/8177965 转帖

 查看内部信号

如果使用以上的方法,打开的信号波形默认都是testbench里面定义的。有时候需要查看模块内部信号,也是很方便的。

可以在sim窗口中一层一层找到的所在的instance,选中,这样就会在Object上窗口出现所用到的信号。选择需要的拖到Wave窗口即可。

也可以在Transcript窗口输入命令add wave /testbench_name/design_unit_name/signal_name。这个名字是路径的形式,一层一层写下去的。如果不知道,可以把鼠标悬浮在Object对应的信号上,会出现这个信号的完整路径。

4. 写Modelsim的script

但是这两种方法都比较麻烦,因为每次从Quartus中调用Modelsim的时候都会进行默认配置,这就需要每次都要重新添加信号,调整顺序。对了,还得先选择simulate->start simulation,添加信号后,再选择simulate->run -all。

其实,根据上面写的命令,可以把我么想要的添加信号操作都放在一个脚本文件(.do)中,然后在Quartus的仿真器配置中,勾选use script to set up simulation,并选择script文件路径。这样每次每次启动的时候,都按照文件中的一条一条命令执行了,省了很多事。

关于脚本文件的写法,也不用那么复杂。仿真的时候,有个默认的脚本文件,在仿真文件目录下,.do的那个。例如我的文件viterbi_run_msim_rtl_vhdl.do的内容如下:

  1. transcript on  
  2. if {[file exists rtl_work]} {  
  3.    style="white-space:pre">vdel -lib rtl_work -all  
  4. }  
  5. vlib rtl_work  
  6. vmap work rtl_work  
  7.   
  8.   
  9. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi/pkg_param.vhd}  
  10. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi/pkg_trellis.vhd}  
  11. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi/dec_viterbi.vhd}  
  12. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi/dec_viterbi_tb.vhd}  
  13.   
  14.   
  15. vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L cycloneive -L rtl_work -L work -voptargs="+acc" dec_viterbi_tb  
  16.   
  17.   
  18. add wave *  
  19. view structure  
  20. view signals  
  21. run -all  

看到了倒数第四句,意思是添加所有信号,这时我们就可以按照需要添加我们需要的信号。改后成为:myscript.do

  1. transcript on  
  2. if {[file exists rtl_work]} {  
  3.     vdel -lib rtl_work -all  
  4. }  
  5. vlib rtl_work  
  6. vmap work rtl_work  
  7.   
  8. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi_ver2/pkg_param.vhd}  
  9. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi_ver2/pkg_trellis.vhd}  
  10. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi_ver2/dec_viterbi.vhd}  
  11. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi_ver2/acs.vhd}  
  12. vcom -93 -work work {C:/Users/Du/MyWork/WiFi-FPGA/viterbi_ver2/dec_viterbi_tb.vhd}  
  13.   
  14. vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L cycloneive -L rtl_work -L work -voptargs="+acc" dec_viterbi_tb  
  15.   
  16. add wave /dec_viterbi_tb/u1/clk_in  
  17. add wave /dec_viterbi_tb/u1/clk_out  
  18. add wave /dec_viterbi_tb/u1/cnt_dec  
  19. add wave /dec_viterbi_tb/u1/gen_acs__63/inst_acs/inrecv  
  20. add wave /dec_viterbi_tb/u1/gen_acs__63/inst_acs/inprepm_high  
  21. add wave /dec_viterbi_tb/u1/gen_acs__63/inst_acs/inprepm_low  
  22. add wave /dec_viterbi_tb/u1/gen_acs__63/inst_acs/v_high  
  23. add wave /dec_viterbi_tb/u1/gen_acs__63/inst_acs/v_low  
  24. add wave /dec_viterbi_tb/u1/gen_acs__63/inst_acs/outpm  
  25. add wave /dec_viterbi_tb/u1/gen_acs__63/inst_acs/outsp  
  26.   
  27. add wave /dec_viterbi_tb/u1/pmm  
  28.   
  29. view structure  
  30. view signals  
  31. run -all  

这样只要在Quartus中设置了这个myscript.do 文件,程序运行的时候就可以自动按照里面的命令执行了。

也可以在Transcript窗口输入do myscript.do执行。这样还有一个好处就是,不用每次综合完,都要关一下仿真器,再重新启动,只需要综合完,在Modelsim的命令窗口输入个do myscript.do 就好了。我是这样做的,感觉方便了不少,不知道还有没有更好的方法。

文章评论0条评论)

登录后参与讨论
我要评论
0
14
关闭 站长推荐上一条 /2 下一条