UVM_ENV中一般包含哪些內(nèi)容
時間:2021-11-03 14:57:44
手機看文章
掃描二維碼
隨時隨地手機看文章
[導(dǎo)讀]uvm_env是一個容器,用于將圍繞某個DUT(模塊級或者系統(tǒng)級)的所有驗證組件集合在一起。?在模塊級驗證平臺中,env用于集合DUT周圍的接口agent和DUT通信,與env相關(guān)聯(lián)的不同class被組織成一個SystemVerilog?package。除了接口agent之外,e...
uvm_env是一個容器,用于將圍繞某個DUT(模塊級或者系統(tǒng)級)的所有驗證組件集合在一起。
?在模塊級驗證平臺中,env用于集合DUT周圍的接口agent和DUT通信,與env相關(guān)聯(lián)的不同class被組織成一個SystemVerilog?package。除了接口agent之外,env還將包含以下部分組件:
Configuration object -?env中可以有一個配置對象,使測試用例開發(fā)者能夠控制驗證環(huán)境的構(gòu)建。env配置對象還應(yīng)該包含其中所有驗證子組件(agent)配置對象的句柄。?
Scoreboards -?scoreboard(或者說checker)?是一個使用來自agent內(nèi)部monitors 發(fā)送過來的事務(wù)以檢查DUT行為是否正確的組件。
Predictors -?或者說參考模型是計算相應(yīng)DUT輸入激勵預(yù)期響應(yīng)的一個組件,然后發(fā)送給checker進行比較。
Functional Coverage Monitors - 功能覆蓋分析組件包含一個或多個covergroups ,用于在測試用例執(zhí)行期間收集相關(guān)的功能覆蓋信息。一般功能覆蓋率也可以直接寫成module直接掛載在DUT上。
Virtual Sequencers -使用virtual sequencer組織輸入激勵的發(fā)送,在單個sequence中控制多個不同agent中的sequencer發(fā)送請求。?UVM最大的優(yōu)勢就是驗證組件的重用,系統(tǒng)級層次的env就可以復(fù)用各自模塊的env。模塊級env和系統(tǒng)級env最大的區(qū)別就是某些agent對于模塊是外部接口,會暴露在邊界上,但是對于系統(tǒng)級驗證環(huán)境可能就處于系統(tǒng)內(nèi)部,無需驅(qū)動或者監(jiān)測。此時,模塊級env中的某些agent就是冗余,更準(zhǔn)確地說是其中的sequencer、driver是冗余的,只需要提供monitor即可。?同理,最符合UVM的做法的系統(tǒng)級env中存在一個配置對象,其中聲明各個子模塊env配置對象的句柄。?
如上圖所示的系統(tǒng)級驗證環(huán)境env,其中“灰色”的組件就是冗余組件,其實更好的做法是保留所有組件,只是使能所需要的功能,并且復(fù)用模塊級環(huán)境的checker(主動驅(qū)動、被動響應(yīng)、監(jiān)測)。
?在模塊級驗證平臺中,env用于集合DUT周圍的接口agent和DUT通信,與env相關(guān)聯(lián)的不同class被組織成一個SystemVerilog?package。除了接口agent之外,env還將包含以下部分組件:
Configuration object -?env中可以有一個配置對象,使測試用例開發(fā)者能夠控制驗證環(huán)境的構(gòu)建。env配置對象還應(yīng)該包含其中所有驗證子組件(agent)配置對象的句柄。?
Scoreboards -?scoreboard(或者說checker)?是一個使用來自agent內(nèi)部monitors 發(fā)送過來的事務(wù)以檢查DUT行為是否正確的組件。
Predictors -?或者說參考模型是計算相應(yīng)DUT輸入激勵預(yù)期響應(yīng)的一個組件,然后發(fā)送給checker進行比較。
Functional Coverage Monitors - 功能覆蓋分析組件包含一個或多個covergroups ,用于在測試用例執(zhí)行期間收集相關(guān)的功能覆蓋信息。一般功能覆蓋率也可以直接寫成module直接掛載在DUT上。
Virtual Sequencers -使用virtual sequencer組織輸入激勵的發(fā)送,在單個sequence中控制多個不同agent中的sequencer發(fā)送請求。?UVM最大的優(yōu)勢就是驗證組件的重用,系統(tǒng)級層次的env就可以復(fù)用各自模塊的env。模塊級env和系統(tǒng)級env最大的區(qū)別就是某些agent對于模塊是外部接口,會暴露在邊界上,但是對于系統(tǒng)級驗證環(huán)境可能就處于系統(tǒng)內(nèi)部,無需驅(qū)動或者監(jiān)測。此時,模塊級env中的某些agent就是冗余,更準(zhǔn)確地說是其中的sequencer、driver是冗余的,只需要提供monitor即可。?同理,最符合UVM的做法的系統(tǒng)級env中存在一個配置對象,其中聲明各個子模塊env配置對象的句柄。?
如上圖所示的系統(tǒng)級驗證環(huán)境env,其中“灰色”的組件就是冗余組件,其實更好的做法是保留所有組件,只是使能所需要的功能,并且復(fù)用模塊級環(huán)境的checker(主動驅(qū)動、被動響應(yīng)、監(jiān)測)。