In reply to desperadorocks:
Hello Folks,
I tried the below configuration to set separate sequencer & adapter for each sub-block inside the top level register block, so that I can launch register write/read tests parallely across multiple-sub blocks.
for (int i = 0; i < `NO_OF_AGT; i++) begin
if(top_reg_block.get_parent() == null) begin
case(i)
0: top_reg_block.sub_reg_block0.default_map.set_sequencer(each_reg_agt[i].each_reg_sqr, each_r2b_adapter[i]);
1: top_reg_block.sub_reg_block1.default_map.set_sequencer(each_reg_agt[i].each_reg_sqr, each_r2b_adapter[i]);
2: top_reg_block.sub_reg_block2.default_map.set_sequencer(each_reg_agt[i].each_reg_sqr, each_r2b_adapter[i]);
3: top_reg_block.sub_reg_block3.default_map.set_sequencer(each_reg_agt[i].each_reg_sqr, each_r2b_adapter[i]);
endcase
end
if(each_reg_cfg.auto_predict[i] == UVM_ACTIVE) begin
case(i)
0: top_reg_block.sub_reg_block0.default_map.set_auto_predict(1);
1: top_reg_block.sub_reg_block1.default_map.set_auto_predict(1);
2: top_reg_block.sub_reg_block2.default_map.set_auto_predict(1);
3: top_reg_block.sub_reg_block3.default_map.set_auto_predict(1);
endcase
end
end
a. When I tried explicit register write/read to the explicit registers inside the blocks I received the below error:
""neither the item’s sequencer nor dedicated sequencer has been supplied to start item in reg_acc_seq sequence “”
b. And then when I launched the bit-bash sequence on a particular sequencer,
The transaction item that I received at the driver end is null-object pointer.
Can’t we not set the sequencer and adapter to the sub-blocks inside the top level block ? Or after setting the sub-blocks, do we need to set any top level sequencer & adapter for the top level register mode ? Kindly help me out on this issue.
Regards,
Desperado