DVE 如何查看代码覆盖率和功能覆盖率

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#sv and DUT paths
RTL = ./router.v
SVTB = ./router_top.sv ./router_if.sv ./router_tb_pkg.sv ./router_tb.sv
SEED = 1
 
 
#code coverage command
CM = -cm line+cond+fsm+branch+tgl
CM_NAME = -cm_name simv
CM_DIR = -cm_dir ./covdir.vdb
 
compile:
     vcs  -l vcs.log -sverilog -full64  -debug_access+all \
   $(SVTB) $(RTL) \
     -top router_top \
     ${CM} \
     ${CM_NAME} \
     ${CM_DIR}
 
 
 
rung:
    ./simv ${CM}  -gui -l run.log
     
 
 
cov:
    dve -full64 -covdir *.vdb &
 
 
help:
    @echo ===========================================================================
    @echo  "                                        "
    @echo  " USAGE: make target <SEED=xxx>                                          "
    @echo  "                                        "
    @echo  " ------------------------- Test TARGETS --------------------------------"
    @echo  " test       => Compiles TB and GOOD DUT files, runs the simulation.     "
    @echo  " bad        => Compiles TB and BAD DUT files, runs the simulation.      "
    @echo  " compile    => Compiles the TB and DUT.                                 "
    @echo  " rung       => Runs the simulation.                                     "
    @echo  " template   => Builds ntb templates                                     "
    @echo  " dve        => Runs dve in post-processing mode                         "
    @echo  " debug      => Runs simulation interactively with dve                   "
    @echo  " clean      => Removes all intermediate simv and log files.             "
    @echo  "                                                                        "
    @echo  " -------------------- ADMINISTRATIVE TARGETS ---------------------------"
    @echo  " help       => Displays this message.                                   "
    @echo  " copy       => Copies lab files from previous working  directory        "
    @echo  " mycopy     => Copies lab files from previous solution  directory       "
    @echo  " solution   => Copies all files from current solutions directory        "
    @echo  " nuke       => Erases all changes. Put all files back to original state "
    @echo  "                                                "
    @echo ===========================================================================

 1、对于代码覆盖率 要在编译时添加命令

1
2
3
CM = -cm line+cond+fsm+branch+tgl  # 表示要收集代码覆盖率的类型
CM_NAME = -cm_name simv    # 表示生成的覆盖率文件名
CM_DIR = -cm_dir ./covdir.vdb # 表示覆盖率要存储到哪个文件夹下面<br>2、在跑仿真的时候要填加上命令
1
./simv ${CM}  -gui -l run.log 即:
1
./simv -cm line+cond+fsm+branch+tgl -gui -l run.log   # 注意参数-cm line+cond+fsm+branch+tgl的顺序 必须紧跟在./simv 后面
1
然后使用make cov 打开 查看代码覆盖率和功能覆盖率:

 

 

1
<br><br><br>
posted @   GalaxyStar  阅读(972)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示