VCS工具生成RTL覆盖率:自动忽略assign 0的toggle覆盖率
在VCS工具中生成RTL覆盖率时,可以通过使用Covergroup和Coverpoint来实现自动忽略RTL中assign到0的部分的toggle覆盖。\n\n首先,您需要创建一个Covergroup来定义要收集的覆盖率数据。在Covergroup中,您可以使用Coverpoint来指定要采集的信号或变量,并设置覆盖率类型为toggle覆盖。例如,假设您要收集一个名为"signal"的信号的toggle覆盖率数据,可以按以下方式定义Covergroup和Coverpoint:\n\nsystemverilog\ncovergroup toggles;\n coverpoint signal {\n type : toggle;\n }\nendgroup\n\n\n接下来,您需要在测试中实例化该Covergroup,并为其创建一个对象:\n\nsystemverilog\ntoggles cg_toggle = new;\n\n\n然后,在测试的适当位置,您可以使用cg_toggle.sample()方法来采样覆盖率数据,并将其添加到覆盖率数据库中:\n\nsystemverilog\ncg_toggle.sample();\n\n\n通过在测试中的适当位置多次调用cg_toggle.sample(),您可以收集不同时间点的覆盖率数据。\n\n最后,在运行仿真之前,您需要将VCS工具的选项配置为自动忽略RTL中assign到0的部分。您可以使用-cm_tgl_assign 0选项来实现这一点。例如,在运行VCS仿真时,可以使用以下命令行选项来启用覆盖率并自动忽略RTL中assign到0的部分:\n\n\nvcs -cm line+cond+fsm+tgl+branch+assert -cm_tgl_assign 0 <其他选项>\n\n\n这样,VCS工具将自动忽略RTL中assign到0的部分,并将其排除在toggle覆盖率的统计之外。\n\n请注意,具体的命令行选项和配置可能因VCS版本而异,因此请根据您使用的VCS版本和文档进行相应的配置。
原文地址: https://www.cveoy.top/t/topic/pKhM 著作权归作者所有。请勿转载和采集!