ARM技术论坛
直播中

糖栗子

8年用户 666经验值
擅长:MEMS/传感技术
私信 关注
[经验]

关于SpinalHDL中的验证覆盖率收集简单说明

在做RTL仿真验证时,覆盖率收集往往是我们在验证中需要注意的地方,本篇就SpinalHDL中的验证覆盖率收集做一个简单说明。
sbt配置
   在SpinalHDL里进行仿真验证时,我们的待测试代码会生成Verilog/Systemverilog电路交由Verilator进行仿真,而激励则由scala本身提供,两者之间通过verilator的VPI进行通信交流。SpinalHDL覆盖率的收集在SpinalHDL 1.4.2中开始支持,在我们通过sbt构建项目时,build.sbt的依赖项配置如下:
开启覆盖率收集功能
    有注意上文所给例子的小伙伴或许已经注意到,我们已经开启了覆盖率收集:

  SpinalHDL通过指定withCoverage选项来开启覆盖率收集。在《SpinalHDL—基于Scala的测试框架》一文中我们拍完仿真测试用例后在相应目录下每个teseCase会生成一个.dat文件:
   我们一共跑了五个testCase,因而生成了五个.dat文件。
生成html报告
   由于Verilator生成的.dat文件无法直观阅读,这里我们需要将.dat文件合并并生成html文件。这里需要安装lcov。

最终会生成一个coverage的文件夹:

打开index.html文件即可看到代码覆盖率:

原作者:玉骐

更多回帖

发帖
×
20
完善资料,
赚取积分