(本文編譯自Semiconductor Engineering)
隨著驗證團隊所承擔任務的復雜性和廣度不斷增加,方法論的改進和自動化正變得至關重要,這有助于彌補工具在速度提升方面的滯后。
工具的問題在于,許多工具仍然在單處理器內核上運行。例如,功能仿真無法利用無限數量的核心,除非在這些核心上分布進行獨立的仿真任務。雖然這有助于提高總體仿真吞吐量,但在時間緊迫的調試周期中,結果產出時間才是關鍵因素,此時這種方式的幫助就比較有限了。
新思科技戰(zhàn)略項目和系統(tǒng)解決方案執(zhí)行總監(jiān)Frank Schirrmeister表示,有三個領域正在取得進展,但速度和效果各不相同。他表示:“工具引擎的基礎速度正在提高,這是一個方面。第二個我們稱之為‘更智能的驗證’。在這個層面,涉及到驗證方法學以及正確的驗證范圍。在IP層面解決了正確的問題,可能并不一定能套用到SoC層面或系統(tǒng)層面。第三個是自動化和人工智能。這就像一張三條腿的凳子——讓驗證速度更快,通過方法學實現(xiàn)更智能的驗證,然后在此基礎上實現(xiàn)自動化。”
更智能地開展工作和應用自動化是向前邁出的一大步。其中包括清楚何時完成驗證工作,這是驗證領域最棘手的問題之一。
西門子EDA數字驗證技術部門解決方案管理總監(jiān)Bryan Ramirez表示:“了解已經測試了的內容至關重要。將其與需求聯(lián)系起來將會變得越來越重要。如何實現(xiàn)從需求或設計規(guī)范到測試計劃以及覆蓋率統(tǒng)計的自動化,是業(yè)界投入大量資金的一個領域。但這并不能解決如何達成全面覆蓋的問題。這個問題的另一個方面是,能夠將驗證范圍內不同引擎的覆蓋率整合在一起。有些問題可以用形式驗證方法解決,就將其標記為已解決,確保在仿真中不會再嘗試去解決它。或者,可以在哪里方面利用仿真或FPGA原型設計來加速部分驗證工作,從而加快運行周期。您必須能夠合并所有不同引擎的覆蓋率結果,這樣才能對整個驗證解決方案有一個全面的了解”
雖然完成驗證是最終目標,但同樣重要的是確定哪些測試必須立即運行。“當您對RTL進行更改時,是否需要運行整個回歸測試套件?您有成千上萬個測試用例,但您不知道哪些測試用例能為您帶來最大的回報,”新思科技產品營銷總監(jiān)Bradley Geden表示,“自動化的目標之一是找出哪些是高價值的測試用例,并先運行它們。我們能否使用人工智能來專注于運行僅針對這些更改的回歸測試?這是一個非常動態(tài)的環(huán)境,因為設計在變化,測試平臺也在變化。測試方案并非一成不變,因此你必須不斷地重新評估并找出哪個是價值最高的測試。現(xiàn)在他們可以更快地達到目標。運行回歸測試的目標是發(fā)現(xiàn)錯誤。現(xiàn)在你可以更快地發(fā)現(xiàn)錯誤,并更快地找到那些錯誤。這樣就可以釋放硬件資源。”
了解哪些測試無需運行也很重要。“曾經有人對我說,最快的仿真周期就是根本不需要運行的仿真周期,”西門子的Ramirez表示,“那么,我們如何幫助他們在前期更好地確定何時無需運行仿真或模擬加速周期呢?這是我們可以改進的一個領域。”
受約束的隨機測試模式生成并不是最有效的方式。Cadence產品管理集團總監(jiān)Matt Graham表示:“在這方面,我們看到了人工智能帶來的最大收益。AI可以幫助優(yōu)化浪費的周期和冗余測試。哪些測試是有用的,我們能否針對設計中我們真正關心的那些區(qū)域進行測試,而不是對設計的其他區(qū)域反復測試上千次呢?從本質上講,這種方式效率極低。但我們也可以通過提高其效率來解決這個難題。”
運行最佳測試用例是第一步。“問題在于,第二天你回來時發(fā)現(xiàn)有需要調試的故障,”Ramirez表示,“你如何解決它們?這就是我們真正開始看到人工智能和機器學習如何幫助解決問題的地方。你如何開始以更數據驅動的方式解決這些問題?驗證過程會產生大量信息,你如何幫助客戶更好地理解這些信息?我們看到客戶在過去一兩年里非常重視這一點。這讓他們在解決驗證問題時更加明智。”
目前,調試在驗證過程中花費的時間比其他任何環(huán)節(jié)都要多。“我們在人工智能方面投入了大量資源,用于智能分類,問題分級,并嘗試自動化歷程,盡可能接近問題的根本原因,”新思科技的Geden表示,“當驗證工程師早上來上班時,基于歷史數據,能夠在開始回歸測試之前預測最可能的失敗原因及其位置,這將使工作變得輕松許多。”
但人工智能也可能使情況變得更糟。“每個人都希望生成式人工智能能幫助我們更快地創(chuàng)建RTL,”Ramirez表示,“生成式人工智能會讓問題變得更嚴重,因為您能夠更快地生成代碼,但代碼的質量會降低。最終將有更多內容需要驗證。你看看軟件公司,他們的代碼嚴重依賴生成式人工智能——比例達到20%到25%。但那是一個非常不同的世界,因為軟件可以隨時打補丁。而在我們設計芯片時,重新流片的成本高達數百萬美元,必須一次性就做對。這兩個領域,軟件世界和硬件世界,在如何充分利用GenAI方面面臨的挑戰(zhàn)并不相同。”
抽象和層次
驗證工程師長期以來一直致力于確保在最合適的開發(fā)階段發(fā)現(xiàn)正確類型的錯誤。“如果你在集成階段發(fā)現(xiàn)IP錯誤,那么你可以回到IP方法論中,弄清楚為什么沒有更早發(fā)現(xiàn)它,”新思科技的Schirrmeister表示,“如果你從范圍的角度來看,包括IP、子系統(tǒng)、芯片、系統(tǒng)中的芯片(見圖1),再從引擎的角度來看——事務級、仿真、仿真加速、原型設計、芯片——我們的客戶告訴我們,如果他們在仿真中發(fā)現(xiàn)IP錯誤,IP部門將會進行嚴肅的討論。為什么沒有提前發(fā)現(xiàn)這個問題?從硬件速度的角度來看,這些設計非常龐大。從范圍的角度來看,你從IP級別開始,然后到子系統(tǒng)級別,依此類推。”
圖1:針對每個開發(fā)階段的相應錯誤。
(圖源:新思科技)
最佳的解決方案是從多個不同角度來處理問題。“更高層次的抽象是其中之一,然后是有針對性,”新思科技高級工程總監(jiān)Bernie Delay表示,“在SoC級別,您嘗試創(chuàng)建的場景不是低級別的IP場景。而是專注于緩存一致性等領域。您需要有專門針對這些問題的語言和方法。您還希望擴大規(guī)模并進行更多的系統(tǒng)級激勵生成。將激勵和覆蓋率集中在這些類型的場景上。這是SoC級別和多芯片級別問題的關鍵所在。通過更智能地生成測試,既關注系統(tǒng)內部的內容,又使用正確的抽象級別來實現(xiàn),這是整個問題的另一個關鍵所在。”
在某些情況下,重復可用于簡化問題。Ansys產品營銷總監(jiān)Marc Swinnen表示:“重復本質上是一種層次化方法,您可以捕捉重復元素之一的行為,然后對其進行建模并在整個陣列中進行復制。有兩個問題使這種方法變得復雜。一是陣列邊緣的元素與中心的元素有不同的鄰居,因此需要對邊緣進行不同的處理。此外,有些元素的頂部可能會有電線,這會產生一定的影響。但很多設計師正是出于這個原因而避免在這些元素上布線,以免破壞層次對稱性。”
模型替換具有顯著的優(yōu)勢。“黑盒化正變得越來越流行,”Cadence的Graham說道,“黑盒化指你取出寄存器傳輸級(RTL)設計的一部分,用更高層次的抽象模型來替代它們。由于時序等價性檢查技術的進步,這種做法得以實現(xiàn),該技術可以對C語言算法和已開發(fā)的RTL設計進行比較。這就使得我們在使用C語言進行工作,同時也在處理RTL設計時,二者之間有了重疊的可能,而且在開始構建之前,你不必完全驗證C語言算法。我們現(xiàn)在可以將這些工作并行進行,因為我們可以保證該流程某些部分具有等效性,從而提前推進各項工作。我們的客戶在這方面做得越來越得心應手了。”
隨著越來越多的人采用自上而下的開發(fā)方法,擁有多個抽象將變得很普遍。“如果有人最初創(chuàng)建了一個C模型,在他們進入實現(xiàn)階段之前,你可以開始用這些模型替換一些較低級別的模塊,特別是在有重復的地方,”Ramirez表示,“這就是你開始看到一些重大性能改進的地方。有趣的是,我們如何才能更好地自動化模型的替換。什么時候使用抽象模型是安全的,什么時候你真正需要RTL?我可以根據測試臺或模擬器中發(fā)生的活動動態(tài)地進行這種替換?”
在考慮諸如功耗等問題時,選擇合適的模型和設計精簡將變得更加重要。“如果你正在進行特定的用例分析,比如功耗分析,你不會詳細地考慮處理器子系統(tǒng),然后將其映射到整個芯片上并嘗試在那里進行分析,”Schirrmeister表示,“你只需要選擇與這個問題相關的芯片子集。在驗證設置中,你將針對特定的驗證任務來進行。對于特定的驗證任務,我可能只選擇一個單獨處理器的功耗模型,而對于PCI Express接口、內存和緩存選擇更高層次的抽象模型,這樣我就能了解軟件工作負載情況。我并不需要整個芯片的模型。”
方法論仍然存在一些問題,例如如何將不同抽象模型的覆蓋范圍結合起來。“我們看到越來越多的C語言和C++語言來驅動RTL設計,但人們對這種方法的信任程度能達到什么水平,目前還不得而知,”Ramirez表示,“我們還看到客戶希望為他們的設計創(chuàng)建抽象模型,并對這些模型進行驗證。他們希望對這些模型進行覆蓋范圍分析,以更好地鞏固架構,同時也定義他們的測試環(huán)境。”
進行不必要的驗證是一種浪費。SmartDV應用工程副總裁Sergio Marchese表示:“約束驗證對于確保最佳投資回報率和確保IP在目標項目中正常工作至關重要。例如,如果已知目標芯片將在某個頻率或頻率范圍內運行,則驗證應重點關注這些頻率場景。當該IP將用于不同的項目時,很顯然,必須根據新場景再次執(zhí)行驗證。或者,如果已知接口IP的總線拓撲結構使用的是單個管理器,則驗證多管理器場景的優(yōu)先級較低。IP提供商和IP集成商之間的有效溝通對于確保以最佳方式執(zhí)行驗證非常重要。”
結語
驗證是一個過程,而不僅僅是工具的集合。找到最佳方法來充分利用這些工具,在很大程度上取決于正在進行的設計。即使不同公司的情況可能有很大的重疊部分,但對于每家公司來說,最佳的方法學都會有所不同。
新思科技的Delay表示:“你試圖在最短的時間內驗證一個設計,同時仍要保持最高的質量水平。如果你像尋找一個萬能的解決方案,我認為你是找不到的。你會發(fā)現(xiàn),有AI/ML技術、形式驗證技術、便攜式激勵技術,還有基礎性能方面的考量。你需要綜合運用這些技術,才能達到足夠自信將芯片送去流片的程度。”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.