7   `uvm_component_utils(cl_scb_test_io_md5_disable_compare)
    12   extern function new(string name = "cl_scb_test_io_md5_disable_compare",
    13                       uvm_component parent = null);
    14   extern 
virtual function void pre_build();
    18   extern task run_phase(uvm_phase phase);
    21 function cl_scb_test_io_md5_disable_compare::new(string name = "cl_scb_test_io_md5_disable_compare",
    22                                                  uvm_component parent = null);
    23   super.new(name, parent);
    26 function void cl_scb_test_io_md5_disable_compare::pre_build();
    29   this.syoscb_cfgs.syoscb_cfg[0].set_queue_type(pk_syoscb::SYOSCB_QUEUE_MD5);
    30 endfunction : pre_build
    32 task cl_scb_test_io_md5_disable_compare::run_phase(uvm_phase phase);
    33   phase.raise_objection(this);
    35   super.run_phase(phase);
    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("Q1", "P1", item1);
    45     for(int unsigned i=0; i<10; i++) begin
    47       item1 = cl_tb_seq_item::type_id::create("item1");
    49       scb_env.syoscb[0].add_item("Q2", "P1", item1);
    53   if(!scb_env.syoscb[0].empty_queues()) begin
    54     `uvm_error("TEST_ERROR", "All queues not empty 1st time around!");
    57   scb_env.syoscb[0].compare_control(1'b0);
    60     for(int unsigned i=0; i<8; i++) begin
    62       item1 = cl_tb_seq_item::type_id::create("item1");
    64       scb_env.syoscb[0].add_item("Q1", "P1", item1);
    67     for(int unsigned i=0; i<7; i++) begin
    69       item1 = cl_tb_seq_item::type_id::create("item1");
    71       scb_env.syoscb[0].add_item("Q2", "P1", item1);
    75   scb_env.syoscb[0].flush_queues();
    77   if(!scb_env.syoscb[0].empty_queues()) begin
    78     `uvm_error("TEST_ERROR", "All queues not empty 2nd time around!");
    81   scb_env.syoscb[0].compare_control(1'b1);
    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("Q1", "P1", item1);
    91     for(int unsigned i=0; i<10; i++) begin
    93       item1 = cl_tb_seq_item::type_id::create("item1");
    95       scb_env.syoscb[0].add_item("Q2", "P1", item1);
    99   phase.drop_objection(this);
 Tests the ability to flush queues and disable compare during runtime for md5 hashed queues...