Porting block level UVM env to SoC with same register model but unable to use with same name!

Hello Folks,

a. I have a block level env and I use a register model and works fine.
b. I wanted to use the block level env into SoC env, which also uses the same register model.
c. I instanced the block level env into SoC. The SoC env build the register model and puts it into config database.
d. When I tried access the register model with same name in my block level env, it says register model not found.
e. I complied the complete register model while executing at the block level and so does at the SoC level. But it throws warning as two register block registered with same name.
“already registered with factory. No string-based lookup support for multiple types with the same type name”

d. I tried doing the class forward declaration while compiling at the SoC but it says
“The class specified in the typedef was never declared.”

How can I overcome such scenarios while using same register block/name at the block level and so does at the SoC level ? Help me out on this.

Regards,
Desperado