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

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

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

3天內不再提示

UVM中sequence的那些事兒

冬至子 ? 來源:多讀點書 ? 作者:夕文x ? 2023-05-26 15:17 ? 次閱讀

引入sequence的原因:

  • 將 生成測試case的語句 從 main_phase 中獨立出來,使得使用不同測試用例時,只需要修改sequence部分即可,而不用關注 UVM剩余部分。(提高剩余部分的可復用性)。

引入sequence的仲裁機制的原因:

  • 一個sequencer上通過fork...join可以啟動多個sequence,而多個sequence按照什么順序啟動需要一定的仲裁機制來控制,具體而言主要從兩個角度控制
    • sequence角度:自身的優先級、原子性、有效性
    • sequencer角度:對多個sequence的仲裁算法

引入sequence相關宏的原因:

  • 更方便地控制transaction的產生過程,主要有:
    • uvm_do系列宏:實例化transaction+將transaction交給sequencer(對應start_item與finish_item任務)
    • uvm_create宏:實例化transaction,可用new代替
    • uvm_send宏:將transaction交給sequencer(對應start_item與finish_item任務)
    • uvm_rand_send系列宏:對transaction進行隨機化+將transaction交給sequencer(對應start_item與finish_item任務)

不同類型sequence共用sequencer的方法(一個driver):

  • transaction類型例化的一個sequencer 對應 多個不同約束的transaction包
    • 可以通過一個sequence啟動其他sequence(即嵌套的sequence),然后間接生成多個不同約束的transaction包 —— 注意:這里使用了cseq. start ( m_sequencer );這樣的語句
    • 也可以通過一個sequence直接生成多個不同約束的transaction包
  • 通過類型轉換,實現同一個sequencer處理不同兩個截然不同的transaction,步驟如下
    • 將sequencer和driver能夠接受的數據類型設置為uvm_sequence_item
    • driver中使用時,使用cast將uvm_sequence_item轉換為各自transaction的類型

補充:start任務參數說明 seq0.start(env.i_agt.sqr, null, 100);

  • 第一個參數:sequencer的位置,指明seq0由哪個sequencer啟動
  • 第二個參數:parent sequence
  • 第三個參數:seq0的優先級

補充:m_sequencer是一個屬于每個sequence的成員變量,它指向執行當前sequence的sequencer句柄,其類型是uvm_sequencer_base。

