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

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

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

3天內不再提示

淺談UVM之sequence/item見解(上)

西西 ? 2018-02-19 15:52 ? 次閱讀

item指的是uvm_sequence_item, Sequence Item具備UVM核心基類所必要的數據操作方法,對于激勵的生成和場景控制,是由sequence來編織的,item應該有什么用途的數據成員被定義在item中呢?文章進行了劃分。

無論是自駕item,穿過sequencer交通站,通往終點driver,還是坐上sequence的大巴,一路沿途觀光,最終跟隨導游停靠到風景點driver,在介紹如何駕駛item和sequence,遵守什么交規,最終可以有序地穿過sequencer抵達driver之前,讀者又必要首先認識sequence與item之間的關系。這里的sequence值的是類uvm_sequence,而item指的是uvm_sequence_item,為了文章的簡潔,我們稱之為sequence和item。對于激勵的生成和場景控制,是由sequence來編織的,而對于激勵所需要的具體數據和控制要求,則是從item中的成員數據得來的。

Sequence Item

我們已經提出item是基于uvm_object,這表明了它具備UVM核心基類所必要的數據操作方法,例如copy、clone、compare、record等,這里我們不再做贅述。讀者需要了解到的是,通常對于一個item,應該有什么用途的數據成員被定義在item中呢?我們可以將它們劃分下如下幾類:

控制類。譬如總線協議上的讀寫類型、數據長度、傳送模式等。

負載類。一般即數據總線上的數據包。

配置類。這往往是用來控制driver的驅動行為,例如命令driver的發送間隔或者有無錯誤插入。

調試類。用來標記一些額外的信息,用來方便調試,例如該對象的實例序號、創建時間、被driver解析的時間始末等。

下面的例碼是一段item的定義,從這段代碼中讀者可以看到上面提到的各種用途的數據使用情況:

淺談UVM之sequence/item見解(上)

淺談UVM之sequence/item見解(上)

輸出結果:

淺談UVM之sequence/item見解(上)

上面的這段代碼中,不但給出了一個較為典型的item定義,同時也伴有一些item使用時的特點:

如果數據域屬于將來需要用來做驅動,那么用戶應考慮定義為rand類型,同時按照驅動協議給出合適的constraint。

