UVM入门系列(二)----VCS仿真脚本的使用
本篇博文的内容对上一博文的内容进行初步仿真。
文章目录
前言
本篇博文的内容对上一博文的内容进行初步仿真。
上篇博客内容链接:
UVM入门系列(一)----通过uvm_gen脚本快速搭建一般验证平台(上)
一、rtllist.f(verf/sim)
将所有的sv v文件路径都写入rtllist.f文件中
+incdir+../tb/tb
+incdir+../tb/agent/i
+incdir+../tb/agent/o
+incdir+../tb/agent/cr
+incdir+../tb/env/reg_model
+incdir+../tb/tests
+incdir+../tb/env
+incdir+../testcase/seq
+incdir+../testcase/test
../../dut/add.v
../tb/agent/i/i_agent_pkg.sv
../tb/agent/i/i_agent_if.sv
../testcase/seq/seq_pkg.sv
../tb/agent/o/o_agent_pkg.sv
../tb/agent/o/o_agent_if.sv
../tb/agent/cr/cr_agent_pkg.sv
../tb/agent/cr/cr_if.sv
../tb/env/add_env_pkg.sv
../tb/tb/add_tb.sv
../testcase/test/test_pkg.sv
+incdir指定include文件的查找路径
二、vcs编译(/verf/sim/Makefile)
comp:
vcs -full64 -sverilog -fsdb -debug_access+all -lca -kdb -ntb_opts \
uvm -cm line+cond+fsm -cm_dir ${COVERAGE_DIR}/${TEST}_${SEED} \
+nospecify \
-timescale=1ns/1ns \
-f rtllist.f \
-l comp.log \
三、仿真(/verf/sim/Makefile)
run:
./simv +UVM_TESTNAME=${TEST} \
+UVM_VERBOSITY=${VERB} \
+ntb_random_seed=${SEED} \
-cm line+cond+fsm -cm_count \
-l ${TEST}.log
四、查看波形(/verf/sim/Makefile)
verdi:
verdi \
-sv \
-uvm \
-f rtllist.f \
-top ${TB} \
-nologo \
+UVM_TESTNAME = ${TEST} \
-ssf sim.fsdb
使用make verdi可以通过verdi界面查看信号波形。
五、查看合并覆盖率(/verf/sim/Makefile)
使用dve查看合并覆盖率。
editcov:
urg -full64 -format both -report coverage -dir ${COVERAGE_DIR}/*.vdb \
-dbname merged.vdb
dve -full64 -cov -covdir merged.vdb
make editcov可以通过dve界面查看合并后的功能覆盖率和代码覆盖率。
总结
本博文介绍了使用vcs进行仿真的Makefile脚本。