In reply to chr_sue:
I completely agree on using Framework generator; it’ll save a tremendous amount of work.
And often regenerating a testbench that’s standard is, in the long run, more productive than trying to integrate different architectural approaches in the testbench.
Note: if you already have block-level UVM testbenches, you can vertically reuse them in your top-level testbench. But of course - it’ll be a lot easier if both block and top-level testbenches are built using the same framework.