摘要
Questa One Sim平臺(tái)的SmartCompile日漸成為戰(zhàn)略性解決方案,可顯著縮短從初始編譯到最終仿真的整體驗(yàn)證周期,提供一整套高效工具,大幅縮短驗(yàn)證周期。通過(guò)整合高級(jí)功能并優(yōu)化編碼風(fēng)格,SmartCompile實(shí)現(xiàn)了更高效的設(shè)計(jì)流程,能夠直接應(yīng)對(duì)現(xiàn)代數(shù)字設(shè)計(jì)開(kāi)發(fā)所面臨的挑戰(zhàn)。
議程
序言
傳統(tǒng)仿真流程
SmartCompile概述
-主要功能
SmartCompile功能集:解決現(xiàn)代設(shè)計(jì)驗(yàn)證挑戰(zhàn)
1.增量編譯與優(yōu)化
2.獨(dú)立測(cè)試加載
3.AutoPDU(自動(dòng)預(yù)優(yōu)化設(shè)計(jì)單元)
4.緩存庫(kù)流程
5.動(dòng)態(tài)重配置
6.基于網(wǎng)格的分布式優(yōu)化
7.獨(dú)立設(shè)計(jì)二進(jìn)制文件生成
結(jié)語(yǔ)
序言
在如今的半導(dǎo)體行業(yè)中,設(shè)計(jì)工程師面臨著越來(lái)越大的壓力:既要交付日益復(fù)雜的數(shù)字設(shè)計(jì),又要滿足嚴(yán)苛的上市時(shí)間要求。隨著設(shè)計(jì)復(fù)雜性呈指數(shù)級(jí)增長(zhǎng),傳統(tǒng)的編譯與仿真工作流程往往成為影響開(kāi)發(fā)進(jìn)度的瓶頸。大家普遍認(rèn)為,這些瓶頸是由每次迭代的仿真運(yùn)行時(shí)間所導(dǎo)致的。然而,對(duì)復(fù)雜設(shè)計(jì)進(jìn)行仿真運(yùn)行配置所花費(fèi)的時(shí)間增加,也是一個(gè)重要因素。配置時(shí)間乘以驗(yàn)證迭代次數(shù),在整個(gè)驗(yàn)證流程中占據(jù)了相當(dāng)大的比重。
雖然仿真運(yùn)行占據(jù)了驗(yàn)證過(guò)程的大部分時(shí)間,但每次設(shè)計(jì)編譯與展開(kāi)過(guò)程累積起來(lái),同樣在整個(gè)驗(yàn)證周期中占據(jù)了相當(dāng)可觀的比重。任何能夠減輕這一開(kāi)銷(xiāo)的方法,累加到整個(gè)驗(yàn)證周期中,都能顯著地節(jié)省時(shí)間和計(jì)算資源。
面對(duì)這些挑戰(zhàn),SmartCompile引入了一套創(chuàng)新工具來(lái)解決這一關(guān)鍵問(wèn)題,將新功能與優(yōu)化的編碼風(fēng)格改進(jìn)相結(jié)合。這一綜合解決方案簡(jiǎn)化了從編譯、優(yōu)化到仿真的整個(gè)設(shè)計(jì)流程,使工程團(tuán)隊(duì)能夠在保持設(shè)計(jì)完整性的同時(shí)大幅縮短周轉(zhuǎn)時(shí)間。SmartCompile改變了傳統(tǒng)的設(shè)計(jì)編譯與仿真方法,幫助數(shù)字設(shè)計(jì)和驗(yàn)證工程師加速開(kāi)發(fā)周期,在當(dāng)今快節(jié)奏的數(shù)字市場(chǎng)中獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。
傳統(tǒng)仿真流程
在常規(guī)的驗(yàn)證環(huán)境中,每當(dāng)對(duì)設(shè)計(jì)或驗(yàn)證環(huán)境進(jìn)行修改時(shí),就需要對(duì)修改過(guò)的文件進(jìn)行重新編譯。幸運(yùn)的是,大多數(shù)工具已經(jīng)具備了一些功能,可以只編譯修改過(guò)的文件,而無(wú)需重新編譯未修改的文件。但在傳統(tǒng)流程中,優(yōu)化和展開(kāi)階段卻無(wú)法做到這一點(diǎn)。即使只對(duì)設(shè)計(jì)或測(cè)試平臺(tái)做了很小的改動(dòng),也必須對(duì)整個(gè)設(shè)計(jì)進(jìn)行重新優(yōu)化和展開(kāi)。對(duì)于小型設(shè)計(jì)而言,這可能不是什么大問(wèn)題;但隨著設(shè)計(jì)復(fù)雜性持續(xù)增加,仿真啟動(dòng)前的準(zhǔn)備時(shí)間正在成為許多設(shè)計(jì)和驗(yàn)證工程師的瓶頸。如果每次編譯-優(yōu)化-展開(kāi)周期都要花半天時(shí)間,那么每天只能做兩三次設(shè)計(jì)更改。大部分時(shí)間都花在仿真前的準(zhǔn)備工作上,之后才能進(jìn)行有效的設(shè)計(jì)調(diào)試。在持續(xù)集成(CI)和持續(xù)部署(CD)流程中,這一問(wèn)題更加嚴(yán)重,因?yàn)榇a提交的頻率更高,每次提交都可能會(huì)觸發(fā)整個(gè)流程的重新運(yùn)行。在這種情況,不僅需要花時(shí)間等待編譯過(guò)程完成,還會(huì)消耗大量計(jì)算資源——無(wú)論是本地資源還是云端資源,這都會(huì)顯著增加整個(gè)驗(yàn)證周期的成本。
SmartCompile概述
SmartCompile是Questa One Sim用于加速硬件設(shè)計(jì)與驗(yàn)證工作流程的解決方案。與傳統(tǒng)方法不同,SmartCompile通過(guò)一系列完善的功能特性改變?cè)O(shè)計(jì)流程,從而提高測(cè)試平臺(tái)和RTL的開(kāi)發(fā)與調(diào)試效率。

