基于eRM建立自動(dòng)化的驗(yàn)證平臺(tái)
摘要:為了縮短SoC項(xiàng)目開(kāi)發(fā)中前端驗(yàn)證的時(shí)間,實(shí)現(xiàn)自動(dòng)化的可重用性驗(yàn)證環(huán)境平臺(tái),采用了eRM驗(yàn)證方法學(xué),通過(guò)Sequence,BFM,Moni-tor,Scoreboard,Coverage等驗(yàn)證組件來(lái)實(shí)現(xiàn)此驗(yàn)證平臺(tái),并給出了基于此平臺(tái)的一個(gè)應(yīng)用實(shí)例,極大地提高了驗(yàn)證的效率和功能覆蓋率。
關(guān)鍵詞:驗(yàn)證時(shí)間;eRM;eVC驗(yàn)證平臺(tái);隨機(jī)測(cè)試
集成電路已進(jìn)入高速發(fā)展的階段,半導(dǎo)體制造商極為成功的實(shí)現(xiàn)了摩爾定律的預(yù)期發(fā)展速度,為了縮短芯片上市時(shí)間,驗(yàn)證工程師必須保證芯片在流片前能得到很完備的驗(yàn)證。為了使日益復(fù)雜的項(xiàng)目達(dá)到理想的功能覆蓋率,驗(yàn)證面臨著巨大的挑戰(zhàn)。eRM是一種基于e語(yǔ)言的驗(yàn)證方法學(xué),通過(guò)Sequence,Bfm,Mkmitor,Scoreboard,Coverage等驗(yàn)證組件建立驗(yàn)證平臺(tái),可以對(duì)芯片進(jìn)行Direct,Random等測(cè)試,并且可以很好地統(tǒng)計(jì)功能覆蓋率,極大地?fù)?jù)高了驗(yàn)證效率和生產(chǎn)率。
1 常用驗(yàn)證方法
從一個(gè)設(shè)計(jì)的功能驗(yàn)證來(lái)看,僅通過(guò)模塊的接口界面(輸入/輸出信號(hào)端口)就完全可以驗(yàn)證器件的行為以及其實(shí)現(xiàn)的所有功能,否則該器件的屬性就是不可控制的或是不可預(yù)測(cè)的。功能驗(yàn)證一般通過(guò)以下3種方法:黑盒法、白盒法、灰盒法。
黑盒法是指驗(yàn)證人員不需要用關(guān)心設(shè)計(jì)內(nèi)部是如何實(shí)現(xiàn)的,所有的驗(yàn)證都可以通過(guò)接口完成,無(wú)需直接訪問(wèn)設(shè)計(jì)的內(nèi)部狀態(tài)。白盒法是是對(duì)設(shè)計(jì)的內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)具有完全的預(yù)測(cè)和控制能力,根據(jù)驗(yàn)證功能點(diǎn)可以迅速設(shè)置感興趣的狀態(tài)和輸入激勵(lì),但不具備重用性。而灰盒法是介于二者之間,既有基于界面的驗(yàn)證組件,也有對(duì)內(nèi)部狀態(tài)控制和檢查的組件,為提高驗(yàn)證效率和重用性,一般采用灰盒法。
2 eRM驗(yàn)證方法學(xué)
eRM驗(yàn)證方法學(xué)采用的是e驗(yàn)證語(yǔ)言,利用了e語(yǔ)言中的測(cè)試激勵(lì)的生成、激勵(lì)數(shù)據(jù)的驅(qū)動(dòng)、輸出結(jié)果的采樣、輸出響應(yīng)的檢查、功能覆蓋率分析等組件,降低了驗(yàn)證過(guò)程中的人工干預(yù),提高了驗(yàn)證的生產(chǎn)率。
2.1 eVC驗(yàn)證平臺(tái)
eVC(e Verification Component)是基于eRM方法學(xué)的驗(yàn)證環(huán)境韻通稱(chēng),eVC包括所有相關(guān)的驗(yàn)證組件,從編寫(xiě)測(cè)試激勵(lì)到功能覆蓋率的收集,從模塊驗(yàn)證到系統(tǒng)驗(yàn)證,都可以通過(guò)eVC來(lái)實(shí)現(xiàn)。為了提高驗(yàn)證效率,驗(yàn)證人員都都會(huì)開(kāi)發(fā)一個(gè)黃金eVC,在實(shí)際項(xiàng)目中只需要根據(jù)實(shí)際協(xié)議擴(kuò)展該黃金eVC即可,在驗(yàn)證環(huán)境開(kāi)發(fā)前期,節(jié)省了大量的代碼。典型的eVC驗(yàn)證結(jié)構(gòu)如圖1所示。Agent是驗(yàn)證環(huán)境中最主要的驗(yàn)證組件,所有的驗(yàn)證組件一般都在Agent里例化,驗(yàn)證環(huán)境中的Agent一般相當(dāng)于設(shè)計(jì)中的實(shí)體(由VHDL實(shí)現(xiàn)的設(shè)計(jì))或輸入輸出信號(hào)端口(由Veri-log實(shí)現(xiàn)的設(shè)計(jì))。在圖1所示的eVC里,有2個(gè)Agent,RX Agent是從DUT信號(hào)端口收集數(shù)據(jù),而TX Agent是指向DUT的信號(hào)端口發(fā)送數(shù)據(jù)。并且每個(gè)Agent都是按eRM方法學(xué)中的標(biāo)準(zhǔn)方式來(lái)構(gòu)建的,Agent里一般包括以下組件:
Config:包括Agent的屬性和行為,主要配置Agent的數(shù)量及其主動(dòng)或被動(dòng)的屬性,一般由驗(yàn)證人員自主定義的。
Signals:該組件中定義了一些DUT的信號(hào)端口,驗(yàn)證環(huán)境通過(guò)這些端口可以訪問(wèn)DUT內(nèi)部的所有信號(hào)。一般情況下,這些信號(hào)是以string類(lèi)型來(lái)定義,并在信號(hào)前加sig_前綴,利用hdl_path()函數(shù)指定與其相連接的DUT信號(hào)。
Sequence:是指驗(yàn)證人員希望加載到DUT的數(shù)據(jù)流,利用sequence既可以定義不加任何約束的隨機(jī)數(shù)據(jù),也可以是某些特定的數(shù)據(jù)流。
Sequence Driver:此組件是連接BFM和sequence的紐帶,將sequence生成的數(shù)據(jù)流發(fā)送到bfm,但不是直接驅(qū)動(dòng)到DUT信號(hào)上,而是將數(shù)據(jù)打包為一個(gè)列表,然后由BFM加載到DUT中。
BFM:總線功能模型,該組件只能在Agent里例化,從圖1中可以看出,BFM具有雙端通道,不僅將Sequence Driver中傳遞的數(shù)據(jù)流加載到DUT的信號(hào)端口,而且可以取樣需要檢測(cè)的信號(hào),和一般總線的功能相似。
評(píng)論