原创 Generate复用语句仿真时添加信号到波形窗口问题

2021-6-28 16:07 3437 11 11 分类: FPGA/CPLD 文集: ModelSim
问题描述:
      Verilog使用Gnerate+for循环复用逻辑,在添加每个复用模块里的信号在ModelSim波形窗口进行观测的时候,发现添加失败。一般的添加信号do命令格式如下:
  1. add wave -noupdate -format Logic /cs_sortmerger_stack_tb/tb/scan_timesup_flag
  2. #add wave -noupdate -format Literal -radix hexadecimal /cs_sortmerger_stack_tb/stack_Inst/rdempty_l
  3. #add wave -noupdate -format Literal -radix hexadecimal /cs_sortmerger_stack_tb/stack_Inst/rdempty_r

但是如果是复用模块,那么do命令格式就是这样的:
  1. add wave -noupdate -format Literal -radix hexadecimal {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/sflag}
  2. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/empty1}
  3. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/empty2}
  4. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq1}
  5. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq2}
  6. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq1_reg}
  7. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq2_reg}
  8. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/merged_en1}
  9. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/merged_en2}
  10. add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/merged_en}
即信号部分必须使用大括号框起来。
另外,需要注意的是:generate语句本身产生的功能模块在ModelSim里面被识别为逻辑设计层次结构的一层,故在上述波形添加语句中“level1_merger”除了Inst一层外,上层还包裹了Generate实体一层,否则仿真的时候会提示找不到目标。

作者: coyoo, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1010859.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

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