哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

完善資料讓更多小伙伴認識你,還能領(lǐ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相關(guān)聯(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)級測試時復(fù)用

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

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

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

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

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

當(dāng)使用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)用當(dāng)前virtual sequencer中的其他virtual sequences。

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

下面的例子顯示了一個簡單的virtual sequence控制兩個subsequencers:cpu sequencerethernet sequencer。假設(shè)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

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

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屬性設(shè)置為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)用者阻止當(dāng)前等待授予的數(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 連接器
    +關(guān)注

    關(guān)注

    105

    文章

    16363

    瀏覽量

    147880
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    183

    瀏覽量

    20097
  • sequence
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    3297

原文標(biāo)題:UVM中的Virtual Sequences

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SystemVerilogVirtual Methods

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

    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

    什么是uvm?uvm的特點有哪些呢

    直觀的印象,就是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方法學(xué),UVMsequences 是壽命有限的對象。UVM sequencesuvm_sequence_item基類擴展得到,
    發(fā)表于 04-11 16:43

    談?wù)?b class='flag-5'>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 ?2174次閱讀

    UVMuvm_config_db機制背后的大功臣

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

    如何用Verdi查看UVM環(huán)境的變量?

    我們常用的debug UVM的方法是通過打印log實現(xiàn)。有沒有辦法像 debug RTL代碼一樣將 UVM 變量拉到波形上看呢?答案是有的,下面讓我們看看是怎么做到的。
    的頭像 發(fā)表于 06-25 16:01 ?3161次閱讀
    如何用Verdi查看<b class='flag-5'>UVM</b>環(huán)境<b class='flag-5'>中</b>的變量?

    UVMuvm_config_db機制背后的大功臣

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

    UVM設(shè)計的sequence啟動方式有哪幾種呢?

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

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

    uvm_sequence_library是從uvm_sequence擴展而來的,它是一個容納了一系列其它sequences類型的容器,在啟動時,它會根據(jù)模式從這系列sequences
    的頭像 發(fā)表于 09-08 15:06 ?1429次閱讀
    如何將<b class='flag-5'>sequences</b>類型添加或注冊到sequence library里呢?
    呼和浩特市| 金昌市| 龙口市| 佛冈县| 中方县| 山东省| 农安县| 永靖县| 徐闻县| 东辽县| 江达县| 南安市| 房产| 云阳县| 惠安县| 深水埗区| 巫山县| 彰武县| 南充市| 大洼县| 平果县| 临汾市| 确山县| 伊宁县| 繁昌县| 牟定县| 长治市| 赤壁市| 双江| 霞浦县| 眉山市| 门源| 湖州市| 邛崃市| 曲麻莱县| 苍南县| 大埔县| 景宁| 辉南县| 耒阳市| 长寿区|