文章首發于發改委旗下《中國戰略新興產業雜志》,雜志由中華人民共和國國家發展和改革委員會主管、中國發展改革報社主辦,是目前唯一面向我國戰略性新興產業的中央級權威期刊。
前言
從70年代至今,芯片設計工具經歷了計算機輔助設計(Computer-aided design,CAD)、計算機輔助工程(Computer-aided engineering,CAE)和EDA(Electronic Design Automation)三個階段。
但近年來,芯片設計、驗證的復雜度和成本急速上升,現有EDA的發展速度越來越來越跟不上芯片設計規模和需求的快速增長,且面臨著種種技術挑戰。因此,芯華章攜手生態合作伙伴共同研討,率先提出并明確了未來5-15年達到EDA 2.0的發展目標,主要包括開放和標準化、自動和智能化、平臺和服務化這三個大的方向,其中也特別提出了智能化驗證平臺的概念,這個概念與芯片的前端驗證有很多的聯系。
芯片前端設計,主要指芯片設計里的功能實現過程。這個實現過程中的各種測試和確認,就是前端驗證。隨著芯片越來越復雜,驗證的工作量逐漸超過了設計的工作量,當前無論是投入的人力或時間,芯片實現流程中驗證工作都占最高比例。因此高質量的前端驗證工具,對芯片設計非常重要。 當前芯片驗證工具的市場,主要由Synopsys、Cadence和SiemensEDA(原Mentor)三家國外EDA廠商占領,特別是Synopsys和Cadence,都有自己完整的全套前端驗證軟硬件工具集。前端驗證工具的全球市場規模大約為每年15-25億美元,約占整個EDA市場的15-20%。
本文重點面向“工具平臺化”目標,聚焦到芯片設計的前端驗證環節,從驗證的核心目的、常用工具出發,分析在哪些方面可以從“驗證工具”發展為“驗證平臺”,提高驗證效率,為芯片設計客戶提供更多的價值。
前端設計驗證的目的和指標
芯片設計的前端部分,最簡化流程只需要邏輯描述(寫RTL級代碼)和邏輯綜合兩步,就可以生成前端網表(netlist),完成設計過程。但是,如此復雜的硬件芯片邏輯,很難保證邏輯完全正確,也需要確認軟硬件能正確配合。
因此,芯片的前端設計投入,大部分都花在前端設計驗證(簡稱前端驗證)上,這已經成為當下整個芯片設計流程中的最大最耗時間的瓶頸。同時,越來越激烈的市場競爭和越來越短的創新周期要求芯片盡量縮短驗證時間,越來越高的制造成本又要求盡量提高驗證質量。
前端驗證的主要目的是盡可能短的時間內,確保設計的邏輯功能正確性和完備性。這種正確性和完備性是如何衡量的?當前的芯片前端驗證,已經逐漸形成了覆蓋率驅動的驗證流程和評價指標,包括:
功能覆蓋率
檢查硬件邏輯實現和軟硬件集成系統已經是否達到了應用系統的全部目標功能。
斷言覆蓋率
斷言覆蓋率與功能覆蓋率有重合之處,但也有區別,主要目的是檢查邏輯實現是否達標和有沒有超出設計目標之外的錯誤行為。
代碼覆蓋率
檢查邏輯實現有沒有可觸發但沒有測試過的代碼行、分支、條件,或不可觸發的冗余代碼。
故障覆蓋率
針對特定類型的芯片如車規芯片,對功能安全要求比較高,還有故障注入測試和故障覆蓋率的概念。目的是檢查如果出現某些特定物理錯誤是否會導致系統發生不可接受的后果。
除了可以由工具自動完成的語法檢查等基本檢查外,上面的四種覆蓋率指標其實是測試了“我想要的”、“我想到的”、“我沒想到的”和“我不想要的”這四個層次,達到比較完備的功能性驗證目的。
前端設計驗證的方法和工具
仿真模擬驗證的方法,首先將輸入場景利用軟件的方法模型化,或者直接運行目標硬件上的軟件,從而模型或目標軟件產生測試激勵,測試激勵輸入給運行在EDA仿真工具內的芯片設計。簡單來說,就是將輸入驅動給設計,驗證這邊根據具體的功能,也抽象的描述其功能以及預期結果,最后根據模型預期結果和設計輸出結果統計前面提到三種覆蓋率指標。 如下圖里的高層次測試用例既可以是UVM事務級模型,也可以是CPU上運行的軟件產生的場景數據,最終經過UVM等事務級測試環境轉化為信號激勵給DUT(待測設計,Device Under Test)。
前端的仿真模擬驗證工具,根據仿真原理的區別,一般分為軟件仿真工具、FPGA原型仿真工具、硬件仿真工具。
? 軟件仿真也叫邏輯仿真,在主機(一般為x86)上通過CPU軟件去仿真設計電路的行為,對模塊級電路的編譯速度快但仿真速度很慢,調試性能好。
? FPGA原型仿真基于高性能FPGA芯片和專用軟件工具組成,由于FPGA芯片內部電路可重構的特點幾乎可以完全映射芯片的邏輯設計,又有高性能芯片高速并行的特性,因此基于FPGA原型工具的仿真性能是最高的,對由真實軟件驅動的SoC級軟硬件協同仿真特別重要。
? 硬件仿真工具基于硬件平臺和專用軟件工具,其核心硬件有基于FPGA的也有基于專用ASIC芯片的,與FPGA原型仿真工具的主要區別在于硬件仿真保證了更高的可調試性和更大的設計規模,但性能不如FPGA原型仿真。除了RTL仿真調試之外,硬件仿真與FPGA原型工具一樣經常用于軟硬件系統集成驗證。
此外,近年來基于Accellera PSS(Portable Stimulus Standard)標準和高級語言建模的智能激勵生成工具,可以高效地針對特定驗證場景自動產生測試用例。針對不同的驗證平臺和驗證層級,PSS工具可以生成不同形態、適配多種驗證環境的測試用例,配合各種仿真模擬工具進行芯片驗證。
02 形式驗證的方法和工具
形式驗證是仿真模擬驗證的一種補充,是從數學上完備地證明設計實現方案是否滿足了設計規范所描述的功能。其采用基于模型的數學求解方法,針對用戶提供的斷言和屬性,面向目標設計所有可能的輸入來進行證明,確定該設計是否與給定的規范功能一致,從而避免在一個極大輸入范圍內做無數次仿真模擬,針對被測模塊直接給出完備的功能和代碼覆蓋率結論,提升驗證的可靠性和效率。
形式驗證方法對應的工具一般就是支持模型檢查(model checking)的專用形式驗證工具,其應用流程包括設計模型化、模型和解空間分析、模型求解、反例輸出等,最后要么證明設計是正確的,要么給出能證明設計出錯的輸入用例。
03 分析和調試的工具
同時,驗證過程中驗證工程師還需要對設計和驗證進行調試的手段,這包括了電路、波形和代碼查看、覆蓋率跟蹤分析、仿真流程分析、高層次協議分析等功能,業界也有多種相關的驗證調試工具。
前端驗證工具的統一和平臺化
前面提到的五種前端驗證工具,其共同的驗證目標都是前文提到的幾種覆蓋率,驗證過程中也都要給工程師提供調試的手段和驗證流程的控制。基于這些共同的目標、技術和方法,我們可以想到,多種驗證工具可以提取共同點、協同工作、規范流程,形成一個統一的驗證平臺。 統一的驗證平臺,其統一性體現在功能模塊、數據和流程這三個方面。具體可以列為如下幾點:
統一的前端代碼解析
從用戶的RTL級設計代碼出發,要經過解析、編譯、優化、映射等步驟,其中前端的解析、編譯和部分優化步驟是與具體運行的硬件無關的,這部分模塊可以在各驗證工具間共享,實現算法、中間數據和變量命名的統一,這對EDA產品開發和客戶調試都有很大的便利。
統一的覆蓋率數據庫
無論是軟件還是硬件仿真,包括形式化驗證,都可以輸出對應測試模塊覆蓋率的數據,這些交叉數據必須統一到一個最終的覆蓋率數據庫和訪問接口中,在各工具間共享,才能制定高效的測試計劃,避免重復測試。Accellera組織曾發布過UCIS (Unified Coverage Interoperability Standard)這個覆蓋率數據交換標準,統一的驗證平臺應該支持這樣的標準化接口,并在各驗證工具間統一數據格式。
統一的仿真波形數據庫
類似于覆蓋率數據庫,各種工具仿真的波形結果,也需要有統一的數據庫格式,方便各種工具協同。目前除了IEEE1364標準中規定的開放數據格式VCD之外,Synopsys公司的FSDB私有壓縮格式數據庫也是常見的波形格式。未來國產EDA行業一定會出現更開放性能更好的統一波形數據格式。
統一的智能調試系統
各種驗證工具的仿真和求解結果,都只是龐雜的驗證數據庫,需要給用戶提供統一的界面和接口進行設計調試。這種調試包括查看波形、電路、代碼覆蓋率和功耗等各種數據,并支持用戶以靈活的條件組合展示數據,實現智能化分析和追蹤設計錯誤。以不同方式對多種工具收集到的驗證數據進行深度數據挖掘,形成一個統一的智能調試系統,輔助加快設計流程。
統一的計算任務管理和計算資源調度
前端驗證無論是基于仿真還是基于形式化模型,其本質都是大量的計算任務,底層需要各種計算資源(CPU, GPU, FPGA, memory)的支持。這些任務管理和資源管理,如果采用統一的調度器和資源管理器,不僅可以提高資源利用效率,提高驗證的自動化流程,也能更好地利用云計算平臺的海量彈性資源。
驗證工具之間的深度協同和流程自動化
由于仿真目標一致性和技術實現的相似性,各驗證工具也可以基于統一的驗證平臺實現多種互相協同,以及實現自動化的工作流程,這包括但不限于:
?軟件仿真與硬件仿真的協同和加速
?硬件仿真和FPGA原型的數據、模型、接口復用
?PSS工具自動生成激勵并自動輸出給仿真工具
?形式化驗證的覆蓋率結果自動替代非必要的仿真用例
?PSS、軟件仿真及調試工具協同,形成低功耗測試、驗證和分析方案
統一化的驗證平臺,不僅僅是五種驗證工具的聯合使用,它成為了更強大的驗證工具,給用戶帶來更好的易用性、更高的驗證效率、更自動化的使用流程、更智能的驗證方案。同時,統一驗證平臺的模塊重用、模塊開放和接口開放,也給驗證工具廠商甚至整個EDA行業減少了重復造輪子的工作。
從當前的EDA工具市場看,處于領先地位的幾家國外EDA廠商已經初步啟動了前端驗證工具的協同,在最近幾年紛紛推出了“驗證平臺”的概念,特別是在同一公司內的工具之間共享覆蓋率和波形數據方面。
但是幾大EDA廠商之間的數據協同還基本不存在,同時在更高層次的流程、任務、資源管理的統一性上還有所欠缺。國產EDA工具方面,目前只有芯華章科技專注在前端數字驗證全流程工具和平臺,也推出了國產化統一驗證平臺。
總結
EDA是一個寬泛的概念,對應了非常長的工具鏈和產業鏈,這個鏈條上的每個主要環節都有自己的特點和需求。國產EDA要達到盡快發展、追趕先進水平的目的,就要對EDA的每一個環節進行深耕,彌補不足,發揮優勢。
本文通過對EDA流程中前端驗證環節的總結、分析,提出了前端驗證工具統一為前端驗證平臺的一些具體融合路徑,以及統一驗證平臺給芯片設計行業帶來的額外價值。這既展現了芯華章等國產驗證工具廠商對產業的經驗和理解,也希望能拋磚引玉,促進國內EDA產業共同求索,促進融合和開放,滿足后摩爾時代的芯片設計和驗證要求。
作者簡介
楊曄 芯華章科技產品和市場規劃總監
楊曄現任芯華章科技產品和業務規劃總監,他在各類型 CPU 與DSP 相關領域擁有超過 20 年的經驗,包括系統級處理器仿真與原型設計、操作系統內核和驅動程序、異構以及基于云端的AI芯片設計。他在軟硬件協同設計的豐富實戰經驗將為EDA產品和市場帶來更多技術創新。在加入芯華章之前,他曾就職于英特爾、新思科技與思華科技等公司,在系統級設計和片上系統(SoC)設計、仿真、優化方面有著深刻的洞察,致力于幫助客戶設計出更好的產品。
楊曄同時擁有物理學學士學位、計算機科學碩士學位與工商管理碩士學位。
原文標題:面向后摩爾時代的EDA驗證平臺
文章出處:【微信公眾號:芯華章科技】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605301 -
芯片
+關注
關注
456文章
51155瀏覽量
426408 -
eda
+關注
關注
71文章
2785瀏覽量
173652
原文標題:面向后摩爾時代的EDA驗證平臺
文章出處:【微信號:X-EPIC,微信公眾號:芯華章科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論