主要功能
1.面向開(kāi)發(fā)的架構(gòu)
–優(yōu)化每日多輪編譯-優(yōu)化-仿真循環(huán)
–實(shí)現(xiàn)設(shè)計(jì)的快速迭代
–支持仿真定位到特定事件(斷點(diǎn)、事務(wù))
2.高級(jí)功能集成
–增量編譯與優(yōu)化
–獨(dú)立測(cè)試加載
–AutoPDU
–面向大型設(shè)計(jì)的緩存庫(kù)流程
–動(dòng)態(tài)重配置
–基于網(wǎng)格的分布式優(yōu)化
–生成獨(dú)立設(shè)計(jì)二進(jìn)制文件
3.效率提升
–利用緩存縮短初始構(gòu)建時(shí)間
–支持編譯任務(wù)的并行處理
–提供后續(xù)構(gòu)建增量編譯
–支持按測(cè)試靈活切換設(shè)計(jì)模塊
4.資源優(yōu)化
–拆分單次編譯為多個(gè)并行進(jìn)程
–按需生成調(diào)試數(shù)據(jù)
–復(fù)用設(shè)計(jì)展開(kāi)文件
–動(dòng)態(tài)切換RTL和門(mén)級(jí)仿真模塊
SmartCompile功能集:
解決現(xiàn)代設(shè)計(jì)驗(yàn)證挑戰(zhàn)
首先,讓我們探討SmartCompile在編譯過(guò)程各階段所提供的幫助。
使用SmartCompile分而治之

現(xiàn)在,我們逐一了解每項(xiàng)SmartCompile功能如何解決特定問(wèn)題及其適用場(chǎng)景。
1.增量編譯與優(yōu)化
問(wèn)題:
當(dāng)設(shè)計(jì)局部修改時(shí),需要增量編譯和優(yōu)化機(jī)制,以避免全量重新編譯和優(yōu)化
解決方案:
利用基于時(shí)間戳的增量編譯流程
功能特性包括:
–智能文件變更檢測(cè)
–頭部注釋改動(dòng)容錯(cuò)機(jī)制
–文件路徑管理
技術(shù)細(xì)節(jié):
使用vlog/vcom命令加上-tsincr選項(xiàng)即可啟用此功能。若使用qrun命令,該功能自動(dòng)啟用,無(wú)需額外開(kāi)關(guān)

