VCS 查看代码覆盖率

代码覆盖率

代码覆盖率测试一般包括行覆盖,条件覆盖,FSM覆盖,翻转覆盖率等。在不同的代码级别有不同的覆盖率,Behavioral code包含line+condition+path(branch)+FSM;在RTL code包含line+condition+path+toggle+FSM;Gate-level Code只包含Toggle覆盖率。

What is Code Coverage?

  • Have all the line of the RTL been stimulated?
  • Have all the states of a FSM been exercised?
  • Have all the conditions of an “if” statement in the RTL simulated?
  • Have all the blocks of a “case” statement been exercised?

What code Coverage is NOT?

  • Functional Coverage, which answer questions such as:
  • Have all possible combinations of instructions been verified on a processor?
  • Have all the “Corner-cases” been tested for a design?
  • Did all asynchronous interrupt occur when a cache miss was being handled by the processor?

如果用VCS去查看代码覆盖率,只需在VCS 编译和执行时加入代码覆盖率参数: -cm line+cond+fsm+branch+tgl

VCS 查看代码覆盖率

VCS 会在工作目录下默认生成simv.vdb 文件夹,其中包含了代码覆盖率相关的信息,可以用以下命令来查看代码覆盖率:

dve –covdir *.vdb &

 

问题:

用什么方法和工具来解决功能覆盖率问题?

原文地址:https://www.cnblogs.com/dpc525/p/5071841.html