新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用先進(jìn)技術(shù)來(lái)加速SoC驗(yàn)證

使用先進(jìn)技術(shù)來(lái)加速SoC驗(yàn)證

——
作者:李響 時(shí)間:2013-11-27 來(lái)源:電子產(chǎn)品世界 收藏

  增量編譯

本文引用地址:http://www.butianyuan.cn/article/192738.htm

  在編譯過(guò)程中,會(huì)創(chuàng)建設(shè)計(jì)/驗(yàn)證的層次結(jié)構(gòu),當(dāng)你重新編譯的時(shí)候,只會(huì)就那些更改的設(shè)計(jì)單元進(jìn)行重新編譯,這樣可以縮短編譯時(shí)間。現(xiàn)在增量編譯選項(xiàng)已經(jīng)成為的默認(rèn)選項(xiàng)。

  分區(qū)編譯 (Partition Compile)

  分區(qū)編譯是VCS提供的一個(gè)比較新的特性。這個(gè)特性可以讓我們把設(shè)計(jì)/驗(yàn)證中的實(shí)例/模塊分成不同的大得區(qū)塊來(lái)編譯。這樣如果之后只對(duì)其中一部分區(qū)塊相關(guān)的文件進(jìn)行了修改,那么可以重用之前分區(qū)編譯的數(shù)據(jù)庫(kù)來(lái)減少其它區(qū)塊編譯的時(shí)間,只對(duì)修改的區(qū)塊進(jìn)行重新編譯即可。同時(shí)針對(duì)驗(yàn)證環(huán)境中的package,比如像UVM標(biāo)準(zhǔn)庫(kù)或者一些算法庫(kù),分區(qū)編譯也可以提前把它們分塊編譯好,然后這樣可以加速驗(yàn)證環(huán)境的編譯速度。

  運(yùn)行性能的提升的方法

  在過(guò)程中,運(yùn)行的時(shí)間以及內(nèi)存消耗是單次的主要瓶頸,因此本文會(huì)關(guān)注在運(yùn)行過(guò)程中如何提升性能,包括如何找到運(yùn)行過(guò)程的瓶頸以及使用多核技術(shù)來(lái)加速。

  運(yùn)行性能分析工具

  VCS提供了用于分析性能的Profile工具Simprofile,使用在仿真過(guò)程中生成時(shí)間/內(nèi)存消耗的報(bào)告,然后可以通過(guò)對(duì)于報(bào)告的分析來(lái)找到限制當(dāng)前仿真性能的瓶頸。使用方式:
  編譯:%VCS –simprofile –lca –f filelist.f …
  運(yùn)行:%simv –simprofile time|mem

  一般在運(yùn)行后會(huì)自動(dòng)生成名為simprofile_dir的報(bào)告目錄,也可以后處理生成報(bào)告:
  %profrpt –output_dir simprofile_dir –view time_all|mem_all

  Simprofile會(huì)默認(rèn)生成基于HTML的報(bào)告,然后可以進(jìn)行選擇查看相關(guān)的性能選項(xiàng)(支持模塊/功能/DPI/PLI/約束/覆蓋率等),同時(shí)支持對(duì)多次仿真的報(bào)告進(jìn)行比較。

  多核仿真技術(shù)

  VCS提供了多核仿真技術(shù)用于使用服務(wù)器的物理多核來(lái)加速仿真。使用多核技術(shù)可以把一次仿真的不同部分分配到多個(gè)物理運(yùn)算單元上以達(dá)到加速仿真的目的?,F(xiàn)在提供了兩種多核模式:應(yīng)用級(jí)并行技術(shù)(ALP)和設(shè)計(jì)級(jí)并行技術(shù)(DLP),ALP/DLP以及二者的組合通過(guò)多核CPU來(lái)優(yōu)化仿真進(jìn)程。

  應(yīng)用級(jí)多核技術(shù)(ALP)

  應(yīng)用級(jí)多核技術(shù)(ALP)是把按照應(yīng)用把驗(yàn)證的不同部分(Testbench、SystemVerilog斷言、覆蓋率統(tǒng)計(jì)、波形保存等等)放到多個(gè)處理核上去做并行運(yùn)行。

  例如:在一個(gè)4核服務(wù)器上我們可以把覆蓋率統(tǒng)計(jì)放到第一個(gè)核上,把斷言檢測(cè)放到第二個(gè)核上,把波形保存放到第三個(gè)核上,剩下的仿真放到最后一個(gè)核上。結(jié)果會(huì)看到仿真性能可以得到很大提升。表1是ALP支持的開(kāi)關(guān)參數(shù)以及推薦的使用示例

  如果VCS使用了ALP+fsdb多核(+mtfsdb),那么會(huì)在控制臺(tái)看到如下打?。?br />   *Novas* : Multi-Thread VCS dumping is enabled

  同時(shí)Verdi3自動(dòng)支持對(duì)FSDB進(jìn)行并行保存,如果使能了并行保存,那么會(huì)有如下信息:
  *Novas* : Enable parallel dumping

  設(shè)計(jì)級(jí)多核技術(shù)(DLP)

  DLP允許我們可以把一個(gè)大的設(shè)計(jì)分成多個(gè)區(qū)塊,然后把不同的區(qū)塊放入不同的計(jì)算核去運(yùn)行。DLP的一般會(huì)根據(jù)profiler的報(bào)告結(jié)果以及設(shè)計(jì)部件之間的相關(guān)性分析來(lái)做劃分。把劃分寫(xiě)入一個(gè)配置文件中,然后把這個(gè)配置文件讀入VCS進(jìn)行仿真,比如:
  %vcs test.v –parallel+design=partition_cfg.cfg

  同時(shí)DLP還支持自動(dòng)分區(qū)劃分??紤]到DLP的適用情況以及進(jìn)度,我們的項(xiàng)目上暫時(shí)沒(méi)有使用,會(huì)在后繼的項(xiàng)目中進(jìn)行嘗試。

  其他進(jìn)行性能加速的模式

  Debug參數(shù)

  VCS支持-debug_pp/–debug/–debug_all參數(shù),其中-debug_pp用于只進(jìn)行波形保存后處理模式,而debug用于交互式,debug_all交互式仿真同時(shí)可以開(kāi)啟單步調(diào)試模式,不同的調(diào)試粒度帶來(lái)更多方便的同時(shí),也會(huì)帶來(lái)性能的消耗。

  對(duì)于前期testbench開(kāi)發(fā),建議開(kāi)啟debug_all/debug參數(shù),用于我們自己的驗(yàn)證環(huán)境的調(diào)試以及單步/斷點(diǎn)調(diào)試等;當(dāng)驗(yàn)證環(huán)境已經(jīng)穩(wěn)定以后,目的是進(jìn)行DUT的驗(yàn)證一般就只開(kāi)啟debug_pp/debug來(lái)進(jìn)行波形保存之后再調(diào)試。進(jìn)入回歸測(cè)試后,主要依賴驗(yàn)證環(huán)境中的檢查器來(lái)做檢查,當(dāng)發(fā)現(xiàn)錯(cuò)誤的時(shí)候才會(huì)打開(kāi)debug_pp或者debug/debug_all來(lái)進(jìn)行進(jìn)一步的調(diào)試。

  波形保存的方法

  在影響仿真的性能參數(shù)中,文件I/O是占很大比重的一部分,所以對(duì)于性能的提升,可以從減少磁盤(pán)I/O讀取來(lái)入手,比較多的磁盤(pán)I/O訪問(wèn)操作就是波形保存的動(dòng)作。



關(guān)鍵詞: SoC Synopsys GPU VCS 仿真 201312

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