色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

淺析UVM中的Virtual Sequences

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 2023-06-20 09:28 ? 次閱讀

在一個系統(tǒng)級的驗證環(huán)境中,多個驗證組件并行地產(chǎn)生激勵。測試用例開發(fā)者可能希望協(xié)調(diào)多個通道激勵之間的時序和數(shù)據(jù)。

Virtual sequences與virtual sequencer相關聯(lián),用于協(xié)調(diào)測試平臺中的激勵生成。一般來說,一個virtual sequencer包含對其子sequencer的引用,即driver sequencers或其他virtual sequencers。

Virtual sequences可以調(diào)用其他virtual sequences,以及每個子sequencer中的sequences(driversequences)。

在下圖中,virtual sequencer在ethernetcpu驗證組件上調(diào)用配置sequences。這些配置sequences是在模塊級測試期間開發(fā)的,可以在系統(tǒng)級測試時復用

f9662d78-0eab-11ee-962d-dac502259ad0.png

有三種方式可以讓virtual sequencer與它的subsequencers交互:

Virtual sequencers和subsequencers同時發(fā)送激勵。

禁用subsequencers。Virtualsequencers是唯一的驅(qū)動。

使用grab()和ungrab()--Virtualsequencers在有限的時間內(nèi)控制激勵發(fā)送。

當使用virtual sequences時,大多數(shù)測試用例開發(fā)用戶都會只從virtual sequences中調(diào)用sequences。要調(diào)用sequences,需要執(zhí)行以下操作之一:

使用'uvm_do宏 。

使用sequence start()方法。

創(chuàng)建一個Virtual Sequencer

為了從一個sequencer中對多個sequencers進行控制,可以使用一個不附屬于driver的sequencer,這就是virtual sequencer。要創(chuàng)建一個virtual sequencer,需要:

從uvm_sequencer類派生出一個virtual sequencer類。

在virtual sequencer中添加對其他subsequencer的指針(在更高層次的驗證組件(通常是top-level environment)中)。

下面的例子聲明了一個有兩個subsequencers的virtual sequencer。

f99fd1ea-0eab-11ee-962d-dac502259ad0.png

Subsequencers可以是driver sequencers或其他virtual sequencers。

創(chuàng)建一個Virtual Sequence

要創(chuàng)建一個virtual sequence:

從uvm_sequence派生出一個sequence類。

定義一個body()方法。

使用`uvm_ do_on(或` uvm_do_on_with)宏來調(diào)用subsequencers的sequences。

使用`uvm_do(或`uvm_do_with)宏來調(diào)用當前virtual sequencer中的其他virtual sequences。

一個virtual sequence不能使用`uvm_do或`uvm_do_with來執(zhí)行數(shù)據(jù)項的發(fā)送,只能執(zhí)行sequences。

下面的例子顯示了一個簡單的virtual sequence控制兩個subsequencers:cpu sequencerethernet sequencer。假設cpu sequencer有 一 個 cpu_config_seq sequence,ethernet sequencer有一個 eth_large_payload_seq序列。

f9d01e7c-0eab-11ee-962d-dac502259ad0.png

f9d75e80-0eab-11ee-962d-dac502259ad0.png

控制其他Sequencers

當使用virtual sequencer時,需要考慮subsequencers和virtualsequence之間的關系。有三種典型的可能性:

virtual sequencer和subsequencers同時產(chǎn)生激勵。subsequencers產(chǎn)生的數(shù)據(jù)項和virtual sequencer產(chǎn)生的數(shù)據(jù)項被混合在一起,并由driver以任意順序執(zhí)行。

禁用subsequencers。使用uvm_config_db::set將subsequencers的default_sequence屬性設置為null。

fa0449a4-0eab-11ee-962d-dac502259ad0.png

使用grab()/lock()和ungrab()/unlock()。在這種情況下,一個virtual sequence可以在有限的時間內(nèi)實現(xiàn)對其subsequencers的完全控制,然后讓原始sequences繼續(xù)工作。grab和lock防止其他sequence在被鎖定的sequencer上被執(zhí)行。

grab()方法將lock request放在sequencer仲裁隊列的頭部,允許調(diào)用者阻止當前等待授予的數(shù)據(jù)項被處理,而lock()方法將lock request放在隊列的末端,允許數(shù)據(jù)項在授予lock之前被處理。

fa35d5e6-0eab-11ee-962d-dac502259ad0.png

將Virtual Sequencer連接到Subsequencers上

要連接一個virtual sequencer和它的subsequencers,需要在驗證環(huán)境的connect()phase將sequencer的實例賦值給virtual sequencer中指定的sequencer指針。

v_sequencer.cpu_seqr = cpu_seqr; 
v_sequencer.eth_seqr = eth_seqr;

下面這個例子顯示了一個top-level environment,它實例化了ethernet和cpu驗證組件以及控制這兩個組件的virtual sequencer。

在top-level environment中,各個組件內(nèi)部的sequencers的路徑是已知的,可以根據(jù)該路徑將sequencers連接到virtual sequencer上。

fa427ab2-0eab-11ee-962d-dac502259ad0.png

?





審核編輯:劉清

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

    關注

    98

    文章

    14602

    瀏覽量

    136871
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19196
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

    2852

