Reusing block level scoreboard containing a register model at chip level

I have a block level scoreboard that uses the block level register model for checking, and have a question about reusing this scoreboard at chip level. The scoreboard uses register peeks to do checking, which of course relies on the correct hdl path to the register.

I know how to integrate the unit level environment and register model in our chip level environment, but want to know if there is an easy way to update the hdl_path in the block level register model so it is correct at chip level. We don’t have a chip level register model, but could create one if it helps solve the problem.

The block level register model hdl paths are specified as follows:

  add_hdl_path("block_name_tb.dut_wrapper.dut");
  register_name_h = register_name::type_id::create("register_name_h");
  register_name_h.configure(this, null, "block_name_reg_array_i.register_name_rd");
  register_name_h.build();

Should I create a chip level register model that clears the hdl_path, then adds in the correct chip level path?

Ideas?

Not only would your hdl path have changed, but most likely the base address for the register model. This means that you would need to either change the top level reg_block of your register model to fix the hdl path and/or the base address, or instantiate your register model inside a chip/system level reg_block. Either way should fix things for you.