運用 AI 更快更準確地偵錯

本文原文由 Taruna Reddy 撰寫

英文原文:Using AI to Debug More Quickly and more Acuurately

晶片驗證和偵錯的挑戰

眾所周知,在晶片開發專案中,功能性驗證 (functional verification) 佔據了最多的時間與資源,而在整體驗證流程中,偵錯 (debug) 更是最主要的任務。要在晶片設計與測試平台 (testbench) 中定義正確的覆蓋率 (coverage) 觀察點,還必須進一步制定適當的測試平台條件 (constraints),以產生測試案例,引導測試 stimulus 有效地命中這些觀察點。然而,如果測試缺乏自動驗證 (self-checking) 機制,即使成功達成覆蓋率也沒有意義。而真正的問題,往往是在測試失敗時才開始浮現。

多次測試失敗在驗證過程中幾乎是不可避免的。人工設計會出錯,AI 工具可能產生不準確的結果,即使是重複使用的 IP,也未必能完全符合預期。驗證工程師同樣是人,因此在測試平台、測試案例以及規定條件中出現錯誤的情況也十分常見。每當測試失敗時,驗證團隊都必須進行偵錯,找出問題的根本原因。這個問題可能來自晶片設計本身,也可能來自驗證程式碼。接著,工程師需要嘗試修正問題,並成功地重新執行測試以確認修正有效。這個流程難度極高,因此工程師始終在尋找各種方法與工具來提升偵錯效率與生產力。

Synopsys Verdi:業界標準的偵錯平台

Synopsys Verdi® 偵錯平台是每位驗證工程師不可或缺的重要工具 。它提供多種方式,讓工程師在分析模擬結果時,能夠探索設計與驗證環境。使用者可以在波形(waveform)、原始碼 (source code) 、電路圖 (schematic)、狀態機圖 (state machine diagram) 以及其他不同視圖之間流暢切換,而 Verdi 會保持這些視圖之間的同步性。由於系統提供的功能選項非常豐富,Verdi 也整合了強大的人工智慧 (AI) 技術,可自動化執行困難且繁瑣的除錯步驟。

運用 Verdi Assistant 執行 AI 驅動的自動化偵錯

新思科技近期推出 Verdi Assistant,這是新一代的 AI 自動化偵錯 (AI debug automation) 。它內建專門針對偵錯任務設計的 AI 代理 (AI agent),並協同調度來發揮最佳效益。每個代理都概括了特定領域的專業知識,能將原本繁瑣、多步驟的重複性偵錯工作,簡化為一個指令即可完成的服務。多樣化的代理組合至關重要,因為驗證工作並不存在「一體適用」(one size fits all) 的解決方案。有些工程師高度依賴波形 (waveform) 分析,有些則著重於記錄檔 (logfile),還有些偏好從原始碼導航 (source code navigation) 進行偵錯。自主式代理能自動化這些任務,大幅提升驗證生產力。

使用者可透過自然語言介面 (natural language interface) 與 Verdi Assistant 互動,降低撰寫腳本或工具指令的門檻。在 Verdi 圖形使用者介面 (graphical user interface, GUI)中,提供了一個整合的聊天機器人 (Chatbot) 面板,讓使用者能以自然語言提出問題或請求。例如,使用者可以詢問:「在 Verdi 中如何追蹤驅動來源 (driver)?」即可得到詳細解答,無需自行翻閱選單或文件。使用者也可以要求 Verdi 自動執行任務,例如在聊天面板中輸入:「追蹤信號 XYZ 的驅動來源 (driver)」。

verdi-assistant-social

上方圖片中展示了一個利用自然語言輔助偵錯的範例。在畫面的右上角,使用者透過聊天機器人輸入指令:「將 /system/clock 訊號及其上升緣計數 (rising counter signal) 訊號加入波形視圖。」接著,Verdi Assistant 便自動產生對應的 Tcl 指令 (Tcl commands),將這兩個訊號一併加入波形視圖中。當使用者提出問題時,Verdi Assistant 會透過 Knowledge Assistant 存取 Synopsys SolvNetPlus 中的完整知識庫。該知識庫包含使用者手冊、各類技術文件、訓練素材、 自助支援資源。

無縫整合與未來創新

許多使用者仰賴整合式開發環境 (IDE) 來撰寫與編輯其設計與驗證程式碼。近年來,Microsoft Visual Studio Code (VS Code) 已成為最受歡迎的 IDE 平台之一。新思科技整合了 Verdi 與 VS Code,打造無縫的使用體驗。透過這項整合,使用者可以在 VS Code 環境中進行程式碼編輯、重新編譯以進行偵錯,並能輕鬆使用 Verdi Assistant 以及其他 Synopsys 的生成式 AI (GenAI) 解決方案,使原始碼開發與偵錯流程同步。

Verdi Assistant 亦支援透過 Model Context Protocol (MCP) 標準與其他 AI 應用程式進行連接。MCP 可讓大型語言模型 (LLM) 及其他 AI 模型,在完整安全機制下存取外部資料庫、資料與工具。因此,MCP 用戶端可以向 Verdi 發出偵錯請求,而 Verdi 則可作為 MCP 伺服端提供服務。

verdi-assistant-social

有三點已相當明確:驗證 (verification) 主導晶片開發、偵錯 (debug) 主導驗證流程,而 Verdi 則是業界公認的偵錯標準工具。隨著 Verdi Assistant 的推出,現在可以再加上一點:Verdi 已成為運用 AI 自動化偵錯、讓流程更快速、簡易的絕對領導者。