要如何得知晶片驗證已真正完成?

在功能性驗證中,要花費60% 的時間在測試平台開發和除錯,且高達 40% 的時間會花在測試平台啟動(testbench bring-up)和覆蓋率收斂(coverage closure),因此任何能縮短時間又不會漏掉任何錯誤的方法將廣受青睞。但是,隨著晶片設計越來越巨大,設計方法越來越複雜,耗費數千 CPU 小時進行晶片驗證已是常態,而收斂所需時間的也比以往來得更久。然而,鑑於來自新產品上市時間的巨大壓力,在一項活動上花費這麼多時間 (儘管它是關鍵性的活動),可能會超出承受範圍。

要如何在加速覆蓋率收斂的同時實現驗證左移(shift left),以加速晶片驗證時程?

在這篇部落格文章中,我們將討論機器學習技術如何幫助您提早發現錯誤 (甚至是極端的情況下),實現更快速的覆蓋率收斂,並縮短功能性驗證的周轉時間(turnaround time)。

為什麼覆蓋率收斂問題會讓你輾轉反側

對大多數設計驗證工程師來說,覆蓋率收斂是讓人輾轉反側的問題。覆蓋率收斂通常是個辛苦的流程,必須根據在驗證計劃中所設立的覆蓋率目標,採用一系列彷彿無止盡的stimulus來驗證被測試的設計(DUT)。還必須要徹底無遺地利用設計以尋找和修正錯誤,但是,要如何確定已經找出潛藏在設計中的錯誤呢?

您可能會希望可以有一個提供 100% 覆蓋率的夢幻工具,只需要輸入您設計的覆蓋率特性,訂定限制條件,再按一個按鈕就能得到結果。在現實生活中,覆蓋率收斂是個運算密集且勞力密集型的流程,需要大量人工才能實現您設定的目標。如圖 1 所示,此流程的三個階段各有不同的目標和不同的工具要求:

  • 在早期階段,要盡快擴大覆蓋率
  • 在中期階段,在執行迴歸(regressions)測試時,會希望能減少覆蓋迴歸的周轉時間
  • 在穩定階段修正錯誤時,而迴歸保持穩定時,會希望在規劃時間和成本參數之內獲得更高的最終覆蓋率

覆蓋率收斂最大挑戰之一就是缺乏測試平台的能見度。調整測試平台既昂貴,風險又高,而且stimulus分佈的能見性又相當有限 (甚至根本沒有)。此外,也不能選用運行時間來更改stimulus分佈。該如何調整限制條件以獲得更好的輸出?又要如何達到 100% 的覆蓋率呢?通常,會因為限制過度 (因而可能錯過某些場景)、限制不足 (可能會產生不當stimulus) 或分佈偏差 (會更常產生某些特定場景) 而浪費時間和資源。此外,重複的stimulus (即使用不同的隨機種子) 和為了達到最後幾個覆蓋率目標而延長的迴歸測試,這兩者所造成的龐大運算成本更是讓狀況雪上加霜。

雖然驗證可能永遠不會真正完成,但還是希望能驗證到一定的程度,以有信心判斷晶片已經可以上市,並能用於仿真或 FPGA 原型平台上的軟體開發,或足以實際投片(tape-out)。該如何快速除錯並於先期整合關鍵指標與設定目標,而能滿懷信心地將一切左移並完成簽核?

AI/ML 如何提高晶片驗證效率

在改變諸多應用領域之後,人工智慧 (AI) 和機器學習 (ML) 也開始對電子設計自動化 (EDA) 工具產生了影響。現在,我們可以使用 AI/ML技術來設計晶片 (甚至是AI 專用的晶片!)。在晶片驗證領域中,具備 AI/ML 的工具可以快速提供分析結果來改善覆蓋流程。將智慧技術引入覆蓋流程,將能透過以下方式提高驗證效率:

  • 減少重複stimulus的產生
  • 提高難以命中、極少命中或未命中的命中機率
  • 提供stimulus分佈診斷和根本原因分析

隨著 AI/ML 技術在多次測試中逐步累積知識,它們在迴歸測試中提升最佳化優勢的能力也會跟著提升。其中,有一種名叫強化學習的學習方式,讓學習者獨立發現一連串能獲得最大回饋的動作,以促進更快和更好的覆蓋流程。這個方法可找出更多的錯誤,包括測試平台或 DUT 中的潛在問題,也能減少迴歸周轉時間。不須花費時間編寫上千個測試,只要使用一個具備 AI/ML 技術的工具來支援覆蓋率收斂的整體方法即可 (如圖 2 所示)。此方法可讓您:

  • 獲得測試平台的分析結果
  • 加速覆蓋率收斂
  • 儘早發現更多錯誤
  • 快速分流測試平台問題

由於覆蓋流程在執行模擬時會產生大量資料,因此它是能結合 AI/ML 技術的主要領域。舉例來說,AI/ML 可讓設計驗證工程師的人工分析回饋循環自動化,並建立stimulus和不同輸入之間的相關性。即使結果不完全準確,這樣的做法也能產生更高的相關性。一旦更深入瞭解相關性,將有助於確定要執行那些測試子集合(subset)以產生結果,最終可比傳統的人工測試流程更快速的達到收斂。

除了節省時間之外,更高效的驗證流程也更能節省經費。更多的測試代表更多上機時間。隨著越來越多 EDA 功能移動到雲端,減少需要的測試次數,代表降低在雲端SPOT執行個體或本地運算資源上所花費的成本。

領先業界具有AI 與 ML功能的驗證強化解決方案

新思科技的 VCS® 功能驗證解決方案是業界最高效能的模擬解決方案,也是絕大多數頂尖半導體公司的選擇。此解決方案具有智能覆蓋優化 (ICO) 功能,將 AI/ML 納入成為利器。可部署在測試平台開發的所有階段,以提供測試平台的可見度和分析。強化學習技術可加速並提高覆蓋率,找出更多錯誤並減少迴歸周轉時間。已成功找出許多穩定測試平台中的問題,例如限制條件不一致導致的失敗、SystemVerilog判斷 (SVA) 錯誤、不正確的限制 (限制不足/過度限制) 規範、通用驗證方法(UVM)存在的Driver/Monitor/Checker/Scoreboard等問題、超出設計規格的錯誤以及陷入RTL 僵局的問題。

針對全面性規劃、覆蓋率和執行管理,可以完全由成為 Synopsys Verification Continuum® 平台來完成,其中包含與Verdi® 自動化偵錯系統原生整合的VCS 模擬器、VC FormalTM次世代formal驗證解決方案、VC Execution Manager 及 VC VIP

總結

最終,在執行功能驗證時,會希望能達成覆蓋率目標,並在更短的時間內,以更少的測試次數找出更多的錯誤。這就是 AI/ML 對於驗證週期的貢獻。與其陷入看似無止盡的測試循環,思考何時才能認定自己的晶片已經過全面驗證,不如選用具有 AI/ML 功能的功能驗證技術,幫助您滿懷信心地往下一步邁進。