Questa仿真器中cross coverpoint的option.at_least=0未捕获致bin缺失
Questa中Cross Coverpoint设置
option.at_least=0未达预期覆盖率的排查方案 针对你遇到的问题,整理了几个实用的排查和解决方向:
- 确认原始信号Coverpoint的覆盖状态
Cross Coverpoint的bin覆盖率依赖于原始信号各自的Coverpoint是否已覆盖所有可能取值。如果signal_a_1bit或signal_b_1bit的某个取值(0或1)未被采集到,对应的Cross Bin也不会被标记为覆盖——哪怕设置了option.at_least=0。建议显式为原始信号定义Coverpoint并强制生成所有可能的bin:
covergroup test_cg; cp_a: coverpoint signal_a_1bit { option.auto_bin_max = 2; // 确保生成0、1两个bin } cp_b: coverpoint signal_b_1bit { option.auto_bin_max = 2; } test_atleast_cp: cross cp_a, cp_b { option.at_least = 0; } endgroup
检查覆盖率数据的有效性
确保仿真结束后正确导出了覆盖率数据库(.ucdb文件),并且Questa可视化工具加载的是最新生成的文件。旧数据可能导致显示结果与当前仿真状态不符。排查Bin过滤规则
检查Cross Coverpoint是否被误添加了ignore_bins或illegal_bins,这些规则会直接排除部分Bin,导致无法达到100%覆盖。显式定义Cross Bin
如果上述操作无效,可以尝试在Cross Coverpoint中显式列出所有4个Bin,再设置option.at_least=0:
test_atleast_cp: cross signal_a_1bit, signal_b_1bit { bins all_cross = binsof(signal_a_1bit) intersect binsof(signal_b_1bit); option.at_least = 0; }
内容的提问来源于stack exchange,提问作者Sharafat Hussain
相关产品推荐
相关产品推荐

