0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

優(yōu)化編譯和仿真的VCS使用技巧

sanyue7758 ? 來源:處芯積律 ? 2024-03-08 14:02 ? 次閱讀

1簡(jiǎn)介

冗長(zhǎng)的編譯和仿真,對(duì)于稍大的工程,編譯加上仿真可能需要1個(gè)小時(shí)以上并且占用大量?jī)?nèi)存,而跑回歸更是消耗大量的時(shí)間以及內(nèi)存資源,本文主要給大家?guī)鞻CS使用技巧,DPO,DPO全稱是Dynamic Performance Optimizer,主要用于優(yōu)化編譯和仿真(時(shí)間/內(nèi)存),減少資源的使用,屬于VCS的高級(jí)功能。僅需要很少的命令即可引入當(dāng)前工程,體驗(yàn)來看,優(yōu)化基本都在30%以上(數(shù)據(jù)來自亦安自己的測(cè)試,具體以實(shí)際為準(zhǔn))。

2DPO的特性

接入工程簡(jiǎn)單,只需要簡(jiǎn)單的命令

深度優(yōu)化編譯和仿真,包含時(shí)間和內(nèi)存的優(yōu)化

3該怎么使用DPO

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

使用邏輯非常簡(jiǎn)單:第一步,學(xué)習(xí)(learn)以及合并(merge)。第二步,應(yīng)用(apply)。例如有500個(gè)case,我們先在learn模式跑完case,然后merge,之后便可以在應(yīng)用(apply)模式下跑項(xiàng)目。最終會(huì)有比較好的編譯和仿真優(yōu)化,一般情況下,工程沒有巨大改變,不需要重新learn。

我們打開VCS_HOME目錄下,doc/examples/dpo/dpo_use_model,官方給了一個(gè)demo,Makefile如下(部分),主要涉及參考,學(xué)習(xí),合并,獲得建議,應(yīng)用,報(bào)告。涉及的命令非常的簡(jiǎn)單,如果想更深入了解請(qǐng)參閱手冊(cè)。該目錄下執(zhí)行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報(bào)告

dporgReport目錄下用瀏覽器打開即可,可以打開相關(guān)的報(bào)告??梢钥吹较嚓P(guān)的優(yōu)化比率,CT(Compile Time),RT(Run Time),RM(Memory)。

45aa2f7c-d8af-11ee-a297-92fbcf53809c.png

5DPO設(shè)置的權(quán)衡

任何事情的選擇很難是各個(gè)方面都會(huì)帶來優(yōu)勢(shì),所以需要結(jié)合自己的項(xiàng)目去權(quán)衡應(yīng)該優(yōu)化那些方面,哪里是關(guān)鍵的設(shè)計(jì),那么選擇優(yōu)化該方向。相關(guān)建議可以在文件dpo_reco.csv打開查看。

45bdee40-d8af-11ee-a297-92fbcf53809c.png

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2966

    瀏覽量

    73815
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    9581

