淺談覆蓋率收斂歷程

本文原文由Taruna Reddy共同撰寫

英文原文:The Journey of Coverage Closure

根據新思科技年度全球用戶調查報告,覆蓋率收斂(coverage closure)一直是驗證團隊要努力克服的一個主要挑戰;而在 2023 年,它的排名上升至驗證團隊所面臨的前五大挑戰之一。其中的一個主要原因是,覆蓋率收斂需要根據專案週期的不同階段,採取不同的方法。繼續閱讀以瞭解我們的客戶如何使用 Synopsys VCS ICO (智慧覆蓋率優化) 和 VSO.ai 解決方案,來克服這些挑戰。

測試平台穩定化

在專案的早期階段,主要目標是穩定測試平台、加速根本原因分析,並在 RTL 和驗證平台開發的過程中發現錯誤。在這個階段,可能還沒有收集到覆蓋率數據。除了功能正確性外,模擬器還應該利用 AI/ML 技術來增加stimuli多樣性,從而提供更多的洞察(insights)。stimuli分佈的增加可以揭示測試平台條件(constraints)過多或不足的問題,這些問題通常會阻礙覆蓋率目標被辨別出來。而這正是 VCS 中 ICO 的主要強項之一。

客戶案例: Microsoft 採用並執行了 VCS ICO,相較於傳統的 10,000 多個測試種子(seeds),利用該工具中的 AI/ML 技術,在僅 300 個測試種子中就能提升驗證效率並發現錯誤,還發現了六個新的錯誤特徵,成功實現提前完成驗證週期 (left-shift in the verification cycle)。

Qualcomm 也在其設計專案的早期階段到後期階段,全程都使用 VCS ICO 來達成這些目標。

尋找錯誤(Bug hunting)

在專案的中期階段,RTL 更加穩定,因此預期功能覆蓋率會隨著錯誤率開始上升。在這個階段的目標是找到邊角案例(corner-case)的錯誤,並改善迴歸周轉時間(TAT),以更快達成覆蓋率。在發現更多錯誤並採用最小運算資源的前提下,如何進行更多迴歸測試,並進而改善迴歸TAT是非常重要的。因此,使用 VSO.ai 這類利用 AI/ML 技術,可以從最高覆蓋率的測試歷史數據中學習,並執行更多這些測試的解決方案,有助於改善迴歸測試的 TAT。

VCS 的「序列常數分析」功能會自動搜尋line、condition、toggle和branch coverage無法到達的覆蓋率目標,並將它們從可在此階段啟用的可覆蓋目標清單中移除。

客戶案例:使用新思科技VSO.ai 以AI 驅動驗證解決方案,NVIDIA 能夠將迴歸測試的 TAT 減少 2-5 倍,而在 AMD的案例上甚至減少了16 倍

覆蓋率簽核(Coverage Signoff)

在專案最後階段(通常也被稱為「穩定期」),重點是收斂剩餘的覆蓋率和覆蓋空洞(holes)。這個階段通常是個非常需要人工手動的過程,需針對性地撰寫測試。然而,VCS 中的不可達分析(UNR, unreachability analysis)與 Synopsys VC 形式驗證解決方案緊密結合,能夠幫助減少 8% 到 80% 的驗證工作量。

客戶使用案例:Cisco 使用 VCS 的 UNR,提升9%的覆蓋率,消除了干擾,且讓工作團隊能夠專注於真正的覆蓋空洞。

VSO.ai 也能根據測試平台中的隨機性和連結性來協助提高覆蓋率。VCS ICO 和 VSO.ai 提供未取樣或不合規的區塊之根本原因分析,能夠有效封閉更接近試量產(tape-out)的覆蓋空洞,減少定向測試(directed test)的撰寫數量。

客戶使用案例:NVIDIA 根據專案的階段實施 VCS ICO、VSO.ai 和 VCS UNR,以減少運算資源,並提前至少一個里程碑(one milestone)達成覆蓋率目標,而且能夠更早地發現錯誤。

結論

總而言之,覆蓋率收斂是一個值得重視的問題,通常需要在模擬器中使用多種技術,並善用AI/ML技術,有時還需跨解決方案如採用 UNR 才能有效解決。