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_optsuvm-1.2ubus_tb_top-debug_access+all-lca-lcomp_ref.log-dpo-dpo_optsapps=vcsgd+user_tag=reference ./simv+UVM_NO_RELNOTES+UVM_TESTNAME=test_2m_4s-lsimv_ref.log dpo_learn: rm-rfsimvsimv.daidircsrcvc_hdrs.h*.keyvcs.cfg vcs-sverilog-full64-ntb_optsuvm-1.2ubus_tb_top-debug_access+all-lca-lcomp_learn.log-dpo-dpo_optsmode=learn+apps=default,lint,upfopt,pgates+user_tag=learn+dbdir=dpo_learndb-dpo_optscfg=cfg ./simv+UVM_NO_RELNOTES+UVM_TESTNAME=test_2m_4s-lsimv_learn.log merge_db: dporgmerge-ddpo_learndb dump_reco: dporgdump-ddpo_learndb echo"#####EnablingallrecommendationsdumpedbyDPOfromdpo_reco.csv#####" sed-i"s/^N,/Y,/g"dpo_reco.csv dpo_apply: rm-rfsimvsimv.daidircsrcvc_hdrs.h*.keyvcs.cfg vcs-sverilog-full64-ntb_optsuvm-1.2ubus_tb_top-debug_access+all-lca-lcomp_apply.log-dpo-dpo_optsreco_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-lsimv_apply.log dpo_report: dporgreport-ddpo_dbdir
4查看DPO報告
dporgReport目錄下用瀏覽器打開即可,可以打開相關的報告??梢钥吹较嚓P的優化比率,CT(Compile Time),RT(Run Time),RM(Memory)。
5DPO設置的權衡
任何事情的選擇很難是各個方面都會帶來優勢,所以需要結合自己的項目去權衡應該優化那些方面,哪里是關鍵的設計,那么選擇優化該方向。相關建議可以在文件dpo_reco.csv打開查看。
審核編輯:黃飛
-
內存
+關注
關注
8文章
3023瀏覽量
74032 -
VCS
+關注
關注
0文章
79瀏覽量
9603
原文標題:如何讓你的仿真編譯性能優化?(VCS 高級特性)
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論