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

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

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

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

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

在獨立測試加載流程中,用戶只需編譯、優(yōu)化和展開一個可復用的基礎測試用例:

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

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

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

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

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

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

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

用戶可在仿真時選擇配置

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

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

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

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