优化编译和仿真的VCS使用技巧

电子说

1.3w人已加入

描述

1简介

冗长的编译和仿真,对于稍大的工程,编译加上仿真可能需要1个小时以上并且占用大量内存,而跑回归更是消耗大量的时间以及内存资源,本文主要给大家带来VCS使用技巧,DPO,DPO全称是Dynamic Performance Optimizer,主要用于优化编译和仿真(时间/内存),减少资源的使用,属于VCS的高级功能。仅需要很少的命令即可引入当前工程,体验来看,优化基本都在30%以上(数据来自亦安自己的测试,具体以实际为准)。

2DPO的特性

接入工程简单,只需要简单的命令

深度优化编译和仿真,包含时间和内存的优化

3该怎么使用DPO

目前该功能可能需要较高版本VCS DPO才比较完善。

使用逻辑非常简单:第一步,学习(learn)以及合并(merge)。第二步,应用(apply)。例如有500个case,我们先在learn模式跑完case,然后merge,之后便可以在应用(apply)模式下跑项目。最终会有比较好的编译和仿真优化,一般情况下,工程没有巨大改变,不需要重新learn。

我们打开VCS_HOME目录下,doc/examples/dpo/dpo_use_model,官方给了一个demo,Makefile如下(部分),主要涉及参考,学习,合并,获得建议,应用,报告。涉及的命令非常的简单,如果想更深入了解请参阅手册。该目录下执行make即可跑demo。

dpo_reference:
 vcs -sverilog -full64 -ntb_opts uvm-1.2 ubus_tb_top -debug_access+all -lca -l comp_ref.log -dpo -dpo_opts apps=vcsgd+user_tag=reference
 ./simv  +UVM_NO_RELNOTES +UVM_TESTNAME=test_2m_4s  -l simv_ref.log

dpo_learn:
 rm -rf simv simv.daidir csrc vc_hdrs.h *.key vcs.cfg
 vcs -sverilog -full64 -ntb_opts uvm-1.2 ubus_tb_top -debug_access+all -lca -l comp_learn.log -dpo -dpo_opts mode=learn+apps=default,lint,upfopt,pgates+user_tag=learn+dbdir=dpo_learndb -dpo_opts cfg=cfg
 ./simv +UVM_NO_RELNOTES +UVM_TESTNAME=test_2m_4s -l simv_learn.log
 
merge_db:
 dporg merge -d dpo_learndb

dump_reco:
 dporg dump -d dpo_learndb
 echo "##### Enabling all recommendations dumped by DPO from dpo_reco.csv #####"
 sed -i "s/^N,/Y,/g" dpo_reco.csv

dpo_apply:
 rm -rf simv simv.daidir csrc vc_hdrs.h *.key vcs.cfg
 vcs -sverilog -full64 -ntb_opts uvm-1.2 ubus_tb_top -debug_access+all -lca -l comp_apply.log -dpo -dpo_opts reco_file=dpo_reco.csv+apps=default,fgp,lint,upfopt,pgates+user_tag=apply+learn_dbdir=dpo_learndb+cfg=cfg
 ./simv  +UVM_NO_RELNOTES +UVM_TESTNAME=test_2m_4s  -l simv_apply.log

dpo_report:
 dporg report -d dpo_dbdir

 

 

4查看DPO报告

dporgReport目录下用浏览器打开即可,可以打开相关的报告。可以看到相关的优化比率,CT(Compile Time),RT(Run Time),RM(Memory)。

VCS

5DPO设置的权衡

任何事情的选择很难是各个方面都会带来优势,所以需要结合自己的项目去权衡应该优化那些方面,哪里是关键的设计,那么选择优化该方向。相关建议可以在文件dpo_reco.csv打开查看。

VCS

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分