11 `uvm_component_param_utils_begin(
cl_syoscbs#(FIN))
13 `uvm_component_utils_end
18 extern function new(
string name =
"cl_syoscbs", uvm_component parent = null);
23 extern virtual function void build_phase(uvm_phase phase);
29 extern virtual protected function void create_filter(input
string queue_name,
30 input
string producer_name,
31 input
int unsigned idx);
32 extern virtual protected function void connect_filter_and_subscriber(input
string queue_name,
33 input
string producer_name,
34 input
int unsigned idx);
51 uvm_component ft_orig;
53 if(ft_orig == null) begin
56 if(!$cast(ft, ft_orig)) begin
57 `uvm_fatal(
"TYPECAST",$sformatf(
"Unable to typecast filter transform from uvm_component to %0p. Type was %0p",ft.get_type(), ft_orig.get_type()))
65 super.new(name, parent);
71 foreach (this.
scbs[i]) begin
80 foreach (this.
fts[i]) begin
86 function
void cl_syoscbs::create_filter(input
string queue_name,
87 input
string producer_name,
88 input
int unsigned idx);
90 string ft_name = $sformatf("ft_%s_%s[%0d]", queue_name, producer_name, idx);
93 endfunction: create_filter
95 function
void cl_syoscbs::connect_filter_and_subscriber(input
string queue_name,
96 input
string producer_name,
97 input
int unsigned idx);
99 uvm_component ft_orig;
102 scb_subscriber = this.
scbs[idx].get_subscriber(queue_name, producer_name);
103 ft_orig = this.
fts[idx][queue_name][producer_name];
104 if(!$cast(ft, ft_orig)) begin
105 `uvm_fatal("TYPECAST", $sformatf("Unable to typecast filter transform from uvm_component to %p", ft.get_type_name()))
108 ft.ap.connect(scb_subscriber.analysis_export);
109 endfunction: connect_filter_and_subscriber
uvm_component fts[][string][string]
Array holding handles to filter transforms, used to transform inputs of one type to outputs of anothe...
Base class for a wrapper around multiple SyoSil Scoreboards.
cl_syoscb scbs[]
Array holding handles to all scoreboards.
virtual void build_phase(uvm_phase phase)
UVM build phase.
virtual cl_syoscbs_cfg get_cfg()
Gets the configuration object associated with this scoreboard wrapper.
Generic subscriber for the scoreboard.
virtual void connect_phase(uvm_phase phase)
UVM connect phase. syoscbs_base only calls super.connect_phase.
virtual void connect_filters(int unsigned idx, cl_syoscb_cfg cfg)
Connects all filter transforms with their respective subscribers in the scoreboard.
cl_syoscbs_cfg cfg
Handle to scoreboard wrapper configuration object.
Default implementation of a scoreboard wrapper.
virtual void create_filters(int unsigned idx, cl_syoscb_cfg cfg)
Create all filter transforms for the given scoreboard.
virtual cl_syoscbs::tp_wrapper_filter_trfm get_filter_trfm(string queue_name, string producer_name, int unsigned idx)
Gets a handle to a filter transform This convenience wrapper gets a filter transform and typecasts it...
Configuration class for the SyoSil UVM scoreboard.
virtual uvm_component get_filter_trfm_base(string queue_name, string producer_name, int unsigned idx)
Scoreboard Wrapper API: Gets a handle to a filter transform as a uvm_component.
Base class for a filter transformation.