日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

UVM中uvm_config_db在sequence中的使用

作者:Alfred.HOO 更新時(shí)間: 2022-07-11 編程語言

在UVM中使用get_full_name()可以得到一個(gè)component的完整路徑,同樣的,此函數(shù)也可以在一個(gè)sequence中被調(diào)用,嘗試在一個(gè)sequence的body中調(diào)用此函數(shù),并打印出返回值,其結(jié)果大體如下:
uvm_test_top.env.i_agt.sqr.case0_sequence
這個(gè)路徑是由兩個(gè)部分組成,此sequence的sequencer的路徑,即實(shí)例化此sequence時(shí)傳遞的名字。

在sequence中g(shù)et參數(shù)

//my_case0.sv

function void my_case0::build_phase(uvm_phase phase);
...
  uvm_config_db#(int)::set(this, "env.i_agt.sqr.*", "count", 9);
...
endfunction

set函數(shù)的第二個(gè)路徑參數(shù)里面出現(xiàn)了通配符,這是因?yàn)閟equence在實(shí)例化名字一般是不固定的,而且有時(shí)是未知的,所以使用通配符。

在sequence中以如下方式調(diào)用config_db::get函數(shù)。
//my_case0.sv

class case0_sequence extends uvm_sequence#(my_transaction);
...
  virtual task per_body();
    if(uvm_config_db#(int)::get(null, get_full_name(), "count", count)
      `uvm_info("seq0", $sformatf("get count value %0d via config_db", count), UVM_MEDIUM)
    else
      `uvm_error("seq0", "cannot get count value!")
  endtask
...
endclass

在get函數(shù)原型中,第一個(gè)參數(shù)必須是一個(gè)component,而sequence不是一個(gè)component,所以這里不能使用this指針,只能使用null或uvm_root::get()。前面已經(jīng)提到過,當(dāng)使用null是,UVM會(huì)自動(dòng)將其替換為uvm_root:get(),再加上第二個(gè)參數(shù)get_full_name(), 就可以完整地得到此sequence的路徑,從而得到參數(shù)。

在sequence中set參數(shù)

//my_case0.sv

class drv0_seq extends uvm_sequnece #(my_transaction);
...
  virtual task body();
    void'(uvm_config_db#(bit)::get(uvm_root::get(), get_full_name(), "first_start", first_start));
    if(first_start)
      `uvm_info("drv0_seq", "this is the first start of the sequence", UVM_MEDIUM)
    else
      `uvm_info("drv0_seq", "this is not the first start of the sequence", UVM_MEDIUM)
    uvm_config_db#(bit)::set(uvm_root::get(), "uvm_test_top.v_sqr.*", "first_start", 0);
  endtask...
endclass

需要注意的是,由于此sequence在virtual sequence中被啟動(dòng),所以其get_full_name的結(jié)果應(yīng)該是uvm_test_top.v_seq.,而不是uvm_test_top.env0.i_agt.sqr.,所以在設(shè)置時(shí),第二個(gè)參數(shù)應(yīng)該是前者。

原文鏈接:https://blog.csdn.net/Michael177/article/details/125473234

欄目分類
最近更新