2.獨(dú)立測(cè)試加載
問(wèn)題:
每當(dāng)添加新測(cè)試用例時(shí),用戶必須重新編譯整個(gè)測(cè)試平臺(tái),并重新執(zhí)行優(yōu)化和設(shè)計(jì)展開(kāi)流程
解決方案:
僅對(duì)新測(cè)試用例進(jìn)行編譯和優(yōu)化
復(fù)用基礎(chǔ)的編譯、優(yōu)化和設(shè)計(jì)展開(kāi)文件
顯著縮短測(cè)試開(kāi)發(fā)和調(diào)試時(shí)間
技術(shù)細(xì)節(jié):
獨(dú)立測(cè)試加載的主要優(yōu)勢(shì)體現(xiàn)在編譯、優(yōu)化和設(shè)計(jì)展開(kāi)階段

以下介紹在運(yùn)行多個(gè)測(cè)試用例下的傳統(tǒng)流程。每個(gè)測(cè)試用例都需要完整的編譯、優(yōu)化和展開(kāi)過(guò)程(如下所示):

在獨(dú)立測(cè)試加載流程中,用戶只需編譯、優(yōu)化和展開(kāi)一個(gè)可復(fù)用的基礎(chǔ)測(cè)試用例:

基礎(chǔ)測(cè)試創(chuàng)建完成后,就可以編譯和優(yōu)化新測(cè)試,并復(fù)用基礎(chǔ)測(cè)試(如下所示):

3.AutoPDU(自動(dòng)預(yù)優(yōu)化設(shè)計(jì)單元)
問(wèn)題:
隨著設(shè)計(jì)規(guī)模增大,優(yōu)化所需時(shí)間更長(zhǎng)
對(duì)于這些大規(guī)模設(shè)計(jì),單一優(yōu)化流程效率低下,因?yàn)榧词箤?duì)設(shè)計(jì)進(jìn)行微小改動(dòng)也需要重新優(yōu)化整個(gè)設(shè)計(jì)
解決方案:
自動(dòng)將設(shè)計(jì)劃分為多個(gè)PDU(預(yù)優(yōu)化設(shè)計(jì)單元);僅編譯和優(yōu)化被修改的部分,而非整個(gè)設(shè)計(jì)
支持網(wǎng)格化分布處理,用于編譯與優(yōu)化流程
優(yōu)勢(shì):
–并行處理設(shè)計(jì)單元
–縮短優(yōu)化時(shí)間
–高效處理大規(guī)模設(shè)計(jì)
技術(shù)細(xì)節(jié):
AutoPDU的優(yōu)勢(shì)主要體現(xiàn)在優(yōu)化階段,可減少整體優(yōu)化與加載時(shí)間,提升吞吐量
AutoPDU流程:
–初始構(gòu)建:創(chuàng)建PDU并在網(wǎng)格上運(yùn)行優(yōu)化
–增量構(gòu)建:加載未修改PDU,僅重新優(yōu)化有代碼變更的PDU
采用AutoPDU進(jìn)行初始構(gòu)建

后續(xù)構(gòu)建(代碼修改后):僅進(jìn)行增量編譯和優(yōu)化

AutoPDU網(wǎng)格化支持
–使用網(wǎng)格支持,可在初始構(gòu)建階段實(shí)現(xiàn)PDU的網(wǎng)格并行優(yōu)化

4.緩存庫(kù)流程
問(wèn)題:
當(dāng)使用代碼倉(cāng)庫(kù)工作時(shí),新建工作區(qū)需要大量構(gòu)建時(shí)間
在使用虛擬機(jī)(VM)進(jìn)行調(diào)試或采用CI/CD流程時(shí)尤為明顯——每次新建VM或CI/CD提交都會(huì)觸發(fā)完整流程的重新運(yùn)行
解決方案:
創(chuàng)建已編譯PDU庫(kù)的“緩存”,用戶可將其復(fù)制到工作區(qū),而無(wú)需重新運(yùn)行整個(gè)編譯與優(yōu)化階段
優(yōu)勢(shì):
–消除漫長(zhǎng)的初始構(gòu)建時(shí)間
–提供后續(xù)構(gòu)建增量編譯
–特別適用于SoC或其他大規(guī)模設(shè)計(jì)
技術(shù)細(xì)節(jié):
緩存庫(kù)流程在編譯與優(yōu)化階段帶來(lái)收益(如下所示):

