7 `uvm_component_utils(cl_scb_test_io_std_disable_compare)
12 extern function new(string name = "cl_scb_test_io_std_disable_compare",
13 uvm_component parent = null);
17 extern task run_phase(uvm_phase phase);
20 function cl_scb_test_io_std_disable_compare::new(string name = "cl_scb_test_io_std_disable_compare",
21 uvm_component parent = null);
22 super.new(name, parent);
25 task cl_scb_test_io_std_disable_compare::run_phase(uvm_phase phase);
26 phase.raise_objection(this);
28 super.run_phase(phase);
31 for(int unsigned i=0; i<10; i++) begin
33 item1 = cl_tb_seq_item::type_id::create("item1");
35 scb_env.syoscb[0].add_item("Q1", "P1", item1);
38 for(int unsigned i=0; i<10; i++) begin
40 item1 = cl_tb_seq_item::type_id::create("item1");
42 scb_env.syoscb[0].add_item("Q2", "P1", item1);
46 if(!scb_env.syoscb[0].empty_queues()) begin
47 `uvm_error("TEST_ERROR", "All queues not empty 1st time around!");
50 scb_env.syoscb[0].compare_control(1'b0);
53 for(int unsigned i=0; i<8; i++) begin
55 item1 = cl_tb_seq_item::type_id::create("item1");
57 scb_env.syoscb[0].add_item("Q1", "P1", item1);
60 for(int unsigned i=0; i<7; i++) begin
62 item1 = cl_tb_seq_item::type_id::create("item1");
64 scb_env.syoscb[0].add_item("Q2", "P1", item1);
68 scb_env.syoscb[0].flush_queues();
70 if(!scb_env.syoscb[0].empty_queues()) begin
71 `uvm_error("TEST_ERROR", "All queues not empty 2nd time around!");
74 scb_env.syoscb[0].compare_control(1'b1);
77 for(int unsigned i=0; i<10; i++) begin
79 item1 = cl_tb_seq_item::type_id::create("item1");
81 scb_env.syoscb[0].add_item("Q1", "P1", item1);
84 for(int unsigned i=0; i<10; i++) begin
86 item1 = cl_tb_seq_item::type_id::create("item1");
88 scb_env.syoscb[0].add_item("Q2", "P1", item1);
92 phase.drop_objection(this);
Tests the ability to flush queues and disable compare during runtime for std queues.