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...