持續(xù)集成與緩存庫(kù)流程:
–緩存庫(kù)流程支持持續(xù)集成。持續(xù)集成流程可自動(dòng)創(chuàng)建并維護(hù)包含最新代碼變更的PDU庫(kù)
–用戶可直接將預(yù)編譯的PDU拉入本地工作區(qū),避免對(duì)新工作區(qū)進(jìn)行不必要的代碼編譯與優(yōu)化步驟
–系統(tǒng)智能更新PDU文件路徑至用戶本地區(qū)域,確保僅需編譯新變更的代碼

5.動(dòng)態(tài)重配置
問(wèn)題:
用戶根據(jù)仿真類(lèi)型和仿真層次的不同,需要對(duì)同一設(shè)計(jì)模塊進(jìn)行不同的配置
當(dāng)針對(duì)某種配置替換相應(yīng)的設(shè)計(jì)模塊時(shí),需要對(duì)整個(gè)設(shè)計(jì)進(jìn)行重新編譯和重新優(yōu)化
解決方案:
提供一種機(jī)制,可在運(yùn)行時(shí)“動(dòng)態(tài)”插入/移除模塊;用戶可以編譯和優(yōu)化同一模塊的不同版本,然后在設(shè)計(jì)展開(kāi)階段選擇正確的配置
效果:
–用戶可以靈活地為每個(gè)測(cè)試切換模塊
–提升性能,減少資源占用
技術(shù)細(xì)節(jié):
動(dòng)態(tài)重配置在設(shè)計(jì)展開(kāi)與仿真階段帶來(lái)收益:
–可按測(cè)試需求輕松切換模塊
–提升性能,減少資源占用

用戶可在仿真時(shí)選擇配置

6.基于網(wǎng)格的分布式優(yōu)化
問(wèn)題:
大型設(shè)計(jì)需要大量的優(yōu)化時(shí)間
任何能加速該過(guò)程的技術(shù)都極具價(jià)值
解決方案:
將單個(gè)優(yōu)化任務(wù)拆分為多個(gè)PDU
利用網(wǎng)格計(jì)算并行運(yùn)行優(yōu)化過(guò)程
效果:
–初始構(gòu)建:網(wǎng)格式運(yùn)行AutoPDU,縮短整體初始構(gòu)建時(shí)間
–增量構(gòu)建:僅對(duì)代碼變更的PDU運(yùn)行優(yōu)化過(guò)程
技術(shù)細(xì)節(jié):
分布式優(yōu)化流程的優(yōu)勢(shì)體現(xiàn)在代碼生成階段。它將qopt代碼生成分布到多臺(tái)網(wǎng)格機(jī)器上,既提高了并行度又不超出單機(jī)內(nèi)存和核數(shù)限制,加快運(yùn)行速度

7.生成獨(dú)立設(shè)計(jì)二進(jìn)制文件
問(wèn)題:
調(diào)試數(shù)據(jù)生成與優(yōu)化階段耦合
這導(dǎo)致調(diào)試數(shù)據(jù)處理效率低下
解決方案:
將調(diào)試數(shù)據(jù)生成過(guò)程從優(yōu)化階段剝離,以減少優(yōu)化時(shí)間
優(yōu)勢(shì):
–按需生成調(diào)試數(shù)據(jù)
–調(diào)試流程更高效
–減少資源占用
技術(shù)細(xì)節(jié):
該流程的優(yōu)勢(shì)體現(xiàn)在設(shè)計(jì)二進(jìn)制文件生成階段:它將qopt與設(shè)計(jì)二進(jìn)制文件生成器分離,僅在必要時(shí)生成設(shè)計(jì)二進(jìn)制文件(或與qopt并行運(yùn)行),提升qopt吞吐量

完整SmartCompile解決方案采用“分而治之”策略,能夠減少整體仿真設(shè)置時(shí)間。各階段減少時(shí)間的方式如下所示:

