Main question- Where should I build the uvm_reg_block object in the UVM hierarchy so that the scoreboard can use it as a model and my sequences can use it to peek and poke the regs in the dut
Longer backstory- I used Siemen’s Register Assistant tool to make a uvm_reg_block for all the registers in my design and I tested that it works- when I built it in the uvm_test I was able to poke a reg for a backdoor write, which was my main purpose for diving into the uvm_reg rabbit hole. Now that I have this register block, I’m a little confused on where I should put it in the UVM testbench hierarchy. I’ve looked around at a bunch of different examples and some benches build their uvm_reg_block in the uvm_test, some put it in the uvm_env, and some put it in the uvm_sequence. For my needs, I want the scoreboard to have visibility of the uvm_reg_block so I can use it as a model and I want the apb_base_sequence to have access to it so I can use peeks and pokes. I get the impression that there’s no one right answer to this question so I was hoping some of you can weigh in on where you build the uvm_reg_block and why you put it there.