- 11
- 0
- 约2.84千字
- 约 6页
- 2017-12-07 发布于浙江
- 举报
SOC验证NC_code coverage 幻灯片
使用NcVerilog跑代码覆盖率 1.运行testcase的方法: (1)实现testcase 连续运行的run脚本的格式一般为: #!/bin/sh ncvlog -f ../filelist/filelist.v ncelab -coverage all TESTBENCH ncsim -input ./sim.tcl TESTBENCH 把要编译的文件include到filelist.v文件中。把要运行的testcase include到testcase_file.v中,再把testcase_file.v include到testbench中,这样可以实现testcase 的连续运行,最后做出总的coverage report。 加coverage的方法: [1]、首先用ncvlog命令编译所有的.v文件,包括源文件、testbench.v和所有的bfm [2]、用命令形式:ncelab –coverage all top.v elaborate [3]、仿真,命令是ncsim,在这个地方把建立coverage环境和把仿真过程中要加的几种coverage写在一个脚本文件里,我们写的是:sim.tcl: Coverage –setup –dut CFHC_TOP –testname cf_test Coverage –code Coverage –fsm Coverge –toggle Run Exit 仿真直接用ncsim –input ./sim.tcl TESTBENCH就可以了 [4]、最后我们直接把ncvlog,ncelab,ncsim都写在脚本run里,直接在unix命令行里敲run就可以了 [5]、最后产生的覆盖率文件:CFHC_TOP.dgn, cf_test.cov, cf_test.fsm, cf_test.tog TESTBENCH.U_TOP.mst 生成report [1]、生成block,exppression和fsm: 1)用iccr命令进入report tool 2)用load_design加载仿真产生的.dgn文件 3)用load_coverage把包含block,exppression,fsm覆盖率的.cov和.fsm文件加载进去 4)用report_summary或report_detail生成summary report和detail report,在detail report中会有具体的没有覆盖到的地方的详细说明 [2]、生成toggle: 1)用togreport命令进入report tool 2)用load_master把.mst文件加载进去 3)用load_test把.tog文件加载进去 4)用report_summay或report_detail生成report,跟结果跟上面类似。 (2)实现testcase 单个运行的run脚本的格式: #!/bin/sh echo \`include \../testcase166/$1.v\ testcase.v sed s/\/wave.shm/\/wave$1.shm/g ../testbench/testbench.v testbench.tmp cp ../testbench/testbench.v ../testbench/testbench.bak cp testbench.tmp ../testbench/testbench.v rm -f testbench.tmp ncverilog -f ../filelist/filelist.v +access+rwc -l ../log/log/$1.log mv ../testbench/testbench.bak ../testbench/testbench.v rm -f testcase 运行testcase用这样的命令:run tc0001.v 这样生成的coverage report是每个testcase生成一个,要想得到总的coverage report,需要把这些report merge. 2.在NcVerilog中运行常遇到的问题: (1)报错:关于编译时出现的异常语句error: 在testcase 0702020102.v 、0703020204.v中出现类似的错误,分别 表象如下: U_AHB_BFM.EX_DREG_INT_CLEAR ; 3 ——〉 0702020102.v U_AHB_BFM.EX_DREG_INT_CLEAR ; 2 ——〉 0703020
原创力文档

文档评论(0)