24小時(shí)聯(lián)系電話:18217114652、13661815404
中文
技術(shù)專題
自動(dòng)化C測(cè)試用例以進(jìn)行嵌入式系統(tǒng)驗(yàn)證
隨著片上系統(tǒng)(SoC)設(shè)計(jì)的發(fā)展,其復(fù)雜性越來(lái)越高,包含數(shù)千行用于系統(tǒng)級(jí)驗(yàn)證的代碼的測(cè)試套件繼續(xù)由人手工編寫,這是一個(gè)古老的傳統(tǒng),無(wú)效的做法無(wú)視諺語(yǔ)“自動(dòng)化只要有可能。” 對(duì)于在SoC的嵌入式處理器上運(yùn)行以在制造之前驗(yàn)證整個(gè)設(shè)備的C測(cè)試而言,尤其如此。
事實(shí)證明,在可能的情況下自動(dòng)執(zhí)行驗(yàn)證測(cè)試組合可以提高SoC開(kāi)發(fā)許多階段的生產(chǎn)率。約束隨機(jī)技術(shù),例如,在通用驗(yàn)證方法(UVM)測(cè)試平臺(tái)中,利用針對(duì)特定場(chǎng)景的隨機(jī)測(cè)試矢量來(lái)增加覆蓋范圍。盡管這些已提高了硬件塊級(jí)別的驗(yàn)證效率,但該設(shè)計(jì)仍被視為黑匣子,其中刺激,支票和覆蓋代碼分別編寫,對(duì)于大塊而言仍然是繁重且容易出錯(cuò)的任務(wù)。
鑒于需要將處理器測(cè)試代碼與I / O事務(wù)(通常在仿真器或原型系統(tǒng)上執(zhí)行)結(jié)合在一起,因此很難將此方法擴(kuò)展到系統(tǒng)級(jí)。為了正確驗(yàn)證SoC,必須對(duì)處理器本身進(jìn)行測(cè)試。UVM和其他約束隨機(jī)方法無(wú)法解決處理器上運(yùn)行的代碼。實(shí)際上,要在SoC上使用UVM,通常會(huì)刪除處理器,并用虛擬輸入和輸出替換到SoC總線上,從而允許子系統(tǒng)減去處理器來(lái)進(jìn)行驗(yàn)證。
SoC驗(yàn)證工程師意識(shí)到約束隨機(jī)測(cè)試平臺(tái)的局限性,即使它們?cè)谕耆珗?zhí)行SoC設(shè)計(jì)方面受到限制,也迫使他們手寫C測(cè)試以在處理器上運(yùn)行以進(jìn)行仿真和硬件仿真。這些驗(yàn)證平臺(tái)的性能不足以運(yùn)行完整的操作系統(tǒng)(OS),因此這些測(cè)試執(zhí)行“裸機(jī)”,這增加了編寫工作的開(kāi)銷。手寫測(cè)試(特別是在沒(méi)有OS服務(wù)的幫助下)以協(xié)調(diào)的方式在利用多個(gè)線程的多核處理器之間運(yùn)行是不尋常的。結(jié)果是最小限度地驗(yàn)證了SoC行為的各個(gè)方面,例如并發(fā)操作和一致性。
自動(dòng)生成C測(cè)試
當(dāng)然,自動(dòng)生成的C測(cè)試將更有效地利用工程資源。它們還增加了覆蓋范圍。與手寫測(cè)試相比,生成的C測(cè)試用例可以發(fā)揮SoC的更多功能,并且可以發(fā)現(xiàn)難以想象的復(fù)雜拐角處。多線程,多處理器測(cè)試用例可以使用設(shè)計(jì)中的所有并行路徑來(lái)驗(yàn)證并發(fā)性。他們可以在內(nèi)存段之間移動(dòng)數(shù)據(jù),以增強(qiáng)一致性算法,并在將數(shù)據(jù)發(fā)送到芯片的輸入或從芯片的輸出讀取數(shù)據(jù)時(shí)與I / O事務(wù)進(jìn)行協(xié)調(diào)。這樣做的總體效果是增加了系統(tǒng)功能的覆蓋范圍,通常從特征上要低得多的數(shù)字開(kāi)始,大于90%。
測(cè)試生成軟件稱為Test Suite Synthesis,它使用易于理解的基于圖形的方案模型來(lái)捕獲預(yù)期的設(shè)計(jì)行為。這些模型可以使用本機(jī)C ++使用Accellera便攜式刺激標(biāo)準(zhǔn)來(lái)編寫,也可以進(jìn)行直觀描述。方案模型由設(shè)計(jì)或驗(yàn)證工程師創(chuàng)建,是SoC開(kāi)發(fā)的自然組成部分,因?yàn)樗鼈冾愃朴趥鹘y(tǒng)的芯片數(shù)據(jù)流程圖,可能會(huì)在白板上繪制以解釋設(shè)計(jì)規(guī)范的一部分。
這些模型固有地包含激勵(lì),檢查,覆蓋范圍詳細(xì)信息和調(diào)試信息,從而為生成器提供生成高質(zhì)量,自我檢查的C測(cè)試用例所需的一切,從而對(duì)設(shè)計(jì)的各個(gè)方面產(chǎn)生壓力。由于它們是分層和模塊化的,因此在塊級(jí)別開(kāi)發(fā)的任何測(cè)試都可以完全重用為完整SoC模型的一部分,并且可以輕松地與不同團(tuán)隊(duì)和整個(gè)項(xiàng)目共享。最后,綜合工具可以分解單個(gè)意圖模型,以提供跨線程和I / O端口的并發(fā)測(cè)試,這些測(cè)試和同步全部同步在一起。
優(yōu)勢(shì)測(cè)試套件綜合
測(cè)試套件綜合的一項(xiàng)重要優(yōu)勢(shì)是能夠在意圖模型上預(yù)先定義覆蓋目標(biāo)。一旦指定了意圖,該工具就可以對(duì)其進(jìn)行分析,以了解可以進(jìn)行的測(cè)試數(shù)量以及將要實(shí)現(xiàn)的功能意圖。
對(duì)于SoC,這可以進(jìn)行成千上萬(wàn)次測(cè)試。然后可以通過(guò)限制要測(cè)試的意圖并將工具集中在關(guān)鍵區(qū)域來(lái)設(shè)置覆蓋范圍目標(biāo)。此功能可避免傳統(tǒng)方法中出現(xiàn)的痛苦的迭代循環(huán),即設(shè)置測(cè)試,運(yùn)行驗(yàn)證工具,了解實(shí)現(xiàn)的覆蓋范圍以及一次又一次地重置測(cè)試。
在一個(gè)由知名半導(dǎo)體公司開(kāi)發(fā)的大型SoC的典型項(xiàng)目中,驗(yàn)證工程師將測(cè)試編寫時(shí)間減少到以前需要手寫測(cè)試的20%。自動(dòng)化技術(shù)產(chǎn)生了更嚴(yán)格的測(cè)試用例,覆蓋率從84%增加到97%。另外,這些模型是便攜式的。
單個(gè)模型可以生成虛擬平臺(tái)的測(cè)試用例,寄存器傳輸級(jí)別(RTL)模擬,仿真,現(xiàn)場(chǎng)可編程門陣列(FPGA)原型或?qū)嶒?yàn)室中經(jīng)過(guò)硅驗(yàn)證的實(shí)際芯片。
調(diào)試是工程師的又一個(gè)耗時(shí),特別是在SoC級(jí)別。如果測(cè)試用例發(fā)現(xiàn)了一個(gè)潛伏的設(shè)計(jì)錯(cuò)誤,則驗(yàn)證工程師必須了解哪個(gè)測(cè)試觸發(fā)了該錯(cuò)誤以追蹤其來(lái)源。測(cè)試用例失敗可能是由于場(chǎng)景模型中的錯(cuò)誤所致,因此必須有可能將測(cè)試用例與捕獲設(shè)計(jì)意圖的圖形相關(guān)聯(lián)。此過(guò)程創(chuàng)建易于分解的高度模塊化和自包含的測(cè)試,因此易于發(fā)現(xiàn)發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
應(yīng)用場(chǎng)景
綜合測(cè)試用例可以用于設(shè)計(jì)的實(shí)際用例(稱為應(yīng)用場(chǎng)景)。例如,考慮圖1所示的數(shù)碼相機(jī)SoC
圖1:圖像處理SoC示例
SoC塊級(jí)組件包括兩個(gè)處理器,外圍設(shè)備和內(nèi)存??驁D下方顯示了SoC的簡(jiǎn)單圖形。該圖包括SoC驗(yàn)證過(guò)程中可能行使的可能的高級(jí)路徑。例如,在圖形的頂部路徑中表示的一種可能的情況是,從SD卡讀取JPEG圖像,并將其通過(guò)內(nèi)存中分配的區(qū)域傳遞給照片處理器。圖像被處理成可以顯示的形式,并加載到內(nèi)存中的第二個(gè)塊中。從那里,它傳遞到顯示控制器。當(dāng)然,這些高級(jí)塊中的每一個(gè)本質(zhì)上都是分層的,許多動(dòng)作和決定作為流程的一部分被執(zhí)行。
綜合工具將接受隨機(jī)測(cè)試并適當(dāng)安排時(shí)間。如圖所示,以最簡(jiǎn)單的形式,測(cè)試可能會(huì)調(diào)度到單個(gè)線程中,然后再進(jìn)行下一個(gè)測(cè)試,依此類推。但是,測(cè)試用例對(duì)SoC施加壓力的能力來(lái)自跨多個(gè)線程和多個(gè)處理器的交錯(cuò)應(yīng)用程序。該工具將在設(shè)計(jì)固有的并發(fā)支持下并行運(yùn)行多個(gè)應(yīng)用程序,并以盡可能曲折的方式分配內(nèi)存。在圖中,這也顯示為替代方案,其中測(cè)試分散在三個(gè)線程中,利用了在SoC存儲(chǔ)器中分配的各個(gè)區(qū)域。
當(dāng)然,將以較高的級(jí)別顯示此示例,以使過(guò)程清晰明了。實(shí)際上,層次圖將由綜合工具展平,從而創(chuàng)建大量動(dòng)作和連接。這些還將包括隨機(jī)決策,需要通過(guò)求解器算法來(lái)運(yùn)行。隨著圖表的移動(dòng),采用了AI計(jì)劃算法,該算法檢查所需的輸出并優(yōu)化輸入測(cè)試以匹配此輸出。綜合工具包括類似于OS的服務(wù),這些服務(wù)分配內(nèi)存,提供地址映射訪問(wèn),處理中斷和完成測(cè)試結(jié)構(gòu)所需的其他任務(wù)。然后隨機(jī)安排測(cè)試的時(shí)間,并適當(dāng)分配存儲(chǔ)空間和其他資源。