結(jié)語(yǔ)
SmartCompile作為一項(xiàng)變革性解決方案應(yīng)運(yùn)而生,可直接應(yīng)對(duì)現(xiàn)代硬件設(shè)計(jì)與驗(yàn)證工作流程中的關(guān)鍵挑戰(zhàn)。該技術(shù)在改善總周轉(zhuǎn)時(shí)間和整體效率方面取得了多項(xiàng)突破性成果:
1.優(yōu)秀的編譯架構(gòu)
針對(duì)單日內(nèi)多次編譯-優(yōu)化-仿真循環(huán)進(jìn)行優(yōu)化
通過(guò)創(chuàng)新方法實(shí)現(xiàn)快速設(shè)計(jì)迭代
支持增量編譯功能,提高后續(xù)構(gòu)建效率
2.性能優(yōu)化
通過(guò)智能緩存庫(kù)機(jī)制消除長(zhǎng)時(shí)間初始構(gòu)建瓶頸
利用網(wǎng)格計(jì)算實(shí)現(xiàn)并行處理和分布式優(yōu)化
對(duì)復(fù)雜SoC和大規(guī)模設(shè)計(jì)尤為有效
3.資源管理
在提升性能的同時(shí)減少資源使用
智能文件變更檢測(cè)和代碼變更處理
集成調(diào)試數(shù)據(jù)生成與優(yōu)化階段,提升效率
4.業(yè)務(wù)影響
在測(cè)試開(kāi)發(fā)與調(diào)試階段實(shí)現(xiàn)顯著的時(shí)間節(jié)省
為需要大量?jī)?yōu)化的設(shè)計(jì)提供可擴(kuò)展解決方案
提供全面的效率改進(jìn),直接影響開(kāi)發(fā)周期
SmartCompile代表了數(shù)字設(shè)計(jì)開(kāi)發(fā)工具的重大進(jìn)步,提供了一個(gè)兼具速度、效率與可擴(kuò)展性的強(qiáng)大解決方案。其創(chuàng)新功能與架構(gòu)改進(jìn),對(duì)于那些希望在設(shè)計(jì)過(guò)程中保持高質(zhì)量標(biāo)準(zhǔn)的同時(shí)加速開(kāi)發(fā)周期的企業(yè)而言,可謂彌足珍貴。
-
半導(dǎo)體
+關(guān)注
關(guān)注
339文章
30718瀏覽量
263973 -
仿真
+關(guān)注
關(guān)注
54文章
4480瀏覽量
138229 -
Questa
+關(guān)注
關(guān)注
0文章
6瀏覽量
1763
發(fā)布評(píng)論請(qǐng)先 登錄
任正非對(duì)話“Polar碼之父”:沒(méi)有基礎(chǔ)研究,產(chǎn)業(yè)就會(huì)被架空
PSPICE仿真時(shí)如何加速,縮短仿真時(shí)間?!
我家學(xué)校的校賽題,大家覺(jué)得如何,走過(guò)路過(guò)都要看過(guò)
如何基于UVM用questa與fpga板子進(jìn)行軟硬件協(xié)同仿真?
ANSYS為保時(shí)捷全電動(dòng)賽車(chē)提供技術(shù)支持進(jìn)擊電動(dòng)方程式錦標(biāo)賽 精選資料分享
程序員35歲這道坎為誰(shuí)設(shè)
關(guān)于連接器對(duì)環(huán)境的選擇分析和研究
Vivado調(diào)用Questa Sim或ModelSim仿真小技巧
分層架構(gòu)更快地提供更可靠的汽車(chē)應(yīng)用
分層架構(gòu)更快地提供更可靠的汽車(chē)應(yīng)用
基于nRF24LL01的賽道計(jì)時(shí)系統(tǒng)
Questa Sim不支持-novopt問(wèn)題
Vivado調(diào)用Questa Sim仿真中存在的一些問(wèn)題
西門(mén)子推出Questa One智能驗(yàn)證解決方案
【產(chǎn)品介紹】Questa One Sim軟件
更快抵達(dá)終點(diǎn)線:Questa One如何加速整體仿真周轉(zhuǎn)時(shí)間
評(píng)論