uvm_sequence_library是從uvm_sequence擴(kuò)展而來的,它是一個(gè)容納了一系列其它sequences類型的容器,在啟動(dòng)時(shí),它會(huì)根據(jù)模式從這系列sequences中選擇并執(zhí)行它們。
如果處于UVM_SEQ_LIB_RAND模式,它的select_rand屬性將會(huì)隨機(jī)并作為選擇sequences的索引。
如果處于UVM_SEQ_LIB_RANDC模式,它的selec_randc屬性將會(huì)隨機(jī)并作為索引。
如果處于UVM_SEQ_LIB_ITEM模式,僅生成并執(zhí)行REQ類型的sequence items。
如果處于UVM_SEQ_LIB_USER模式時(shí),select_sequence()方法用來獲取下一個(gè)執(zhí)行sequence的索引,用戶可以在子類中overwrite這個(gè)方法來實(shí)現(xiàn)自定義的選擇算法。
既然uvm_sequence_library是一系列sequences類型的集合,那么如何將sequences類型添加或注冊(cè)到sequence library里呢?UVM提供兩類方式:全局方式和私有方式。
1. 全局方式
全局方式添加到uvm_sequence_library的sequences類型會(huì)被該類的所有實(shí)例(instances)選擇,也就是所有實(shí)例里都會(huì)注冊(cè)了這些sequences類型。與這功能相關(guān)的函數(shù)和變量有:
從上述變量和函數(shù)可以看出,UVM是利用systemverilog的static機(jī)制來實(shí)現(xiàn)全局注冊(cè)方式,sequences類型必須在sequence library被創(chuàng)建之前都注冊(cè)進(jìn)去。
需要注意的是,要用這種方式,在創(chuàng)建sequence library的子類時(shí),必須需要在其聲明中調(diào)用uvm_sequence_library_utils宏,并在其構(gòu)造函數(shù)中調(diào)用init_sequence_library()方法。
另外,全局的注冊(cè)方式也可以使用uvm_add_to_seq_lib(TYPE,LIBTYPE)宏來完成。
2. 私有方式
私有方式添加到uvm_sequence_library的sequences類型會(huì)被該類的每個(gè)實(shí)例(instances)獨(dú)享,也就是每個(gè)實(shí)例注冊(cè)的sequences類型互不影響。與這功能相關(guān)的函數(shù)和變量有:
從上述變量和函數(shù)可以看出,它們都不是static的,也就是必須要等sequence library創(chuàng)建出實(shí)例后,才能注冊(cè)到實(shí)例里,因此每個(gè)實(shí)例注冊(cè)的sequences類型可以互不影響了。
3. 總結(jié)
這兩種方式都有自己的使用場(chǎng)景,如果想讓所有sequence library的實(shí)例都有的sequence類型,那么使用全局方式會(huì)更方便點(diǎn)。
如果想讓sequence library的實(shí)例想有一些額外的sequence類型,那么私有方式是最好的選擇。下圖總結(jié)了注冊(cè)的兩種方式以及涉及到的相關(guān)變量和函數(shù)。
-
UVM
+關(guān)注
關(guān)注
0文章
183瀏覽量
19846 -
sequence
+關(guān)注
關(guān)注
0文章
23瀏覽量
3122
發(fā)布評(píng)論請(qǐng)先 登錄
如何將RT-Thread移植到NXP MCUXPressoIDE上

急急急,如何將modbus library加載到lv的express vis中
如何將簇里不同數(shù)據(jù)類型的數(shù)據(jù)批量讀寫到ini文件里?
如何將兩個(gè)或多個(gè)相同類型的記錄寫入動(dòng)態(tài)NFC標(biāo)簽?
簡(jiǎn)單的LED如何將庫(kù)添加進(jìn)去 ?
請(qǐng)問一下在UVM中的UVMsequences是什么意思啊
如何配置sequence的仲裁算法和優(yōu)先級(jí)及中斷sequence的執(zhí)行
如何將RAFL添加到我的項(xiàng)目的適當(dāng)示例和/或文檔?
如何將FPGA里的數(shù)據(jù)導(dǎo)入dsp板子里去呢?
UVM中seq.start()和default_sequence執(zhí)行順序
如何將TDM業(yè)務(wù)添加到WiMAX平臺(tái)上
如何將Crosswalk添加到Cordova應(yīng)用程序中
如何將WizFi360 EVB Mini添加到樹莓派Pico Python

如何將Klayout Cell動(dòng)態(tài)導(dǎo)入Lumerical Multiphysics

評(píng)論