仿真编译性能优化(VCS 高级特性)

简介

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

DPO的特性

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

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

该怎么使用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

查看DPO报告

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

DPO设置的权衡

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值