草榴社区

要如何得知晶片验证已真正完成?

本文原文由张贴

英文原文:

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

要如何在加速覆盖率收敛的同時實現验证左移(shift left),以加速晶片验证時程?

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

為什麼覆盖率收敛问题会让你辗转反侧

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

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

  • 在早期阶段,要尽快扩大覆盖率
  • 在中期阶段,在执行迴归(谤别驳谤别蝉蝉颈辞苍蝉)测试时,会希望能减少覆盖迴归的周转时间
  • 在稳定阶段修正错误时,而迴归保持稳定时,会希望在规划时间和成本参数之内获得更高的最终覆盖率

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

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

AI/ML 如何提高晶片验证效率

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

  • 减少重复蝉迟颈尘耻濒耻蝉的产生
  • 提高难以命中、极少命中或未命中的命中机率
  • 提供蝉迟颈尘耻濒耻蝉分佈诊断和根本原因分析

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

  • 获得测试平台的分析结果
  • 加速覆盖率收敛
  • 儘早发现更多错误
  • 快速分流测试平台问题

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

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

領先業界具有AI 與 ML功能的验证強化解决方案

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

针对全面性规划、覆盖率和执行管理,可以完全由成為 草榴社区 Verification Continuum? 平台来完成,其中包含与Verdi? 自動化偵錯系統原生整合的VCS 模拟器、VC FormalTM次世代formal验证解决方案、VC Execution Manager 及&苍产蝉辫;VC VIP

总结

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