在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

UVM中的uvm_do宏簡析

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

uvm_do宏及其變體提供了創建隨機化發送transaction items或者sequence的方法。

`uvm_do

`uvm_do宏將uvm_sequenceuvm_sequence_item類型的變量作為參數。使用factory創建一個對象并賦值給指定的變量。

當driver從sequencer中請求一個uvm_sequence_item時,該uvm_sequence_item被隨機化并提供給driver。

ea2caf74-0615-11ee-962d-dac502259ad0.png

class simple_seq_do extends uvm_sequence #(simple_item); 
...//ConstructorandUVMautomationmacros


virtual task body(); 
  `uvm_do(req) 
endtask : body 
endclass : simple_seq_do

上面的例子中,simple_seq_do的body使用uvm_do宏,發送了一個類型為simple_item的數據項。

ea51874a-0615-11ee-962d-dac502259ad0.png

類似地,下面的例子聲明了一個sequence(simple_seq_sub_seqs),使用`uvm_do來執行前面定義的simple_seq_do類型的sequence。

class simple_seq_sub_seqs extends uvm_sequence #(simple_item); 
... // Constructor and UVM automation macros 
simple_seq_do seq_do; 
virtual task body(); 
`uvm_do(seq_do) 
endtask : body 
endclass : simple_seq_sub_seqs

`uvm_do_with

`uvm_do_with宏與`uvm_do類似。

第一個參數是從uvm_sequence_item派生出來的變量,包括uvm_sequence_item或者uvm_sequence 。

第 二 個 參 數 可 以 是 任 何 有 效 的inline constraints


在下面的例子中,sequence產生兩個數據項,對addr和data的值有特定的約束。

class simple_seq_do_with extends uvm_sequence #(simple_item);
...//ConstructorandUVMautomationmacros
virtual task body();
  `uvm_do_with(req, { req.addr == 16'h0120; req.data == 16'h0444; } )
  `uvm_do_with(req, { req.addr == 16'h0124; req.data == 16'h0666; } )
endtask : body
endclass : simple_seq_do_with

如果約束條件只是用來將發送數據設置為特定的值,可以用用戶定義的任務來代替宏。

class simple_seq_do_with extends uvm_sequence #(simple_item);


 task do_rw(int addr, int data);
   item= simple_item::create("item",,get_full_name());
   item.addr.rand_mode(0);
   item.data.rand_mode(0);
   item.addr = addr;
   item.data = data;


   start_item(item);
   randomize(item);
   finish_item(item);
 endtask


virtual task body();
 repeat (num_trans)
   do_rw($urandom(),$urandom());
endtask
...
endclass : simple_seq_do_with





審核編輯:劉清

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

    關注

    0

    文章

    182

    瀏覽量

    19234
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

    2864

原文標題:UVM中的uvm_do宏

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

收藏 人收藏

    評論

    相關推薦

    IC驗證之UVM常用匯總分析(四)

    OVM過時的用法,使用純凈的UVM環境:`define UVM_NO_DEPRECATED除了上述通用的外,針對不同的仿真工具需要定義不同的
    發表于 12-02 15:24

    IC驗證"一個簡單的UVM驗證平臺"是如何搭建的(六)

    :這個driver的功能非常簡單,只是向rxd上發送256個隨機數據,并將rx_dv信號置為高電平。當數據發送完畢后,將rx_dv信號 置為低電平。上述代碼還出現了uvm_info。這個
    發表于 12-04 15:48

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

    uvm的事物級建模方便了工程師對事物進行建模,uvm的tlm通信機制方便實現各個組件之間的數據通信,使用uvm提供的可以方便的進行各種操作,比如實現factory機制,file的o
    發表于 01-21 16:00

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

    事物的控制,在智能代碼前后有兩個if語句,這里先不用管,它的功能是控制驗證平臺何時結束。  在來看看repeat語句當中的內容,repeat的語句中使用了uvm do這個uvm內建的
    發表于 01-26 10:05

    什么是uvmuvm的特點有哪些呢

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

    談談UVMuvm_info打印

      uvm_info的定義如下:  `define uvm_info(ID,MSG,VERBOSITY) \  begin \  if (uvm_report_enabled(VER
    發表于 03-17 16:41

    UVMseq.start()和default_sequence執行順序

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

    我的第一個UVM代碼——Hello world

    Ctrl-V!) 幾點說明: 為了使用UVM庫里的函數和定義,需要先import uvm_pkg和include uvm_macros。 在testbench的頂層(module
    發表于 11-03 10:18

    UVM的utility

    UVM中所有的對象都應該在factory 中注冊, utility 就是用于將對象注冊到工廠的。
    的頭像 發表于 03-30 09:39 ?872次閱讀

    UVM學習筆記(一)

    driver應該派生自uvm_driver,而uvm_driver派生自uvm_component。
    的頭像 發表于 05-26 14:38 ?1458次閱讀
    <b class='flag-5'>UVM</b>學習筆記(一)

    UVMuvm_config_db機制背后的大功臣

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

    如何用Verdi查看UVM環境的變量?

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

    UVMuvm_config_db機制背后的大功臣

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

    一文詳解UVM設計模式

    本篇是對UVM設計模式 ( 二 ) 參數化類、靜態變量/方法/類、單例模式、UVM_ROOT、工廠模式、UVM_FACTORY[1]單例模式的補充,分析靜態類的使用,
    的頭像 發表于 08-06 10:38 ?2125次閱讀
    一文詳解<b class='flag-5'>UVM</b>設計模式

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

    本篇介紹UVM的sequence,這是UVM中最基礎的部分。對于前面介紹的uvm_callback, uvm_visitor等,很少被使用
    的頭像 發表于 08-17 10:07 ?4782次閱讀
    <b class='flag-5'>UVM</b>設計<b class='flag-5'>中</b>的sequence啟動方式有哪幾種呢?
    主站蜘蛛池模板: 特黄特级毛片免费视 | 影院成人区精品一区二区婷婷丽春院影视 | 人人做人人爽人人爱 | 特黄黄三级视频在线观看 | 免费的黄色大片 | 国产精品单位女同事在线 | 美女国产在线观看免费观看 | h网站在线播放 | 成人丁香婷婷 | 国产精品丝袜在线观看 | 91av免费观看 | 九九99久久精品影视 | 日本不卡一区 | 三级电影天堂网 | 亚洲视频一区二区三区 | 在线天堂中文www官网 | 欧美色图 亚洲 | 四虎最新在线 | 可以看黄色的网站 | 四虎影视在线观看 | 最近高清免费观看视频 | 亚洲成a人片在线看 | 欧美日韩中文字幕 | 四虎国产精品成人永久免费影视 | 在线观看免费视频网站色 | www.毛片网站 | 色吧在线视频 | 色多多免费视频 | 拍拍拍交性免费视频 | 成人狠狠色综合 | bt种子天堂 | 天天爽天天 | 天天色影视综合网 | 一区二区三区影院 | 欧美三级在线视频 | 日韩精品系列产品 | 天天爱天天做久久天天狠狼 | 性xxxxfreexxxxx国产 | 青草视频在线观看国产 | 人人看人人做人人爱精品 | 亚洲精品综合网在线8050影院 |