返工常常會(huì)讓人感到倦怠,倦怠則容易出錯(cuò),如果本身職責(zé)又在于糾錯(cuò),是把守產(chǎn)品設(shè)計(jì)完成的最后一道關(guān),那不管多倦怠,也必須打起十二分精神,這就對(duì)開發(fā)者的耐心與細(xì)心提出了極高要求,芯片開發(fā)中的回歸測(cè)試就是這種類型工作的代表。
回歸測(cè)試耗錢費(fèi)時(shí)占用工程資源
回歸測(cè)試是指在開發(fā)過程中,為了防止設(shè)計(jì)修改或新引入模塊導(dǎo)致整個(gè)設(shè)計(jì)出現(xiàn)錯(cuò)誤而進(jìn)行的重新測(cè)試。
通過回歸測(cè)試,開發(fā)者可以確認(rèn)更改或錯(cuò)誤修復(fù)后的設(shè)計(jì)能正常工作,回歸測(cè)試的主要流程是重新執(zhí)行已經(jīng)執(zhí)行過的測(cè)試用例,雖然故障可能是全新的,但流程都是舊的,所有待測(cè)模塊都是已經(jīng)驗(yàn)證過的,因而調(diào)試起來就不如在模塊化設(shè)計(jì)階段有趣。
更困難的是,回歸測(cè)試中遇到故障后的調(diào)試通常需要手動(dòng)處理。在大芯片開發(fā)過程中,完成簽核與驗(yàn)證代碼的最新變更后,需要進(jìn)行回歸測(cè)試來驗(yàn)證設(shè)計(jì),這時(shí)候一次回歸測(cè)試出現(xiàn)成百上千個(gè)故障的情況很常見,因而回歸測(cè)試的工作量往往是越到后面越大。
此時(shí),常規(guī)處理方式是由開發(fā)者手動(dòng)檢查仿真日志文件,以分析故障出在哪里,開發(fā)者會(huì)根據(jù)工具報(bào)告的錯(cuò)誤類型來對(duì)故障進(jìn)行分類,以區(qū)分故障是由設(shè)計(jì)引發(fā),還是測(cè)試平臺(tái)引發(fā),并鎖定故障發(fā)生的范圍(模塊或組件)。故障分類并鎖定范圍后,相關(guān)可疑代碼將提交給對(duì)應(yīng)的開發(fā)者來進(jìn)行故障原因分析。
圖1:常規(guī)回歸測(cè)試調(diào)試方法(圖源:新思科技)
以上過程是手動(dòng)的,需要針對(duì)失敗的回歸測(cè)試中的所有日志進(jìn)行反復(fù)分析,這不僅是對(duì)驗(yàn)證工程師經(jīng)驗(yàn)、耐心與體力的巨大考驗(yàn),也占用了大量的項(xiàng)目時(shí)間與開發(fā)資源,而且手動(dòng)分析和分流,非常容易出錯(cuò)。
例如,同一個(gè)原因?qū)е碌亩鄠€(gè)故障分散在日志中的多個(gè)段落,則可能會(huì)被他們錯(cuò)誤地分配到不同的故障組(bin),在找到故障的根本原因之前,錯(cuò)誤分箱將會(huì)導(dǎo)致這種同因故障分發(fā)給不同的設(shè)計(jì)或驗(yàn)證工程師來處理,對(duì)工程資源造成了不合理地占用。
回歸測(cè)試中的故障分析任務(wù)量大、流程繁瑣且容易出錯(cuò),因而芯片開發(fā)者都迫切希望有一種更好的方法來管理回歸測(cè)試。
人工智能與機(jī)器學(xué)習(xí)是應(yīng)對(duì)任務(wù)量大、流程繁瑣的重復(fù)性工作的利器,新思科技通過將機(jī)器學(xué)習(xí)引入到回歸測(cè)試故障分析中,有效減少了典型回歸測(cè)試流程中的手動(dòng)工作,成倍提升了回歸測(cè)試效率,從而打破了回歸測(cè)試對(duì)芯片開發(fā)工作的瓶頸限制,該解決方案即新思科技Verdi自動(dòng)調(diào)試系統(tǒng)中的回歸調(diào)試自動(dòng)化(RDA)模塊。
Verdi RDA破解回歸測(cè)試瓶頸
通過整合多種先進(jìn)技術(shù),Verdi RDA對(duì)回歸測(cè)試中的日志分析、分箱(按故障特征進(jìn)行分bin)、分流(按設(shè)計(jì)故障與測(cè)試平臺(tái)故障對(duì)故障進(jìn)行分流)和故障根本原因分析(RCA)都實(shí)現(xiàn)了自動(dòng)化。
圖2:基于機(jī)器學(xué)習(xí)的自動(dòng)化回歸測(cè)試調(diào)試流程
(圖源:新思科技)
以故障分箱為例,Verdi RDA首先收集回歸運(yùn)行的各種日志及數(shù)據(jù),然后通過專用分析程序?qū)收先罩炯皵?shù)據(jù)進(jìn)行分析,并將故障按特征分到不同組別。
Verdi RDA通過無監(jiān)督機(jī)器學(xué)習(xí)來實(shí)現(xiàn)故障日志分析,故障分箱則依據(jù)基于UVM的信息傳遞、用戶定義的規(guī)則、驗(yàn)證知識(shí)產(chǎn)權(quán)(VIP)和基于CPU的設(shè)計(jì)(指令集)分箱,設(shè)置非常簡(jiǎn)單,也很容易使用,結(jié)果顯示,Verdi RDA故障分箱準(zhǔn)確率達(dá)到90%,可有效節(jié)約回歸故障分析時(shí)間。
故障分類之后,Verdi RDA會(huì)根據(jù)故障特征判斷問題是來自被測(cè)設(shè)計(jì)(DUT)還是來自仿真測(cè)試平臺(tái)。
對(duì)于任何追溯到設(shè)計(jì)的錯(cuò)誤,Verdi RDA會(huì)自動(dòng)執(zhí)行根本原因分析(RCA),并向開發(fā)者提供相應(yīng)的報(bào)告,幫助開發(fā)者更容易地確定故障原因。
在RDA提供的報(bào)告中,還會(huì)提供具體信號(hào)在測(cè)試運(yùn)行通過和運(yùn)行失敗之間的相應(yīng)的不同值,從而讓開發(fā)者將調(diào)試工作集中在設(shè)計(jì)的正確部分。
對(duì)于測(cè)試平臺(tái)代碼中的錯(cuò)誤,Verdi RDA則提供了事物感知調(diào)試功能,并具備在仿真時(shí)間線中前后移動(dòng)的能力,通過這些功能,驗(yàn)證工程師能夠更輕松地確定測(cè)試失敗的原因,從而快速將問題解決。
圖3:Verdi RDA流程
(圖源:新思科技)
此外,Verdi RDA還有DUTRCA、XRCA等很多好用的功能,感興趣的讀者可以掃描下面二維碼,獲得新思科技的白皮書《借助機(jī)器學(xué)習(xí)實(shí)現(xiàn)仿真回歸結(jié)果調(diào)試自動(dòng)化》,以進(jìn)一步了解Verdi RDA的強(qiáng)大能力。
總結(jié)
如前所述,芯片規(guī)模越大,回歸測(cè)試的任務(wù)越重,到后期運(yùn)行一次回歸動(dòng)輒有上千條錯(cuò)誤對(duì)開發(fā)團(tuán)隊(duì)是巨大的考驗(yàn),手動(dòng)處理回歸測(cè)試越來越占用更多工程資源,越來越難滿足大芯片產(chǎn)品設(shè)計(jì)對(duì)開發(fā)周期的要求,將回歸測(cè)試調(diào)試過程自動(dòng)化成為開發(fā)者的迫切需求,因而Verdi RDA的推出適逢其時(shí)。
Verdi RDA的自動(dòng)回歸分箱功能簡(jiǎn)易好用,幾乎不需要額外設(shè)置,就能讓驗(yàn)證團(tuán)隊(duì)從數(shù)以千計(jì)的需手動(dòng)處理的故障分揀任務(wù)中解脫出來,Verdi RDA還能準(zhǔn)確地將設(shè)計(jì)故障與測(cè)試平臺(tái)故障進(jìn)行分流,并精準(zhǔn)定位錯(cuò)誤來源,高效地為回歸測(cè)試的故障調(diào)試及解決奠定了基礎(chǔ)。
在故障調(diào)試階段,Verdi RDA會(huì)自動(dòng)重新運(yùn)行失敗的測(cè)試,并提供可視化功能以加速發(fā)現(xiàn)和修復(fù)錯(cuò)誤的進(jìn)度。
Verdi RDA對(duì)回歸測(cè)試效率的提升,已經(jīng)在實(shí)際應(yīng)用中得到了證實(shí)。例如,通過應(yīng)用Verdi RDA,聯(lián)發(fā)科將回歸測(cè)試效率提升了4倍,大幅縮減了回歸測(cè)試所需的時(shí)間。將回歸測(cè)試耗時(shí)減少為原來的四到五分之一,對(duì)一顆大型芯片的開發(fā)來說,或?qū)⒁馕吨鴶?shù)百萬到數(shù)千萬美元開發(fā)費(fèi)用的節(jié)省。