原创
Generate复用语句仿真时添加信号到波形窗口问题
问题描述:
Verilog使用Gnerate+for循环复用逻辑,在添加每个复用模块里的信号在ModelSim波形窗口进行观测的时候,发现添加失败。一般的添加信号do命令格式如下:
- add wave -noupdate -format Logic /cs_sortmerger_stack_tb/tb/scan_timesup_flag
- #add wave -noupdate -format Literal -radix hexadecimal /cs_sortmerger_stack_tb/stack_Inst/rdempty_l
- #add wave -noupdate -format Literal -radix hexadecimal /cs_sortmerger_stack_tb/stack_Inst/rdempty_r
但是如果是复用模块,那么do命令格式就是这样的:
- add wave -noupdate -format Literal -radix hexadecimal {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/sflag}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/empty1}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/empty2}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq1}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq2}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq1_reg}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/rdreq2_reg}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/merged_en1}
- add wave -noupdate -format Logic {/cs_sortmerger_stack_tb/tb/level1_merger[0]/level1_merger_Inst/merged_en2}
- 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条评论)
登录后参与讨论