由人工智慧驱动的设计应用
隨著裝置日趨智慧化,再加上晶片與軟體結合所驅動的一系列互聯應用發展,眾所周知,晶片设计團隊總是在思考如何向客戶提供創新且差異化的产物。在半導體領域,设计晶片的過程至關重要,但許多人忽視了设计和測試平台程式碼(code)品質對於專案成功的關鍵性。
面對多種編碼風格、下游工具的挑戰,以及與上市時程(time-to-market)競賽,工程師們面臨著各種晶片设计缺陷及其導致的功能瑕疵、设计迭代(iteration),甚至是重新设计晶片(respin)等更糟糕的情況。市場上雖然有工具能夠在设计開發過程中識別 RTL 的效率問題,但這通常發生在晶片设计周期的晚期,而此時已經投入了相當多的時間和精力。
在暫存器傳輸層(RTL)设计階段進行深入的早期分析,對於團隊來說是識別和修復複雜晶片 RTL 問題,並盡早採用真正左移(shift left)方法的關鍵。Linting檢測提供全方位的檢測流程,讓團隊能夠及早發現基本問題,並從系統單晶片(SoC)设计之"初就建立其功能安全(functional safety)、可靠性和可移植性(portability)。
在本系列三個章節的第一章中,我們將探討Linting檢測的演變、擁有導引方法論和規則的好處、如何處理白雜訊(white noise),以及最終團隊在無論设计複雜性如何的情況下都能順利地找到设计錯誤。
Linting技術已經存在了數十年。過去,團隊使用Lint工具進行兩種檢查:語法(syntactic)檢查係用來验证程式碼中的關鍵字、對象名稱等是否準確放置,而語義(semantic)檢查則是用以確定程式碼中的參考(reference)是否有效。當時的根本目標是幫助客戶解決繁瑣的可移植性挑戰,最基礎的檢查被認為是最先進的做法,舉例來說,將 RTL 從一個系統單晶片移植到另一個系統單晶片,需要結構良好且模塊化的 RTL 程式碼,而這些程式碼應該要直觀、易於理解,且不需要額外維護。
然而,隨著上市時程年復一年的縮短,设计團隊一直在尋找提高產能和系統性验证錯誤的新方法。有鑑於此,Linting檢測這種可以及早消除複雜錯誤的有效技術開始廣受歡迎,尤其在设计周期的模拟合成(simulation synthesis)或佈局繞線(place-and-route)階段。
根据 ,開發人員在使用錯誤的監控工具時感到十分力不從心。這些工具不僅無法達到預期效果而導致某些錯誤(error)成為漏網之"魚,甚至還被客戶公開指出該疏漏。超過 40% 的開發者認為,修復缺陷(bug)和錯誤(error)是他們最大的痛點。簡而言之",晶片規模或複雜性越大,問題就越多。
為了與產業趨勢和市場變化保持同步,新思科技(Synopsys)積極整合先進演算法(algorithm)和分析技術,為设计人員提供有關设计的詳細資訊和洞察見解(insight)。隨著時間的推移,我們開始增加更複雜的檢測功能,以處理模拟合成(simulation synthesis)複雜性,讓设计人員使用Synopsys Design Compiler? 全方位RTL合成解决方案核心所檢測到的錯誤,能與所有錯誤保持一致。此舉為设计人員提供了實時(real-time)通知,讓他們瞭解在合成階段後期可能會遇到的問題,優化了團隊的工作效率,並朝向「無瑕疵(clean)」且準備好交付签核(signoff)的程式碼邁進。
那麼,Linting工具是如何運作的呢?它們依賴一套基於最新行業標準的規則來運行,並根据其應用領域進行分類。這些規則降低了成本,幫助设计團隊快速啟動硬體開發,加速Lint工作流程的建立。儘管聽起來令人印象深刻,但這些規則集大多需要數十年時間來製作、維護和掌握要領。
為此新思科技(Synopsys)創建了 GuideWare 方法論文檔和規則集(可至新思科技SolvNetPlus 知識庫存取相關內容),為全世界的设计團隊提供循序漸進的框架(framework)以滿足正確性和一致性,並最大限度地減少建立、管理和整理(curate)每條規則所需的時間。舉例來說,現今業界大約有 1500 套規則。除了這些規則集,我們的團隊不遺餘力地验证了特定市場細分(market segment)的額外規則,如航空和國防領域的 DO-254,以及汽車市場的 ISO 26262。
通過使用推薦的Lint檢測規則,设计團隊節省了原本用來確認所選規則是否符合其問題需求,以及思考是否有其他規則可以提供更適切解方的大量時間。這些最低限度且強制性的檢測使设计人員能夠進行進階Lint檢查,運行無瑕疵的 RTL 程式碼,並從程式碼編寫的那一刻起就識別出设计故障(design fault),對半導體產業來說可謂一大躍進。
Synopsys VC SpyGlass Lint 解决方案涵蓋Synopsys Design Compiler 兼容性規則,可實現左移方法,讓用戶預先知道某些 RTL 結構在合成期間是否會被妥善處理。另外,Synopsys VC SpyGlass Lint 中的 Synopsys Formality? 等效性檢測(equivalence checking)規則,也能幫助用戶在流程早期確定階段檢測編碼風格是否會導致模拟合成結果不一致(simulation and synthesis mismatch)的問題。
良好的尝颈苍迟颈苍驳检测工具不仅需要识别语法(蝉测苍迟补虫)、风格(蝉迟测濒别)、错误(产耻驳)或安全性问题,还必须提供有用的线索以进一步说明此问题為何、為什麼会造成损害,以及应该如何解决。随着半导体公司争相实现更快的上市时程,晶片投片(迟补辫别-辞耻迟)的速度已成為此挑战的关键一环。
在投片過程中進行手動偵錯不僅耗時,還需要大量的領域知識。晶片设计人員希望能夠在设计過程早期執行許多複雜任務。此外,進行多次Lint檢測不僅會產生太多白雜訊,還會增加设计人員遺漏關鍵違規(violation)的機率,並耗費時間試圖解決該問題。這也意味著將花費更多時間來判斷該違規是否屬實。
隨著设计團隊地理位置越發分散,设计目的的一致性和準確性成為晶片整合團隊的一大障礙。新思科技(Synopsys)意識到,我們勢必要提供一個整合型解决方案以實現智慧化、快速低雜訊檢測的需求。有鑑於此,新思科技將最新一代的 Synopsys VC SpyGlass?與機器學習(machine learning)技術結合,讓用戶得以找到違規的主要根本原因(root cause)——這在檢測領域中實屬一大突破。此整合將白雜訊減少了 10 倍,大大加快了Lint分析收斂的速度,並幫助设计師快速找到並修復Lint問題。
隨著系統單晶片(SoC)的複雜性不斷增加,RTL 程式碼需要與不同的等效性檢測器(equivalence checker)和模拟器(simulator)交互操作,並且讓用戶易於使用。雖然之"前的Lint檢測可以提前識別出幾種結構性問題,但仍然存在一些並不容易識別的「功能性(functional)」問題。功能Linting分析透過簡單的按鍵式流程(push-button flow),幫助用戶在測試平台可用之"前提早測試功能性問題,以節省時間和资源。
時至今日,傳統Linting檢測已發展到涵蓋功能签核、有限狀態機(FSM)分析以及程式碼複雜性分析,而 Synopsys VC SpyGlass 等解决方案得以進一步捕捉各種錯誤,並運用高效且詳盡的程式碼Lint檢測真正實現「左移(shift left)」设计流程。隨著新流程導入,晶片设计領域將擁有一套全面性解方以解決結構(structural)和電性(electrical)問題,這些都與设计的RTL敘述相關聯,並能更快地識別出根本原因。
在本系列的第二章节,我們將深入探討團隊如何使用 Synopsys GuideWare 方法論,協助新手快速掌握各種靜態工具,在下一個设计上快速起步。