我的 SystemVerilog 组件有一些自测试代码,我想确保我的测试涵盖所有内容,尤其是我的类中的失败案例。我所需要的只是行/分支覆盖,就像其他面向对象语言(如 Java)通常使用的一样。
我尝试使用 VCS(2012.06 版)覆盖,我发现它仅对 SystemVerilog 的支持有限,并且不支持对 SystemVerilog 类的任何覆盖。是否有任何模拟器或工具具有此支持?
我的 SystemVerilog 组件有一些自测试代码,我想确保我的测试涵盖所有内容,尤其是我的类中的失败案例。我所需要的只是行/分支覆盖,就像其他面向对象语言(如 Java)通常使用的一样。
我尝试使用 VCS(2012.06 版)覆盖,我发现它仅对 SystemVerilog 的支持有限,并且不支持对 SystemVerilog 类的任何覆盖。是否有任何模拟器或工具具有此支持?
SpringSoft 的 Certitude 工具(刚刚被 Synopsys 购买)是一个检查测试台有效性的工具。它本质上分析了您的测试台代码的覆盖率,并做了更多的工作。
http://www.springsoft.com/products/functional-qualification/certitude
2012/08/25
在另行通知之前,答案是:
不,没有工具/模拟器支持 SystemVerilog 类的线路覆盖。
我已经在 Mentor Questasim 模拟器中尝试过这个新功能。他们从 Modelsim/Questa 10.2 开始实现了 SV(systemverilog)类代码覆盖。
要在systemverilog 文件/类中激活该功能,您需要:
例子 :
vlog +cover my_design.sv
vsim –voptargs=+acc –coverage mydesign
vcover 可以采用以下规范。当没有规范时,+vcover 等价于“+vcover=bcesft”。
b — 收集分支统计信息。
c — 收集条件统计信息。仅收集 FEC 统计信息,除非指定了 -coverudp。
e — 收集表达式统计信息,仅收集 FEC 统计信息,除非指定了 -coverudp。
s - 收集语句统计信息。
t - 收集切换统计信息。如果在别处指定了“x”,则覆盖
x - 收集扩展切换统计信息。如果在其他地方指定了“t”,则优先。
f — 收集有限状态机统计信息。
我找到了 Covered,但我自己没有使用它。它是开源的,这是一个优点,但似乎自 2010 年以来就没有开发... :-/