當(dāng)前位置:首頁 > 公眾號(hào)精選 > 芯片驗(yàn)證工程師
[導(dǎo)讀]uvm_env是一個(gè)容器,用于將圍繞某個(gè)DUT(模塊級(jí)或者系統(tǒng)級(jí))的所有驗(yàn)證組件集合在一起。?在模塊級(jí)驗(yàn)證平臺(tái)中,env用于集合DUT周圍的接口agent和DUT通信,與env相關(guān)聯(lián)的不同class被組織成一個(gè)SystemVerilog?package。除了接口agent之外,e...

uvm_env是一個(gè)容器,用于將圍繞某個(gè)DUT(模塊級(jí)或者系統(tǒng)級(jí))的所有驗(yàn)證組件集合在一起。

?

模塊級(jí)驗(yàn)證平臺(tái)中,env用于集合DUT周圍的接口agent和DUT通信,env相關(guān)聯(lián)的不同class被組織成一個(gè)SystemVerilog?package。除了接口agent之外,env還將包含以下部分組件:


Configuration object -?env中可以有一個(gè)配置對(duì)象,使測試用例開發(fā)者能夠控制驗(yàn)證環(huán)境的構(gòu)建。env配置對(duì)象還應(yīng)該包含其中所有驗(yàn)證子組件(agent)配置對(duì)象的句柄。?


Scoreboards -?scoreboard(或者說checker)?是一個(gè)使用來自agent內(nèi)部monitors 發(fā)送過來的事務(wù)以檢查DUT行為是否正確的組件。


Predictors -?或者說參考模型是計(jì)算相應(yīng)DUT輸入激勵(lì)預(yù)期響應(yīng)的一個(gè)組件,然后發(fā)送給checker進(jìn)行比較。


Functional Coverage Monitors - 功能覆蓋分析組件包含一個(gè)或多個(gè)covergroups ,用于在測試用例執(zhí)行期間收集相關(guān)的功能覆蓋信息。一般功能覆蓋率也可以直接寫成module直接掛載在DUT上。


Virtual Sequencers -使用virtual sequencer組織輸入激勵(lì)的發(fā)送,在單個(gè)sequence中控制多個(gè)不同agent中的sequencer發(fā)送請(qǐng)求。

?

UVM最大的優(yōu)勢就是驗(yàn)證組件的重用,系統(tǒng)級(jí)層次的env就可以復(fù)用各自模塊的env。模塊級(jí)env和系統(tǒng)級(jí)env最大的區(qū)別就是某些agent對(duì)于模塊是外部接口,會(huì)暴露在邊界上,但是對(duì)于系統(tǒng)級(jí)驗(yàn)證環(huán)境可能就處于系統(tǒng)內(nèi)部,無需驅(qū)動(dòng)或者監(jiān)測。此時(shí),模塊級(jí)env中的某些agent就是冗余,更準(zhǔn)確地說是其中的sequencer、driver是冗余的,只需要提供monitor即可。

?

同理,最符合UVM的做法的系統(tǒng)級(jí)env中存在一個(gè)配置對(duì)象,其中聲明各個(gè)子模塊env配置對(duì)象的句柄。

?


如上圖所示的系統(tǒng)級(jí)驗(yàn)證環(huán)境env,其中“灰色”的組件就是冗余組件,其實(shí)更好的做法是保留所有組件,只是使能所需要的功能,并且復(fù)用模塊級(jí)環(huán)境的checker(主動(dòng)驅(qū)動(dòng)、被動(dòng)響應(yīng)、監(jiān)測)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