當(dāng)前位置: 首頁(yè) > 新聞熱點(diǎn)
發(fā)布日期:2022-07-14 點(diǎn)擊率:69
為了在DSP-IC上改進(jìn)DSP技術(shù)的質(zhì)量,恩智浦半導(dǎo)體(其前身為飛利浦半導(dǎo)體)的一個(gè)部門將驗(yàn)證方面的經(jīng)驗(yàn)轉(zhuǎn)換成了推進(jìn)驗(yàn)證工藝發(fā)展的工具和技術(shù)。后續(xù)章節(jié)將分享這些經(jīng)驗(yàn)。
創(chuàng)建新的驗(yàn)證解決方案
恩智浦公司的嵌入式矢量處理器內(nèi)核以超長(zhǎng)指令字(VLIW)架構(gòu)為基礎(chǔ),支持高并行度的標(biāo)量和矢量操作,目標(biāo)是各種多標(biāo)準(zhǔn)的通信技術(shù),如、WLAN和數(shù)字視頻廣播(手機(jī)電視)等。于是,在驗(yàn)證過(guò)程中需要測(cè)試許多邊界條件將成為一個(gè)前提條件(pre-condition)。冒著陳述事實(shí)的風(fēng)險(xiǎn),DSP技術(shù)的用戶可以依賴于接收具有最高質(zhì)量的健壯內(nèi)核,因此他們能夠?qū)⒕θ考械絊oC設(shè)計(jì)上。
在目前DSP架構(gòu)的復(fù)雜性下,采用隨機(jī)生成測(cè)試并且只有少量功能覆蓋點(diǎn)的傳統(tǒng)方案已經(jīng)過(guò)時(shí)。因此,從計(jì)劃到收斂(plan-to-closure)的完整方法將選用覆蓋率驅(qū)動(dòng)的隨機(jī)約束驗(yàn)證架構(gòu)。為了做到這一點(diǎn),我們將貫徹Cadence公司的plan-to-closure方法學(xué),包括該公司的Specman Elite測(cè)試平臺(tái)自動(dòng)解決方案和驗(yàn)證管理平臺(tái)。
計(jì)劃的利用
選用的方法要求采用可執(zhí)行的驗(yàn)證計(jì)劃(vPlan)作為舊式基于紙張的測(cè)試計(jì)劃的替代方案。其中心思想是在過(guò)程早期就確定驗(yàn)證和覆蓋率目標(biāo),然后貫穿項(xiàng)目的整個(gè)過(guò)程,并按設(shè)立的目標(biāo)報(bào)告進(jìn)度。vPlan業(yè)已證明是非常好用的,它不僅可以用來(lái)驗(yàn)證獨(dú)立的功能塊,還能將這些功能塊集成到一個(gè)主要的子單元或完整的芯片中。
計(jì)劃階段判斷需要驗(yàn)證的特定功能,包括邊界案例。這一過(guò)程是在測(cè)試臺(tái)中編寫功能覆蓋代碼(采用e語(yǔ)言),用以判斷與每個(gè)功能覆蓋點(diǎn)相關(guān)的特性。
在整個(gè)驗(yàn)證過(guò)程中產(chǎn)生的報(bào)告指明了被覆蓋(和尚未覆蓋)的點(diǎn)。針對(duì)每種情況,覆蓋率參數(shù)都將被返回給原始的vPlan。
多級(jí)驗(yàn)證策略
為了避免研發(fā)過(guò)程中的依賴性,可以選用多級(jí)驗(yàn)證策略,該策略專門將內(nèi)核驗(yàn)證與其他的DSP子系統(tǒng)(DSS)分隔開(kāi)。在e語(yǔ)言中,總線功能模型(BFM)是專門為了內(nèi)核開(kāi)發(fā)的。BFM具有DSS驗(yàn)證所需的足夠功能,可以與RTL代碼和內(nèi)核自身的驗(yàn)證同時(shí)產(chǎn)生。通過(guò)運(yùn)行實(shí)際的軟件,最后的驗(yàn)證階段重點(diǎn)將放在RTL內(nèi)核和其它DSS部件的集成上。
內(nèi)核的驗(yàn)證
為了在驗(yàn)證內(nèi)核之前驗(yàn)證基本的功能,RTL設(shè)計(jì)師通過(guò)激勵(lì)輸入并檢查輸出的方式對(duì)一些單獨(dú)的功能區(qū)進(jìn)行基本的測(cè)試。這種方法主要用于接口功能模塊。大多數(shù)獨(dú)立功能塊是利用內(nèi)核測(cè)試環(huán)境的一個(gè)子集進(jìn)行測(cè)試的。
完整內(nèi)核的獨(dú)立驗(yàn)證廣泛地依賴于指令集仿真器(ISS),它是Adelante軟件開(kāi)發(fā)套件(SDK)中的一個(gè)組件。ISS包括全部寄存器的管線執(zhí)行周期精度,這些寄存器是在DSP的指令集架構(gòu)(ISA)中定義的。這意味著在每一個(gè)執(zhí)行周期的末尾,這些寄存器的狀態(tài)與RTL中相應(yīng)寄存器是精確匹配的。逐個(gè)周期地比較ISS和RTL寄存器的狀態(tài)是內(nèi)核驗(yàn)證中使用的最重要的方法。
如圖1所描述的那樣,所有的內(nèi)核測(cè)試是隨著程序在DSP核上的運(yùn)行來(lái)實(shí)現(xiàn)的。程序可通過(guò)測(cè)試生成器創(chuàng)建,用的是e語(yǔ)言,它能產(chǎn)生一序列的指令去試圖用不同的操作數(shù)來(lái)執(zhí)行所有不同的DSP矢量和標(biāo)量運(yùn)算。
圖1.內(nèi)核驗(yàn)證流程利用e編寫的組件鏈接RTL和ISS仿真。
針對(duì)測(cè)試生成的約束(也用e表達(dá))被分為如下兩類:
1. 捕獲有關(guān)DSP指令集基本規(guī)則的“硬“約束,例如哪些運(yùn)算可以并行執(zhí)行。
2. 指明被測(cè)子單元中的子單元和運(yùn)算的“測(cè)試”約束。
多路測(cè)試功能允許我們?cè)诜抡娣?wù)器陣列上并行執(zhí)行任務(wù),從而減少了每次回歸運(yùn)行的總時(shí)間。測(cè)試生成階段的輸出是一個(gè)程序映像,可以直接下載到DSP的程序存儲(chǔ)器中,并在RTL仿真中執(zhí)行。
盡管硬約束能夠捕獲絕大部分依賴于結(jié)構(gòu)的問(wèn)題,但在執(zhí)行的不同階段多指令間還會(huì)偶爾出現(xiàn)許多微妙的資源沖突。與試圖利用約束捕獲所有這些規(guī)則相反,可以利用ISS及其詳細(xì)的指令集架構(gòu)模型。
解決沖突
除了計(jì)算每條指令的預(yù)期結(jié)果,ISS還檢查該指令針對(duì)管線內(nèi)其他指令的有效性。如果發(fā)現(xiàn)資源沖突,一個(gè)錯(cuò)誤條件將會(huì)報(bào)告給測(cè)試生成器。該測(cè)試生成器具有“備份”和重發(fā)指令的能力,因此可以避免這些沖突。事實(shí)上,在最終測(cè)試程序中只包含無(wú)沖突的指令。
當(dāng)在內(nèi)核驗(yàn)證環(huán)境中執(zhí)行每個(gè)測(cè)試程序時(shí),ISS是與DSP RTL并行運(yùn)行程序的。這兩種表述經(jīng)對(duì)齊后再被包含進(jìn)一個(gè)e檢查代碼,該代碼在每個(gè)管線執(zhí)行周期的末端比較所有ISA定義的寄存器狀態(tài)。這種能夠發(fā)現(xiàn)主要缺陷的方法已被證明是行之有效的。在針對(duì)ISS驗(yàn)證RTL的過(guò)程中,也能夠檢測(cè)出ISS中的錯(cuò)誤。
應(yīng)用覆蓋率指標(biāo)
自動(dòng)測(cè)試臺(tái)為每項(xiàng)測(cè)試收集了具體的覆蓋率指標(biāo)。其結(jié)果是產(chǎn)生針對(duì)計(jì)劃的全過(guò)程掃描。
除了功能覆蓋點(diǎn)外,傳統(tǒng)的代碼覆蓋方法也可用來(lái)幫助識(shí)別無(wú)法被充分測(cè)試的部分RTL代碼。仿真器的本地代碼覆蓋功能可用來(lái)收集每次仿真測(cè)試的結(jié)果并對(duì)結(jié)果進(jìn)行合并。為了產(chǎn)生單個(gè)的頂層覆蓋視圖,可以書寫腳本將功能覆蓋與仿真器的代碼覆蓋報(bào)告結(jié)合到一起。
第一步集中于進(jìn)入DSS驗(yàn)證之前的獨(dú)立內(nèi)核驗(yàn)證過(guò)程期間指令的單獨(dú)正確執(zhí)行上。當(dāng)然,DSP運(yùn)算的其他方面,例如中斷處理,是在DSS驗(yàn)證過(guò)程中測(cè)試并在集成驗(yàn)證階段期間確認(rèn)的。
轉(zhuǎn)到DSS組件
在對(duì)整個(gè)子系統(tǒng)進(jìn)行驗(yàn)證之前,我們先用獨(dú)立的測(cè)試臺(tái)對(duì)幾個(gè)DSS RTL組件進(jìn)行了驗(yàn)證,這將簡(jiǎn)化一些邊界案例的執(zhí)行。此外,組件的并行測(cè)試避免了驗(yàn)證過(guò)程中由于一定的依賴性所產(chǎn)生的延遲。
為了執(zhí)行測(cè)試序列,采用了一個(gè)經(jīng)典的基于e的測(cè)試臺(tái)。記錄板對(duì)結(jié)果進(jìn)行跟蹤以驗(yàn)證三個(gè)獨(dú)立的DSS功能塊。
在組件級(jí)驗(yàn)證過(guò)程的同時(shí),DSP-IC驗(yàn)證工程師還開(kāi)發(fā)出了用于內(nèi)核的BFM,從而允許提前啟動(dòng)DSS驗(yàn)證。另外,BFM還提供了對(duì)約束隨機(jī)激勵(lì)的精密控制,其仿真速度快過(guò)完全的RTL實(shí)現(xiàn)。
圖2描述了BFM的主要功能以及整個(gè)DSS驗(yàn)證環(huán)境。與組件級(jí)測(cè)試臺(tái)類似,該環(huán)境采用eVCs和記錄板來(lái)生成流量和跟蹤結(jié)果。
圖的絕大多數(shù)驗(yàn)證利用了DSP內(nèi)核的一個(gè)BFM。
復(fù)用優(yōu)勢(shì)
這種隨機(jī)約束并以覆蓋驅(qū)動(dòng)的環(huán)境采用e編寫的面向?qū)ο蟮墓δ?允許高度的驗(yàn)證復(fù)用。在完整的DSS驗(yàn)證過(guò)程中,組件級(jí)eVCs、記錄板和序列都已得到復(fù)用。另外,還采用了一個(gè)商用的AXI eVC和共享的APB eVC軟件,從而可以充分利用前人所做的驗(yàn)證工作。
就DSP內(nèi)核驗(yàn)證而言,業(yè)已證明覆蓋方法對(duì)DSS驗(yàn)證是非常重要的。DSS vPLAN包括一個(gè)基于架構(gòu)師、設(shè)計(jì)師和驗(yàn)證工程師推薦的具體功能列表。當(dāng)進(jìn)行測(cè)試時(shí),用于全部RTL DSS組件的代碼覆蓋參量被收集到一起,此外,功能覆蓋結(jié)果也被收集和合并。
一項(xiàng)好投資
DSP-IC的驗(yàn)證策略在每一層都具有通用的主題:即廣泛地利用隨機(jī)約束激勵(lì),復(fù)雜的自動(dòng)測(cè)試臺(tái)環(huán)境,可執(zhí)行的驗(yàn)證計(jì)劃,以及一個(gè)對(duì)能夠度量驗(yàn)證過(guò)程的覆蓋率參量的依賴性。能夠自動(dòng)執(zhí)行回歸運(yùn)行并精確地報(bào)告測(cè)試結(jié)果也很有用處。
用于開(kāi)發(fā)DSP-IC先進(jìn)方法的投資將會(huì)取得豐厚的匯報(bào)。Adelante VD3204x嵌入式矢量DSP核已被證明是一款高質(zhì)量的DSP,極具靈活性,并且易于集成,至今已經(jīng)用于多個(gè)SoC設(shè)計(jì)中。該方法被證實(shí)有助于我們目標(biāo)的實(shí)現(xiàn),其復(fù)用能力對(duì)VD3204x嵌入式矢量DSP系列產(chǎn)品的進(jìn)一步發(fā)展來(lái)說(shuō)也是至關(guān)重要。
作者:
高級(jí)驗(yàn)證工程師Roger Witlox,
高級(jí)驗(yàn)證工程師Ronald Heijmans,
驗(yàn)證工程師Chris Wieckardt