问题描述
我试图理解为什么当两个语句的条件表达式相同时,两个SystemVerilog Assign语句的语句覆盖范围可能会彼此不同。
请考虑以下内容:
如图所示,这两个语句的条件表达式相同,即 _T_6 。
但是,语句的命中数(即语句覆盖率)不同(请注意最左边的数字)。
我期望RTL仿真器应该在_T_6的值更改时对两个语句进行相等次数的评估。 RTL仿真器在仿真过程中如何处理这些语句?
解决方法
只要右侧的信号发生变化,连续赋值语句就会得到评估。因此,即使for-loop
不变,条件表达式的非活动分支上的更改仍会导致求值。
如果_T_6
是一个参数而不是一个信号,那么有些优化可能会减少条件表达式并消除一些求值。