12 `uvm_component_utils(cl_scb_test_double_scb)
17 extern function new(string name = "cl_scb_test_double_scb",
18 uvm_component parent = null);
23 extern
virtual function void pre_build();
28 extern
virtual function void build_phase(uvm_phase phase);
31 function cl_scb_test_double_scb::new(string name = "cl_scb_test_double_scb",
32 uvm_component parent = null);
33 super.new(name, parent);
36 function void cl_scb_test_double_scb::build_phase(uvm_phase phase);
39 super.build_phase(phase);
41 uvm_config_db #(cl_syoscb_cfgs)::set(this, "scb_env",
42 "cfg", this.syoscb_cfgs);
44 this.scb_env = cl_tb_env_scb::type_id::create("scb_env", this);
45 endfunction: build_phase
48 function void cl_scb_test_double_scb::pre_build();
49 cl_tb_cfg_rnd cfg_rnd[pk_tb::NO_OF_SCB];
51 this.syoscb_cfgs = cl_syoscb_cfgs::type_id::create("syoscb_cfgs");
52 this.syoscb_cfgs.init(pk_tb::NO_OF_SCB);
54 foreach(this.syoscb_cfgs.syoscb_cfg[i]) begin
55 cfg_rnd[i] = this.config_create_and_randomize();
56 this.syoscb_cfgs.syoscb_cfg[i] = cl_syoscb_cfg::type_id::create($sformatf("syoscb_cfg%0d", i));
59 this.syoscb_cfgs.syoscb_cfg[i].init($sformatf("syoscb%0d", i), '{"Q1", "Q2"}, '{"P1", "P2", "P3"});
62 this.syoscb_cfgs.syoscb_cfg[i].set_max_queue_size("Q1", 100);
65 this.syoscb_cfgs.syoscb_cfg[i].set_compare_type(pk_syoscb::SYOSCB_COMPARE_IO);
66 this.syoscb_cfgs.syoscb_cfg[i].set_queue_type(pk_syoscb::SYOSCB_QUEUE_STD);
69 if (cfg_rnd[i].dynamic_primary_queue == 1'b0) begin
70 if(!this.syoscb_cfgs.syoscb_cfg[i].set_primary_queue("Q1")) begin
71 `uvm_fatal("CFG_ERROR", "syoscb_cfg.set_primary_queue call failed!")
75 endfunction: pre_build
Base class for all SCB tests usings two scoreboards.
Base class for all SCB tests.