sequencer向sequence傳遞變量(約束)的方法:

  • 方法一:通過cast轉換將sequence內置變量m_sequencer(類型為uvm_sequencer_base)轉換成my_sequencer類型, 然后引用uvm_sequencer中的成員變量作為約束
  • 方法二:在sequence中使用`uvm_declare_p_sequencer(my_sequencer),然后通過宏默認生成的變量p_sequencer來引用uvm_sequencer中的成員變量作為約束

補充:uvm_declare_p_sequence的實質是在base_sequence中聲明了一個成員變量p_sequencer,并將其指向啟動本sequence的sequencer。

發往不同driver的sequence之間的同步的方法:

  • 方法一:通過全局事件進行簡單同步:在drv0_seq中觸發事件,在drv1_seq中等待這個全局事件。
  • 方法二:使用 virtual sequence+virtual sequencer,可以實現類似crossbar的連接,且因為virtual sequence的body是順序執行,所以可以輕松實現整體順序(同步),局部并行的效果。

圖片

補充:verilog中事件的基本使用

  • event變量聲明為:
    • event var;
  • event觸發為:
  • ->var;
  • 捕獲觸發為:
  • @(var);

sequence library的概念:

  • 派生自uvm_sequence,就是一系列sequence的集合,它會根據特定的算法隨機選擇注冊在其中的一些sequence, 并在body中執行這些sequence。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19193
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

    2852
收藏 人收藏

    評論

    相關推薦

    數字IC驗證之“搭建一個可以運行的uvm測試平臺”(5)連載...

    的transaction,以及創建用于產生事物的事物發生器sequence。  在uvm驗證平臺中穿梭各個組件之間的基本信息單元是一個被稱為transaction的數據對象,也就是我們前面所說的事物
    發表于 01-26 10:05

    UVM sequence分層有哪幾種方式呢

    種請求下可以使用第一種分層方式,在high-layer sequence依然使用low-layer sequencer進行驅動,同時對low-layer sequence進行更加精細化的控制
    發表于 04-11 16:37

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

    UVM方法學,UVMsequences 是壽命有限的對象。UVM sequences從uvm_sequence_item基類擴展得到,uvm_s
    發表于 04-11 16:43

    UVM sequence分層的幾種體現

    種請求下可以使用第一種分層方式,在high-layer sequence依然使用low-layer sequencer進行驅動,同時對low-layer sequence進行更加精細化的控制。在上面
    發表于 04-14 11:08

    如何配置sequence的仲裁算法和優先級及中斷sequence的執行

    01 Arbitrary在UVM,多個sequence可以同時被綁定到相同的sequencer并啟動。這種測試場景在實際是存在的,比如在模擬同一個總線master口上的不同類型的數
    發表于 09-23 14:35

    sequence item實際應用應該包含哪些東西

    展開。Sequence item是游走在Sequence-Sequencer-Driver這一基本結構的數據結構類型,在有些地方也直接叫transaction,可以說是UVM的必用品
    發表于 09-23 14:42

    UVMseq.start()和default_sequence執行順序

      1. 問題  假如用以下兩種方式啟動sequence,方法1用sequence的start()方法啟動seq1,方法2用UVM的default_sequence機制啟動seq2。那
    發表于 04-04 17:15

    電源選型的那些事兒

    電路教程相關知識的資料,關于電源選型的那些事兒
    發表于 10-10 14:34 ?0次下載

    Linux的那些事兒之我是Block層

    Linux的那些事兒之我是Block層
    發表于 10-29 09:43 ?9次下載
    Linux的<b class='flag-5'>那些</b><b class='flag-5'>事兒</b>之我是Block層

    淺談UVMsequence/item見解(上)

    item指的是uvm_sequence_item, Sequence Item具備UVM核心基類所必要的數據操作方法,對于激勵的生成和場景控制,是由sequence來編織的,item應
    的頭像 發表于 02-19 15:52 ?5061次閱讀
    淺談<b class='flag-5'>UVM</b>之<b class='flag-5'>sequence</b>/item見解(上)

    UVM sequence機制response的簡單使用

    sequence作為UVM幾個核心機制之一,它有效地將transaction的產生從driver剝離出來,并且通過和sequencer相互配合,成功地將driver的負擔降低至僅聚焦于根據協議將
    的頭像 發表于 09-22 09:26 ?2446次閱讀

    UVMadd_typewide_sequence和add_sequence的區別

    第2和第3種方式類似,第3種是一下子添加多個sequence,它內部原理就是調用第2種的函數,因此在本質上,只有第1和第2種這兩類區別。
    的頭像 發表于 05-24 15:21 ?682次閱讀

    UVMuvm_do宏簡析

    uvm_do宏及其變體提供了創建、隨機化和發送transaction items或者sequence的方法。
    的頭像 發表于 06-09 09:36 ?5068次閱讀
    <b class='flag-5'>UVM</b><b class='flag-5'>中</b>的<b class='flag-5'>uvm</b>_do宏簡析

    在Sequencer上啟動一個Sequence

    Sequencer默認不執行任何Sequence。驗證工程師可以通過調用start()啟動一個Sequence,也可以通過uvm_config_db指定一個自動啟動的Sequence
    的頭像 發表于 06-10 09:10 ?831次閱讀
    在Sequencer上啟動一個<b class='flag-5'>Sequence</b>

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

    本篇介紹UVMsequence,這是UVM中最基礎的部分。對于前面介紹的uvm_callback,
    的頭像 發表于 08-17 10:07 ?4511次閱讀
    <b class='flag-5'>UVM</b>設計<b class='flag-5'>中</b>的<b class='flag-5'>sequence</b>啟動方式有哪幾種呢?
    主站蜘蛛池模板: 国内精品视频一区二区在线观看 | 亚洲精品国偷拍自产在线| 欧美巨大xxxx做受高清| 领导边摸边吃奶边做爽在线观看| 九九黄色大片| 久久99国产精品蜜臀AV| 精品国产5g影院天天爽| 精品国产人妻国语| 久草在线在线精品观看99| 精品熟女少妇AV免费观看| 精品视频网站| 久久婷五月综合色啪网| 久久亚洲国产精品亚洲| 久青草国产观看在线视频| 快播苍井空| 嗯啊…跟校草在教室里做h| 欧美高清69hd| 日韩AV无码一区二区三区不卡毛片| 全部老头和老太XXXXX| 日韩性大片| 午夜AV国产欧美亚洲高清在线| 迅雷成人下载| 一个人看的HD免费高清视频| 伊人亚洲AV久久无码精品| 4438成人情人网站| aaa级黄影片| 高清无码中文字幕在线观看视频| 国产精品久久久久久影院| 狠狠色丁香婷婷久久综合五月| 精品久久久无码21P发布| 老司机福利在视频在ae8| 欧美GV肉片视频免费观看| 日韩一区二区天海翼| 性xxxx直播放免费| 长篇高h肉爽文丝袜| TIMI1TV天美传媒在线观看| 国产高潮国产高潮久久久久久| 换脸国产AV一区二区三区| 老头操美女| 人人碰在线视频| 亚洲国产精品一区二区第一页|