由于item本身的數據屬性,為了充分利用UVM域聲明的特性,我們建議將必要的數據成員都通過`uvm_field_xxx宏來聲明,以便日后的基本函數操作,例如上面的print()函數。

讀者也注意到了一點,上面的例子中,t1沒有隨機化而t2隨機化了,這種差別在item通往sequencer之前是很明顯的。因為UVM要求item的創建和隨機化都應該發生在sequence的body()任務中,而不是在sequencer或者driver中。

如果按照item對象的生命周期來區分,它的生命應該開始于sequence中的創建,而后經歷了隨機化和穿越sequencer最終到達driver,直到被driver消化之后,它的生命周期一般來講才算壽終正寢。之所以要突出這一點,是因為一些用戶在實際中,會不恰當地直接操作item對象,直接修改其中的數據,或者將它的句柄發送給其它組件使用,這就無形中修改了item的基因,或者延長了一個item對象的壽命。這種不合適的對象操作方式是用戶需要注意的,可以取代的方式則是合理利用copy和clone等方法。

接下來我們需要理清item和sequence,以及sequence群落之間的關系。從簡而言,一個sequence包含了一些有序組織起來的item實例,考慮到item在創建后需要被隨機化,sequence在聲明時也需要預留一些可供外部隨機化的變量,這些隨機變量一部分是用來通過層級傳遞來控制item對象中的變量的,一部分也是用來對item對象之間加以組織和時序控制的。為了加以區分幾種常見的sequence定義方式,我們在介紹后續的sequence之前,首先將sequence可以分類為:

扁平類(flat sequence)。這一類中往往只用來組織更細小的粒度,即item示例的組織。

層次類(hierarchical sequence)。這一類則是由更高層的sequence用來組織底層的sequence,進而讓這些sequence或者按照順序的方式,或者按照并行的方式,掛載到同一個sequencer上。

虛擬類(virtual sequence)。這一類則是最終控制整個測試場景的方式,鑒于整個環境中往往存在不同種類的sequencer和其對應的sequence,我們需要一個虛擬的sequence來協調頂層的測試場景。之所以稱這個方式為virtual sequence,是因為該序列本省并不固定掛載于某一種sequencer類型上,而是它會將其內部的各種不同類型的sequence最終掛載到不同的目標sequencer上面。這也是最大的不同于hierarchical sequence的一點。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19205
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

    2858
收藏 人收藏

    評論

    相關推薦

    數字IC驗證“構成uvm測試平臺的主要組件”(4)連載中...

    設備之間的產品了,事物是組件的操作對象,uvm也對事物建模提供了基類進行擴展,對事物級的建模需要從uvm sequence item擴展。而產生事物對象的事物發生器
    發表于 01-22 15:33

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

    對象,就是transaction。  驗證工程師需要根據不同的項目對項目中的事務進行建模,事物對象的類需要從uvm sequence item這個基類進行擴展,為了事物在產生的時候可以自動的隨機化,一般
    發表于 01-26 10:05

    UVM sequence分層有哪幾種方式呢

    。class upper_env_item_seq extends uvm_sequence #(lower_env_item);... // Constructor and UVM
    發表于 04-11 16:37

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

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

    UVM sequence分層的幾種體現

    驗證環境需要對數據進行分層。例如,將32比特的寄存器讀寫封裝成數據讀寫和狀態讀寫等實際業務操作等或者對底層sequence進行一些隨機控制等。實現這種分層可以有兩種方式:1、Sequence
    發表于 04-14 11:08

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

    sequence還是“雨露均沾”:實際UVM給我們預設了六種仲裁算法供選擇,同時保留了用戶自定義的接口。默認情況下,使用的仲裁算法是UVM_SEQ_ARB_FIFO,嚴格按照先進先
    發表于 09-23 14:35

    介紹兩種交互方法來完成Sequencer和Driver的握手機制

    指定請求和響應sequence_item的具體類型,在默認情況下,請求和響應sequence_item的類型為uvm_sequence_itemuvm_driver是
    發表于 09-23 14:39

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

    等。基于以上這些需求,在UVM類庫提供的代碼示例基礎,整理成以下一般框架,可用于指導日常開發。02 用戶自定義方法在上面定義的sequence item框架中,有一部分是Utilit
    發表于 09-23 14:42

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

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

    UVMsequence/item見解 sequencer特性及應用(下)

    本文將接著分享sequencer的相關知識,對于sequencer的仲裁特性有幾種可選,UVM_SEQ_ARB_FIFO ;UVM
    的頭像 發表于 02-19 10:14 ?4835次閱讀
    談<b class='flag-5'>UVM</b><b class='flag-5'>之</b><b class='flag-5'>sequence</b>/<b class='flag-5'>item</b><b class='flag-5'>見解</b> sequencer特性及應用(下)

    UVM sequence機制中response的簡單使用

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

    start()如何執行uvm_sequence

    要使用start()啟動一個sequence,就必須要指定相應的sequencer句柄, **另外的幾個選項一般用不** 。其中
    的頭像 發表于 03-21 11:37 ?732次閱讀
    start()如何執行<b class='flag-5'>uvm_sequence</b>

    UVMsequence的那些事兒

    將 生成測試case的語句 從 main_phase 中獨立出來,使得使用不同測試用例時,只需要修改sequence部分即可,而不用關注 UVM剩余部分。
    的頭像 發表于 05-26 15:17 ?1110次閱讀
    <b class='flag-5'>UVM</b>中<b class='flag-5'>sequence</b>的那些事兒

    在Sequencer啟動一個Sequence

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

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

    本篇介紹UVM中的sequence,這是UVM中最基礎的部分。對于前面介紹的uvm_callback, uvm_visitor等,很少被使用
    的頭像 發表于 08-17 10:07 ?4651次閱讀
    <b class='flag-5'>UVM</b>設計中的<b class='flag-5'>sequence</b>啟動方式有哪幾種呢?
    主站蜘蛛池模板: 亚洲刺激视频| 精品国产免费观看久久久| 婷婷亚洲五月色综合久久| 久久婷婷色一区二区三区| 国产高清在线观看视频| 2022国产91精品久久久久久| 午夜快车神马影视| 啪啪后入内射日韩| 久久理论片迅播影院一级| 国产伦精品一区二区三区免费| 99视频在线免费观看| 亚洲野狼综合网站| 无人区在线日本高清免费| 秋霞网站一级一片| 蜜臀AV色欲A片无码一区| 户外露出野战hd| 国产精品免费大片一区二区| xxnx18日本| 9420高清完整版在线电影免费观看| 亚洲精品天堂自在久久77| 婷婷激情综合色五月久久竹菊影视| 欧美 亚洲 另类 综合网| 久久中文字幕亚洲| 精品亚洲一区二区在线播放| 国产午夜不卡在线观看视频666| 纯肉高H种马艳遇风流多| A国产一区二区免费入口| 最新国产亚洲亚洲精品视频| 亚洲国产精品久久又爽黄A片 | 99热这里只有 精品| 在线观看亚洲专区5555| 亚洲日本激情| 亚洲欧美人成视频在线| 亚洲成人99| 亚洲国产精品VA在线看黑人| 亚洲国产av| 亚洲精品国产熟女久久久| 亚洲精品久久无码AV片银杏| 亚洲成人三级| 亚洲精品无码葡京AV天堂| 亚洲精品AV无码喷奶水糖心|