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

2021-6-28 16:07 3560 12 12 分类: FPGA/CPLD 文集: ModelSim
问题描述:
      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

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

    PARTNER CONTENT

    文章评论0条评论)

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