簡體   English   中英

在類中使用Systemverilog靜態變量

[英]Using Systemverilog static variable in class

我陷入了一個問題,不勝感激任何建議/建議:

我為我的測試平台代理了以下組件:基類A-它定義了兩個靜態變量X和Y兩個新類B和C,兩者都是從A擴展的。它們都使用基類中聲明的靜態變量。 另一個D類,它利用B和C做某事。

可以說D類是我的最高代理,我稱之為bfm_agent。 這個bfm_agent可以在我的測試平台中多次實例化。 現在的問題是,X和Y將共享給所有bfm_agent。 我不要 我只希望X和Y是靜態的,以便每個bfm_agent中的類B和C可以使用這兩個變量來完成某些工作。

我該如何實現? 我只希望這兩個靜態變量的范圍僅在bfm_agent的每個實例內有效。

您應該使用包含變量X和Y的配置對象。然后讓基類A構造配置對象(如果該對象不存在),然后為代理的每個實例進行設置。

class A extends uvm_component;

my_config_c myconfig;

function void build_phase(uvm_phase phase);
...
  if(!uvm_config_db#(myconfig)::get(get_parent(),"","myconfig",myconfig)) begin
     myconfig = my_config_c::type_id::create("myconfig");
     uvm_config_db#(myconfig)::set(get_parent(),"","myconfig",myconfig)
  end
endfunction

現在,類B和C都將能夠引用myconfig.Xmyconfig.Y

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM