女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

我眼中UVM啟動sequence的幾種常見方式

冬至子 ? 來源:不二魚 ? 作者:不二魚 ? 2023-06-16 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第一種:start啟動

最簡單粗暴的一種方式,只需要在某個component,如my_sequencer、my_env甚至base_test的main_phase中啟動。

task fish_env::main_phase(uvm_phase phase);
   fish_sequence seq;  //創建seq實例
   phase.raise_objection(this);
   seq = fish_sequence::type_id::create("seq");
   seq.start(fish_agt.sqr);  //將seq發送給對應的sequencer
   phase.drop_objection(this);
endtask

注:

  • 如果在sequencer中啟動,唯一的區別就是start的參數變為this,即seq.start(this);
  • 通常sequence不會直接發送給sequencer,而是通過virtual_sequence和virtual_sequencer;
  • raise_objection和drop_objection往往伴隨sequence的啟動;

第二種:default_sequence

采用default_sequence啟動,實際上還是調用了start任務,

uvm_config_db#(uvm_object_wrapper)::set(this,
                                        "env.fish_agt.sqr.main_phase",
                                        "default_sequence",
                                         case0_sequence::type_id::get());
)

或者先例化,再采用default_sequence啟動:

function void fish_case0::build_phase(uvm_phase phase);
  case0_sequence cseq;
    super.build_phase(phase);
      cseq = new("cseq");
      uvm_config_db#(uvm_sequence_base)::set(this,
                                             "env.fish_agt.sqr.main_phase",
                                             "default_sequence",
                                              cseq);
endfunction

第三種:`uvm_do系列宏啟動

`uvm_do(SEQ_OR_ITEM)o
`uvm_do_pri(SEQ_OR_ITEM, PRIORITY)
`uvm_do_with(SEQ_OR_ITEM, CONSTRAINTS)
`uvm_do_pri_with(SEQ_OR_ITEM, PRIORITY, CONSTRAINTS)
`uvm_do_on(SEQ_OR_ITEM, SEQR)
`uvm_do_on_pri(SEQ_OR_ITEM, SEQR, PRIORITY)
`uvm_do_on_with(SEQ_OR_ITEM, SEQR, CONSTRAINTS)
`uvm_do_on_pri_with(SEQ_OR_ITEM, SEQR, PRIORITY, CONSTRAINTS)

uvm_do的宏有多種,根據實際情況選擇合適的宏。實際工作當中,使用較多的就是uvm_do_on(SEQ_OR_ITEM, SEQR),第一個參數表示要發送的sequence或者item,第二個參數表示要將此sequence或者item發送給哪個sequencer。工作中有多個seq,為了實現seq的統一調度,就會使用virtual_sequence/sequencer,在vitrual_sequence 的body中例化多個sequence,使用uvm_do_on將sequencer掛載到指定sequencer上。

`uvm_declare_p_sequencer(fish_virtual_sequencer)
task fish_virtal_seq::body();
    fish_sequence_1   fish_seq_1;
    fish_sequence_2   fish_seq_2;
    ...
    fish_sequence_n   fish_seq_n
    `uvm_do_on(fish_seq_1, p_sequencer.sqr_1);
    `uvm_do_on(fish_seq_2, p_sequencer.sqr_2);
    ...
    `uvm_do_on(fish_seq_n,p_sequencer.sqr_n);
end_task:body

如此一來,fish_seq就掛載到了fish_virtual_sequencer中某個具體的sequencer上,這是最通用的做法。但UVM的用法太靈活了,最近在工作中,我遇到,seq不會掛載到某個具體的sqr的情況,也疑惑了很久,下次和你們分享。歡迎持續關注。

第四種:uvm_create和uvm_send

class case0_sequence extends uvm_sequence #(fish_transaction)
...
  task case0_sequence::body()
    `uvm_create(f_trans)
    ...//對transaction做處理
    `uvm_send(f_trans)
   endtask

uvm_create宏的作用就是實例化transaction,實例化之后,可以對其做更多的處理,處理完畢再使用`uvm_send宏發送出去。

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

    關注

    0

    文章

    182

    瀏覽量

    19541
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    UVM sequence分層有哪幾種方式

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

    UVM sequence分層的幾種體現

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

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

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

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

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

    淺談UVMsequence/item見解(上)

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

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

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

    UVM sequence機制中response的簡單使用

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

    start()如何執行uvm_sequence

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

    UVMsequence的那些事兒

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

    在Sequencer上啟動一個Sequence

    Sequencer默認不執行任何Sequence。驗證工程師可以通過調用start()啟動一個Sequence,也可以通過uvm_config_db指定一個自動
    的頭像 發表于 06-10 09:10 ?1111次閱讀
    在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 ?6086次閱讀
    <b class='flag-5'>UVM</b>設計中的<b class='flag-5'>sequence</b><b class='flag-5'>啟動</b><b class='flag-5'>方式</b>有哪<b class='flag-5'>幾種</b>呢?

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

    uvm_sequence_library是從uvm_sequence擴展而來的,它是一個容納了一系列其它sequences類型的容器,在啟動時,它會根據模式從這系列sequences中選擇并執行它們。
    的頭像 發表于 09-08 15:06 ?938次閱讀
    如何將sequences類型添加或注冊到<b class='flag-5'>sequence</b> library里呢?

    電氣工程師進階知識匯總:電機啟動的五種常見方式

    1.電機啟動的五種常見方式 ①.星三角降壓啟動:正常運行為三角形接法的電動機,在啟動時將定子繞組接成星形,可以降低啟動電流。
    發表于 09-14 11:28 ?5373次閱讀
    電氣工程師進階知識匯總:電機<b class='flag-5'>啟動</b>的五種<b class='flag-5'>常見方式</b>

    MCU批量生產下載程序的幾種常見方

    MCU批量生產下載程序的幾種常見方
    的頭像 發表于 10-24 17:22 ?2287次閱讀
    MCU批量生產下載程序的<b class='flag-5'>幾種</b><b class='flag-5'>常見方</b>法

    運行Python程序的幾種常見方

    Python是一種高級編程語言,具有簡單易學,易于閱讀和調試的特點。當你完成了一個Python程序之后,你需要運行它以檢查程序是否按照預期工作。下面是運行Python程序的幾種常見方
    的頭像 發表于 11-28 15:32 ?3219次閱讀