原文標題:UVM中的Virtual Sequences

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SystemVerilogVirtual Methods

    SystemVerilog多態(tài)能夠工作的前提是父類的方法被聲明為virtual的。
    發(fā)表于 11-28 11:12 ?717次閱讀

    IC驗證"UVM驗證平臺加入factory機制"(六)

    平臺,因為UVM的特性幾乎一 點都沒有用到。像上節(jié)my_driver的實例化及drv.main_phase的顯式調(diào)用,即使不使用UVM,只使用簡單的SystemVerilog也可以完 成。本節(jié)將會
    發(fā)表于 12-08 12:07

    IC驗證“UVM驗證平臺加入objection機制和virtual interface機制“(七)

    在上一節(jié),**《IC驗證"UVM驗證平臺加入factory機制"(六)》**雖然輸出了“main_phase is called”,但是“data is drived”并沒有
    發(fā)表于 12-09 18:28

    數(shù)字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載...

    原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章內(nèi)容主要講述兩個內(nèi)容,芯片驗證以及驗證計劃。那本章我們主要講述的內(nèi)容有介紹什么是uvm
    發(fā)表于 01-21 16:00

    什么是uvmuvm的特點有哪些呢

    直觀的印象,就是uvm驗證平臺,它是分層的結(jié)構(gòu)。圖中的每一個巨型框都代表著平臺的一個構(gòu)成元素。這些元素呢,我們稱為平臺組建,下面來簡單的分析一下。從最底層上來看,agent 包含了driver,monitor和sequencer,其中driver ,monitor
    發(fā)表于 02-14 06:46

    UVM sequence分層有哪幾種方式呢

    ; i< u_item.num_items; i++)`uvm_send(u_item.item)endtask : bodyendclass: upper_env_item_seq在上面的例子
    發(fā)表于 04-11 16:37

    請問一下在UVM的UVMsequences是什么意思啊

    UVM方法學,UVMsequences 是壽命有限的對象。UVM sequencesuvm_sequence_item基類擴展得到,
    發(fā)表于 04-11 16:43

    談談UVMuvm_info打印

    uvm_report_enabled(xxx),會分析傳過來的severity和id的配置verbosity要大于傳過來的verbosity,(get_report_verbosity_level(severity, id
    發(fā)表于 03-17 16:41

    virtual sequence和virtual sequencer的操作步驟

    對于初入行的驗證工程師,理解和搭建UVM驗證環(huán)境是很重要的,而其中,virtual sequence的機制又是很有用很重要的一部分。本文希望通過了一些問題的回答,以及一個相對完整的結(jié)構(gòu)幫助經(jīng)驗尚淺的工程師理清思路。
    發(fā)表于 09-15 10:33 ?6次下載
    <b class='flag-5'>virtual</b> sequence和<b class='flag-5'>virtual</b> sequencer的操作步驟

    為什么需要使用virtual,不用可不可以?

    UVM或者SV,經(jīng)常會碰到被virtual修飾的 class、sequence、sequencer、interface、function,不
    的頭像 發(fā)表于 06-16 11:34 ?1453次閱讀

    UVMuvm_config_db機制背后的大功臣

    本次講一下UVMuvm_config_db,在UVM中提供了一個內(nèi)部數(shù)據(jù)庫,可以在其中存儲給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-20 17:28 ?1474次閱讀

    UVMuvm_config_db機制背后的大功臣

    本次講一下UVMuvm_config_db,在UVM中提供了一個內(nèi)部數(shù)據(jù)庫,可以在其中存儲給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-29 16:57 ?1337次閱讀

    行為型設計模式在UVM的應用

    接下來介紹行為型設計模式在UVM的應用。
    的頭像 發(fā)表于 08-09 14:01 ?727次閱讀
    行為型設計模式在<b class='flag-5'>UVM</b><b class='flag-5'>中</b>的應用

    UVM設計的sequence啟動方式有哪幾種呢?

    本篇介紹UVM的sequence,這是UVM中最基礎的部分。對于前面介紹的uvm_callback, uvm_visitor等,很少被使用
    的頭像 發(fā)表于 08-17 10:07 ?4565次閱讀
    <b class='flag-5'>UVM</b>設計<b class='flag-5'>中</b>的sequence啟動方式有哪幾種呢?

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

    uvm_sequence_library是從uvm_sequence擴展而來的,它是一個容納了一系列其它sequences類型的容器,在啟動時,它會根據(jù)模式從這系列sequences
    的頭像 發(fā)表于 09-08 15:06 ?664次閱讀
    如何將<b class='flag-5'>sequences</b>類型添加或注冊到sequence library里呢?
    主站蜘蛛池模板: 日韩高清在线亚洲专区| 吃胸亲吻吃奶摸下面免费视频| 精品粉嫩BBWBBZBBW| 伊人影院亚洲| 欧美黑人巨大xxxxx| 国产精品1区在线播放| 亚洲人成影院在线播放| 美女脱精光让男生桶下面| 大乳牛奶女magnet| 亚洲精品AV一二三区无码| 美女丝袜夹b| 国产精品自在在线午夜蜜芽tv在线 | 伊人网综合网| 日本电影护士| 精品视频在线一区| 冰山高冷受被c到哭np双性 | 手机在线亚洲日韩国产| 久久午夜宫电影网| 国产精品亚洲AV毛片一区二区三区 | 亚洲日韩中文字幕区| 欧美末成年videos在线| 国产在线播放KKK| 被窝伦理电影午夜| 在线亚洲视频无码天堂| 乌克兰xxxxx| 男人吃奶摸下弄进去好爽| 国产中文视频| 动漫美女的禁| 99re在线播放| 野花社区WWW韩国日本| 色婷婷狠狠97成为人免费| 老师的玉足高跟鞋满足我| 国产精品亚洲污污网站入口| 99久女女精品视频在线观看| 亚洲中文久久久久久国产精品| 日韩精品一区二区三区色欲AV | 超碰最新网站| 最新 国产 精品 精品 视频| 亚洲精品久久久久中文字幕二区 | 成人动漫百度影音| 91青青草原|