原文標(biāo)題:如何讓你的仿真編譯性能優(yōu)化?(VCS 高級(jí)特性)

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    vcs實(shí)用技巧

    VCS編譯型verilog仿真器,VCS先將verilog/systemverilog文件轉(zhuǎn)化為C文件,在linux下編譯生成的可執(zhí)行文.
    的頭像 發(fā)表于 10-25 17:22 ?939次閱讀
    <b class='flag-5'>vcs</b>實(shí)用技巧

    VCS仿真的注意事項(xiàng)

    VCS
    皮特派
    發(fā)布于 :2022年12月07日 11:38:35

    VCS仿真指南(第二版).pdf

    VCS-verilog compiled simulator是synopsys公司的產(chǎn)品.其仿真速度相當(dāng)快,而且支持多種調(diào)用方式;使用的步驟和modelsim類似,都要先做編譯,再調(diào)用仿真
    發(fā)表于 12-15 10:27

    nanosim和vcs混合仿真的過程是怎樣的?

    nanosim和vcs為什么可以聯(lián)合起來進(jìn)行數(shù)字模擬混合仿真?nanosim和vcs混合仿真的過程是怎樣的?
    發(fā)表于 06-18 08:28

    基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用VCS仿真教程

    VCS-MX的版本,可以混合編譯Verilog和VHDL語言 由于在linux系統(tǒng)中個(gè)人用戶各種權(quán)限被限制,導(dǎo)致很多地方無法正常使用軟件之間的協(xié)調(diào)工作。 為了以防萬一,在此以個(gè)人用戶去實(shí)現(xiàn)vivado調(diào)用VCS
    的頭像 發(fā)表于 07-05 03:30 ?1.1w次閱讀
    基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>教程

    如何使用Synopsys VCS仿真器進(jìn)行ZYNQ BFM IPI設(shè)計(jì)仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用ZYNQ BFM IPI設(shè)計(jì)運(yùn)行仿真。 我們將演示如何編譯仿真庫,為IP或整
    的頭像 發(fā)表于 11-29 06:59 ?4888次閱讀

    如何使用Vivado中的Synopsys VCS仿真器進(jìn)行仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用MicrBlaze IPI設(shè)計(jì)運(yùn)行仿真。 我們將演示如何編譯仿真庫,為IP或
    的頭像 發(fā)表于 11-29 06:57 ?7368次閱讀

    使用VCS兩種仿真flow的基本步驟

    VCS是一個(gè)高性能、高容量的編譯代碼仿真器,它將高級(jí)抽象的驗(yàn)證技術(shù)集成到一個(gè)開放的本地平臺(tái)中。它能夠分析、編譯編譯Verilog、VHDL
    的頭像 發(fā)表于 05-07 14:20 ?4795次閱讀

    vcs學(xué)習(xí)筆記(常用選項(xiàng)/仿真流程/代碼覆蓋率/綜合后仿真/圖一樂技巧)

    VCS編譯型verilog仿真器,VCS先將verilog/systemverilog文件轉(zhuǎn)化為C文件,在linux下編譯生成的可執(zhí)行文.
    的頭像 發(fā)表于 05-23 16:04 ?9187次閱讀

    淺談VCS的兩種仿真flow

    幾乎所有的芯片設(shè)計(jì)、芯片驗(yàn)證工程師,每天都在和VCS打交道,但是由于驗(yàn)證環(huán)境的統(tǒng)一化管理,一般將不同的編譯仿真選項(xiàng)集成在一個(gè)文件里,只需要一兩個(gè)人維護(hù)即可。所以大部分人比較少有機(jī)會(huì)去深入地學(xué)習(xí)
    的頭像 發(fā)表于 01-10 11:20 ?3514次閱讀

    EDA仿真VCS編譯Xilinx仿真步驟

    選擇VCS,再指定庫文件存放的路徑;如果VCS的環(huán)境變量設(shè)置好了,那么會(huì)自動(dòng)跳出Simulator executable path的路徑的。
    發(fā)表于 03-31 10:21 ?2015次閱讀

    VCS編譯選項(xiàng):-y及+libext+

    VCS是一款常見的Verilog編譯工具,它提供很多編譯選項(xiàng)來控制編譯過程及其輸出。本文主要介紹以下兩個(gè)編譯選項(xiàng)。
    的頭像 發(fā)表于 05-29 14:46 ?1.1w次閱讀

    VCS實(shí)用技巧分享

    VCS編譯型verilog仿真器,VCS先將verilog/systemverilog文件轉(zhuǎn)化為C文件,在linux下編譯生成的可執(zhí)行文.
    的頭像 發(fā)表于 05-30 09:26 ?1250次閱讀
    <b class='flag-5'>VCS</b>實(shí)用技巧分享

    記錄VCS仿真的IP核只有VHDL文件的解決方法

    使用VCS仿真Vivado里面的IP核時(shí),如果Vivado的IP核的仿真文件只有VHDL時(shí),仿真將變得有些困難,VCS不能直接
    的頭像 發(fā)表于 06-06 11:15 ?2092次閱讀
    記錄<b class='flag-5'>VCS</b><b class='flag-5'>仿真的</b>IP核只有VHDL文件的解決方法

    VCS 仿真option 解析

    VCS仿真選項(xiàng)分編譯(compile-time)選項(xiàng)和運(yùn)行(run-time)選項(xiàng)。編譯選項(xiàng)用于RTL/TB的編譯,一遍是
    的頭像 發(fā)表于 01-06 10:19 ?2361次閱讀