對于大多數驗證開發者來說,新一天的工作通常從理解和解決前一天的回歸調試失敗開始。經過一晚的回歸運行后,必須進行一些常規步驟。日常任務包括查詢失敗的測試、重新生成調試數據庫、重新運行仿真以獲取更多信息,以及確保不同功能場景和測試模式的正確性等。每個階段都可能耗費大量時間,有時需要多次迭代,導致整個調試過程不斷延長。
為了應對此類挑戰,新一代新思科技Verdi調試平臺提供了多種功能,有助于避免在不同步驟之間來回切換。不過許多用戶對于重復仿真的過程仍存在疑問。本文詳細介紹了驗證開發者在整個過程中可能要考慮的事項,并解釋了用戶如何在交互模式下利用Verdi功能來減少重復操作并縮短根本原因分析的時間。
經過一晚的回歸調試之后,我希望第二天早上調試文件已準備就緒
“Verdi Instant Recall”功能對此很有幫助。回歸運行時,Verdi Instant Recall與新思科技VCS交互,提供調試信息,以便調試任何失敗的測試用例。調試信息包含了所發生的錯誤以及相關位置,開發者可借其明確錯誤類別和調試起始位置,而無需手動重新運行仿真來生成其他調試數據。
▲ 圖1 新思科技Verdi Instant Recall - 縮短回歸調試周轉時間(TAT)
在調試會話期間,我想運行“假設分析”實驗,但又想避免重新編譯和重新運行仿真
啟用Verdi交互調試模式后,用戶可進行多項即時修改,以便在單次仿真中設置和驗證實驗。仿真激勵、更新隨機配置和重新隨機化等調整需要通過Verdi對單次仿真進行假設分析來完成。此外,Verdi無需依賴于預先存在的覆蓋率觀察器代碼,便可即時生成隨機值的概率分布情況,進而直觀地呈現SystemVerilog約束條件解算器求解空間的交互式分析。此功能還支持對激勵進行微調,以涵蓋一系列需關注的值,從而加快調試速度。
在調試會話期間,我想查看這些值在之前的時間點是如何變化的,并通過更多的實驗來觀察這些變化
借助Verdi,用戶可通過反向調試機制做到這一點。為此,用戶通常要為需關注的點添加一些調試仿真斷點并重新啟動仿真,使其及時在斷點指定的時間點停下來。在Verdi交互模式下,用戶能夠以超高自由度來控制仿真后退或前進到所指定的任何時間點,比如某個事件發生、對象創建或值更改的時候。
▲ 圖2 新思科技Verdi Instant Recall - 縮短回歸調試周轉時間(TAT)
此外,這些實用功能還可以結合起來,進一步加快調試流程。例如,在使用Instant Recall功能完成回歸分析之后,用戶可以根據錯誤類型選擇失敗的用例,并立即使用所生成的調試數據庫來啟動Verdi進行調試。在調試過程中,如果需要調用前一個時間點的信號值,可以使用反向調試功能來找到特定的仿真時間點。另外,用戶還可以使用不同的配置進行重新隨機化,以此來觀察概率分布。
結語
正如本文所述,新思科技Verdi調試平臺的功能非常豐富,有助于提高調試效率。當開發者早上開始準備調試時,可借助Verdi提供的功能快速投入到工作中。本文分享的所有功能均有助于避免耗時費力的重新編譯和重新仿真工作。充分利用一次仿真,縮短調試周轉時間!
-
仿真
+關注
關注
50文章
4124瀏覽量
133982 -
調試
+關注
關注
7文章
589瀏覽量
34060 -
新思科技
+關注
關注
5文章
807瀏覽量
50423 -
Verdi
+關注
關注
0文章
22瀏覽量
8809
原文標題:仿真一次就夠了!如何避免耗時又費力的重新編譯和重新仿真?
文章出處:【微信號:Synopsys_CN,微信公眾號:新思科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論