選單

複雜晶片設計驗證之概述

SmartDV

作者:北美應用工程總監Bipul Talukdar

即使設計專案組把完全滿足晶片設計要求作為工作的首要目標,許多晶片設計師還是會寢食難安地擔心設計出來的晶片最後是“一塊石頭”。因為無論覆蓋率多少或使用了多少驗證工具,總可能有bug 會被遺漏。

這種高壓、苛刻的開發環境需要基於三個在功能級使用獨立驗證工具的技術,以確保設計出沒有bug並且具有高可靠性的晶片。雖然在驗證和測試過程中有很多貌似重疊的工作,但許多“身心疲憊”的設計師依然認為這種額外的努力是值得的。

上述三個功能級使用的驗證技術包括功能驗證、功能測試和內建自檢(BIST),結合這三個對晶片不同設計階段提供保證的工具,將會使設計出合格晶片的信心同步倍增。

功能驗證是最耗費資源的環節,因為它需要使用大量的 EDA 工具和佔用大量時間。功能驗證必須同時包括功能覆蓋和程式碼覆蓋,它們對驗證的問題有不同的處理方式,所以它們都是確保全面驗證的必要手段。

複雜晶片設計驗證之概述

功能覆蓋解決了晶片設計的功能是否與晶片規範匹配的問題,即規範要求的功能是否被對應驗證到,但這還不夠,因為預期的功能描述很少涉及出現異常狀態或輸入時晶片會如何反應。

在這裡程式碼覆蓋著眼於程式碼設計結構而不是設計規範,它可以發現規範中未考慮到的行為。例如,它會考慮正常執行時永遠不會出現的狀態或輸入,如果發生這種意外,會發生什麼?晶片如何響應?晶片很可能會做出意想不到的響應。

透過功能覆蓋和程式碼覆蓋量化功能驗證的互相補充,能幫助設計進入到後續的綜合、tape-out和最終到foundry進行生產。完成功能和程式碼覆蓋的驗證能排除設計中的大部分或所有功能缺陷。當然,這個結果還不是最終設計目標,最終目標是生產出合格的晶片。

晶片製造完成後,將使用功能測試和BIST來排除由製造或製造過程中其他問題引起的缺陷。根據可測試性設計要求的內容,利用BIST規劃已測試功能和待測功能的覆蓋,確保晶片內的電晶體和導線無缺陷。一個完備的測試策略(包括BIST),可以測試那些難以用搭建外部測試環境來測試晶片內部的關鍵電路,減少測試人員的測試時間,降低生產測試的時間和成本,BIST的第二個主要好處是,它可以在裝置使用壽命期間的任何時候使用,同時它還是有些應用場合可能用到的必要手段。

使用嵌入式 FPGA 可以簡化功能測試,因為 FPGA 是經過驗證的元件,它能保證按照預定程式執行,能最大限度地減少測試工作量。雖然 FPGA 中的 BIST 會帶來額外的面積和效能開銷,但使用這個技術後具有顯著的好處,包括更好的測試和具有在器件安裝到系統後仍然可以測試的可能。

我們需要一種將功能設計驗證與綜合功能測試策略相結合的綜合驗證策略,以減少晶片“見光死”的可能性。

本文內容僅代表作者觀點,不代表平臺觀點。

如有任何異議,歡迎聯絡我們。