藍色波形與時序訊號構成的深色抽象圖

Verification Built for First-Pass Silicon

在投片之前,設計缺陷是可以被發現的。這依靠合理的架構設計、嚴謹的覆蓋率管理,以及高度自動化的驗證流程。

Where Verification Breaks Down

驗證佔據了 SoC 開發週期中最大的時間比重,卻也是最難準確預估的環節。一次重新投片意味著額外的光罩成本,也意味著錯失市場窗口。團隊往往到了專案後期才意識到:儘管覆蓋率數據看起來已經達到預期,但某些完整的驗證情境實際上從未被執行。

這些問題對任何驗證工程師來說都並不陌生。為某個模組建置的驗證平台,很難重用到下一個模組;覆蓋率收斂停滯在最後幾個百分點,因為剩餘的覆蓋率項實際上不可達,卻沒有人去證明;迴歸測試耗時過長,以致工程師不再執行完整的測試集,測試失敗不斷累積,一次除錯最終變成了漫長的問題追溯。

糾纏的訊號線匯聚成一條清晰線條的深色抽象圖

Two Ways to Verify

Conventional Approach


  • 按模組分別建置驗證平台,難以重用到下一層級
  • 測試建立後再進行覆蓋率統計
  • 一套迴歸測試集,在專案關鍵節點前手動執行
  • 每次執行結束後,人工逐次檢查測試結果

MetaEncore Approach


  • 採用分層架構,在模組、子系統與 SoC 各層級重用
  • 在制定驗證計畫的同時建立覆蓋率模型
  • 分層執行迴歸測試,從快速檢查到完整迴歸測試
  • 自動收集測試結果,並合併多次執行的覆蓋率資料

What We Deliver

UVM Testbench Development


採用分層驗證環境、協定 Agent 與可重用驗證元件,透過統一的架構服務於模組、子系統與 SoC 各個層級。

Pre-Silicon Validation


進行系統整合檢查、效能與功耗情境驗證,以及早期軟體啟動與除錯,確保晶片投片後面對的是一個經過驗證的系統,而不是一個充滿未知問題的系統。

Verification Infrastructure


透過迴歸測試自動化、覆蓋率追蹤與測試結果自動收集,縮短驗證閉環,讓工程師能夠真正高效地進行驗證工作。

網格單元被藍光逐格點亮的深色抽象圖

How We Work

Testbench Architecture

我們採用分層架構進行建置。為每種協定建立可重用的 Agent,使用在交易層級進行檢查的 Scoreboard,並保持測試層的精簡:每個測試都繼承自通用基底類別,僅加入該測試所需的特定內容。設定資訊儲存在物件中,而不是寫入程式碼,因此同一套驗證環境無需重新撰寫,即可用於模組、子系統與 SoC 各個層級。Sequence 依可組合的方式撰寫,因此新增情境通常只需要組合既有內容,而不需要重新撰寫程式碼。

Coverage Strategy

我們的驗證工作以驗證計畫為依據,而不是以模擬測試為依據。隨著驗證計畫逐步形成,將各項功能特性對應到相應的功能覆蓋率點,從而使覆蓋率收斂反映驗證計畫中各項驗證目標的完成情況,而不是僅僅反映驗證平台本身的覆蓋率。約束隨機激勵用於涵蓋大量可能的測試情境,定向測試則用於涵蓋隨機化不易觸及的邊界情境;對於不可達的覆蓋率項,則加以證明並刻意豁免,而不是默默忽略。

Tiered Regression

迴歸測試分層執行,而不是作為單一任務運行。在開發過程中,較輕量的測試集用於快速回饋;更全面的測試集依較長的時間間隔執行;完整迴歸測試則依照獨立的排程執行。對於實際的 SoC 專案,一次完整迴歸測試可能需要數天,因此如果每次程式碼變更都觸發完整迴歸,結果只會遲遲無法回傳,最終沒有人會再去等待。各層級在覆蓋範圍與回饋速度之間進行權衡,並依專案實際情況決定各層級的配置,而不是套用固定模板。

測試結果會自動收集,並合併多次執行的覆蓋率資料,從而可以全面掌握目前設計的實際驗證狀態,而不需要工程師人工整理與核對大量日誌。

Methodologies and Scope

Methodology


  • UVM(通用驗證方法學)
  • SVA(SystemVerilog 斷言)
  • 覆蓋率驅動驗證
  • 約束隨機與定向激勵
  • 形式驗證
  • 功能覆蓋率與程式碼覆蓋率收斂

Scope


  • 模組、子系統與 SoC 各層級驗證
  • 協定與介面驗證
  • 控制邏輯與協定屬性檢查
  • 系統整合驗證
  • 效能與功耗分析
  • 真實情境模擬
  • 覆蓋率不可達分析
帶藍色邊光的半透明文件層疊的深色抽象圖

What You Receive

  • 驗證計畫 – 依功能特性制定驗證計畫,並直接對應到覆蓋率模型,從專案第一天起即可量化驗證進度
  • UVM 驗證平台 – 採用分層架構,並備有完整的架構文件,可在模組、子系統與 SoC 各層級重用。以經過驗證的元件為基礎建置,使專案能夠更快啟動,並更早達到有意義的覆蓋率
  • 迴歸測試集 – 提供測試集與自動化腳本,並備有完善的文件,使貴公司團隊能夠直接執行與擴充
  • 覆蓋率報告 – 彙整功能覆蓋率與程式碼覆蓋率,並為每項覆蓋率豁免提供明確的依據與說明
  • 失敗分析 – 記錄除錯過程,分析問題根因,而不僅僅提供通過/失敗的數量統計
  • 技術交接 – 提供交接文件與講解說明,使驗證環境能夠持續維護

Ready to De-Risk Your Tape-Out?

請告訴我們設計、時程,以及驗證上目前最難的一環。我們會整理出能做什麼、怎麼做、要多久,回覆您。