vcs如何将simv.vdb生成网页版的报告
时间: 2023-11-21 09:05:57 浏览: 46
在VCS中,可以使用`urg -dir simv.vdb -format html`命令将simv.vdb生成网页版的覆盖率报告。具体步骤如下:
1. 在编译Verilog代码时,需要添加`-debug_all`参数,以便VCS生成调试信息并生成simv.vdb文件。
2. 运行仿真测试并生成覆盖率数据,可以使用如下命令:
```
./simv -cm line+cond+fsm+tgl
```
其中,`-cm`参数用于指定覆盖率信息的类型,这里使用了line(语句覆盖率)、cond(分支覆盖率)、fsm(状态机覆盖率)和tgl(时序覆盖率)。
3. 使用`urg`命令生成覆盖率报告,同时使用`-format html`参数指定生成的格式为HTML,如下所示:
```
urg -dir simv.vdb -format html
```
4. 生成的HTML报告将会保存在当前目录下的`urgReport`文件夹中,可以使用浏览器打开查看。
需要注意的是,VCS中的覆盖率工具虽然可以生成HTML格式的报告,但生成的报告可能不够美观,也不够易于理解。如果需要更加专业的覆盖率报告,可以考虑使用其他第三方工具,如Cobertura、JaCoCo等。
相关问题
vcs将simv.vdb生成网页版的报告的Makefile命令
以下是一个使用Makefile生成网页版覆盖率报告的示例:
```
# 编译Verilog代码并生成simv.vdb文件
vcs -debug_all -sverilog -full64 -f filelist.f
# 运行仿真测试并生成覆盖率数据
./simv -cm line+cond+fsm+tgl
# 生成HTML格式的覆盖率报告
urg -dir simv.vdb -format html
# 将报告文件移动到report目录下
mv urgReport report
.PHONY: clean
clean:
rm -rf simv* csrc *.daidir report
```
上述Makefile中,首先使用`vcs`命令编译Verilog代码,并生成`simv.vdb`文件。然后运行仿真测试并生成覆盖率数据。接着使用`urg`命令生成HTML格式的覆盖率报告,并将报告文件移动到`report`目录下。最后定义了一个`clean`目标,用于清理编译生成的文件和覆盖率数据。
可以在命令行输入`make`命令执行上述Makefile,即可完成编译、仿真、覆盖率分析和报告生成。
假设在vcs上生成了一个simv.vdb,但是他包含了tb的代码覆盖率,如何在生成覆盖率报告的时候,将tb的代码覆盖率去掉,只生成dut的代码覆盖率
在生成覆盖率报告时,可以通过使用 JaCoCo 的命令行工具来筛选出需要的代码覆盖率信息。具体步骤如下:
1. 使用 JaCoCo 的命令行工具来合并所有的 .exec 文件。例如,可以使用以下命令来合并所有的 .exec 文件:
```
java -jar jacococli.jar merge file1.exec file2.exec --destfile merged.exec
```
其中 `jacococli.jar` 是 JaCoCo 的命令行工具,`file1.exec` 和 `file2.exec` 是需要合并的 .exec 文件,`merged.exec` 是合并后的 .exec 文件。
2. 使用 JaCoCo 的命令行工具来生成覆盖率报告。例如,可以使用以下命令来生成 HTML 格式的覆盖率报告:
```
java -jar jacococli.jar report merged.exec --classfiles classes --sourcefiles src --html report
```
其中 `merged.exec` 是合并后的 .exec 文件,`classes` 是编译后的类文件目录,`src` 是源代码目录,`report` 是生成的 HTML 报告目录。
3. 在生成覆盖率报告时,可以使用 `--include` 和 `--exclude` 参数来筛选需要的代码覆盖率信息。例如,可以使用以下命令来只生成 `dut` 相关的代码覆盖率报告:
```
java -jar jacococli.jar report merged.exec --classfiles classes --sourcefiles src --html report --include dut* --exclude tb*
```
其中 `--include dut*` 表示只包含类名以 `dut` 开头的类,`--exclude tb*` 表示排除类名以 `tb` 开头的类。
通过这种方式,就可以在生成覆盖率报告时,只包含需要的代码覆盖率信息。