In reply to chr_sue:
If I understand your reply correctly, you’re saying that the interface should have an instance of the configuration object that is made to point to the agents’ configuration object somewhere in the build_phase of the UVM Agent. All methods/code in the interface should access variables in the config object to decide the behavior of this BFM.
However, is the use of class objects in the BFM emulation friendly, (where the BFM is typically implemented as synthesizable transactors)?