0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將sequences類型添加或注冊(cè)到sequence library里呢?

冬至子 ? 來(lái)源:CSDN ? 作者:谷公子 ? 2023-09-08 15:06 ? 次閱讀

uvm_sequence_library是從uvm_sequence擴(kuò)展而來(lái)的,它是一個(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()方法用來(lái)獲取下一個(gè)執(zhí)行sequence的索引,用戶可以在子類中overwrite這個(gè)方法來(lái)實(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ù)和變量有:

image.png

從上述變量和函數(shù)可以看出,UVM是利用systemverilog的static機(jī)制來(lái)實(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)宏來(lái)完成。

2. 私有方式

私有方式添加到uvm_sequence_library的sequences類型會(huì)被該類的每個(gè)實(shí)例(instances)獨(dú)享,也就是每個(gè)實(shí)例注冊(cè)的sequences類型互不影響。與這功能相關(guān)的函數(shù)和變量有:

image.png

從上述變量和函數(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ù)。

image.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    181

    瀏覽量

    19121
  • sequence
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    2828
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何將SCOUT的工程關(guān)聯(lián)STEP7中?

    如何將SCOUT的工程關(guān)聯(lián)STEP7中,就是SCOUT添加了一個(gè)伺服的設(shè)置,然后如何關(guān)聯(lián)STEP7中,可以在STEP7中打開(kāi)SCOUT 的文件
    發(fā)表于 01-09 13:16

    急急急,如何將modbus library加載到lv的express vis中

    大家都知道lv有專業(yè)的modbus library用來(lái)做基于modbus協(xié)議的通信,但是有誰(shuí)知道如何將modbus library加載到lv的express vis中的么,就是說(shuō)我可以在
    發(fā)表于 11-14 09:52

    如何將不同數(shù)據(jù)類型的數(shù)據(jù)批量讀寫(xiě)到ini文件?

    如何將不同數(shù)據(jù)類型的數(shù)據(jù)批量讀寫(xiě)到ini文件?
    發(fā)表于 05-20 10:30

    如何將兩個(gè)多個(gè)相同類型的記錄寫(xiě)入動(dòng)態(tài)NFC標(biāo)簽?

    HI, 如何將兩個(gè)多個(gè)相同類型的記錄寫(xiě)入動(dòng)態(tài)NFC標(biāo)簽?例如,如果我想寫(xiě)WriteEmail,SMS,URI任何此類數(shù)據(jù),我可以將其調(diào)用兩次嗎? 喜歡 TT4_WriteVcar
    發(fā)表于 08-09 10:43

    簡(jiǎn)單的LED如何將庫(kù)添加進(jìn)去 ?

    看到了歷程中都有庫(kù)函數(shù)的例子 但不知道如何從無(wú)有還想請(qǐng)教各位 從最簡(jiǎn)單的LED 如何將庫(kù)添加進(jìn)去 ?
    發(fā)表于 08-20 06:45

    如何將gdb移植嵌入式板子上單獨(dú)運(yùn)行

    如何在Linux下去調(diào)試C++執(zhí)行程序?如何將gdb移植嵌入式板子上單獨(dú)運(yùn)行
    發(fā)表于 12-24 06:57

    請(qǐng)問(wèn)一下在UVM中的UVMsequences是什么意思啊

    uvm_object基類擴(kuò)展得到。UVM sequences不是在仿真的開(kāi)始,而是在仿真的過(guò)程中生成并分配內(nèi)存的,也沒(méi)有類似uvm_component的層次結(jié)構(gòu)。隨著仿真的進(jìn)行,創(chuàng)建一個(gè)多個(gè)UVM
    發(fā)表于 04-11 16:43

    如何配置sequence的仲裁算法和優(yōu)先級(jí)及中斷sequence的執(zhí)行

    01 Arbitrary在UVM中,多個(gè)sequence可以同時(shí)被綁定相同的sequencer并啟動(dòng)。這種測(cè)試場(chǎng)景在實(shí)際中是存在的,比如在模擬同一個(gè)總線master口上的不同類型的數(shù)據(jù)流時(shí),可以
    發(fā)表于 09-23 14:35

    如何將RAFL添加到我的項(xiàng)目的適當(dāng)示例和/文檔?

    我無(wú)法找到有關(guān)如何將 RAFL 添加到我的項(xiàng)目的適當(dāng)示例和/文檔。查看 RFAL 中的 rfal.chm 文件有一個(gè)示例,但它對(duì)我不起作用?當(dāng)我查看 X-CUBE-NFC5.chm 時(shí),應(yīng)該有 4
    發(fā)表于 01-10 06:02

    如何將FPGA的數(shù)據(jù)導(dǎo)入dsp板子去呢?

    如何將FPGA的數(shù)據(jù)導(dǎo)入dsp板子去呢?有哪位大神可以指教一下嗎
    發(fā)表于 03-21 14:47

    UVM中seq.start()和default_sequence執(zhí)行順序

    override它,在里面添加各自的功能。各自舉個(gè)例子吧?! ?duì)于uvm_common_phase類型的uvm_run_phase類,它在exec_task(xxx)會(huì)調(diào)用對(duì)應(yīng)uv
    發(fā)表于 04-04 17:15

    如何將ADI公司的Spice模型導(dǎo)入Multisim仿真軟件?

    請(qǐng)問(wèn)如何將ADI公司的Spice模型導(dǎo)入Multisim仿真軟件? 當(dāng)我導(dǎo)入時(shí)為什么找不到該文件?
    發(fā)表于 11-17 06:20

    如何將TDM業(yè)務(wù)添加到WiMAX平臺(tái)上

    如何將TDM業(yè)務(wù)添加到WiMAX平臺(tái)上 對(duì)于今天的運(yùn)營(yíng)商來(lái)說(shuō),“接入”是一個(gè)熱門(mén)詞匯。盡管傳統(tǒng)接入鏈路依然是主要的收入來(lái)源,但它同時(shí)也成為限制
    發(fā)表于 10-20 21:29 ?704次閱讀

    如何將Crosswalk添加到Cordova應(yīng)用程序中

    英特爾開(kāi)源技術(shù)中心的Bob Spencer解釋了如何將Crosswalk添加到Cordova應(yīng)用程序中,以提供具有世界級(jí)性能的可預(yù)測(cè)運(yùn)行時(shí)。
    的頭像 發(fā)表于 11-07 06:37 ?2276次閱讀

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

    在本例中,演示了如何將KLayout Library Cell動(dòng)態(tài)導(dǎo)入 Lumerical 以執(zhí)行設(shè)計(jì)掃描和表征。該功能支持動(dòng)態(tài)導(dǎo)入Lumerical FDTD、MODE以及Multiphysics的所有工具,包括CHARGE
    的頭像 發(fā)表于 01-22 14:27 ?609次閱讀
    <b class='flag-5'>如何將</b>Klayout Cell動(dòng)態(tài)導(dǎo)入Lumerical Multiphysics