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