UVM_ENV中一般包含哪些內(nèi)容
時(shí)間:2021-11-03 14:57:44
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(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)測)。
?在模塊級(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)測)。