Within build() function of top reg block
you would instantiate these 3 sub-blocks and call configure , build , add_submap for them.
Then in your env ( or any tb component ) you simply need to instantiate the top_reg_block and call it’s build function
Each IP could access the respective register block via top_reg_block_h.ip1_reg_block / top_reg_block_h.ip2_reg_block / top_reg_block_h.ip3_reg_block