Interface modport values inconsistent under the same interface

In reply to mlsxdx:

You have discovered how poorly specified modports are and implemented. I suggest only using them for synthesis which requires the directional information.

To address your issues, a modport is not a scope, it is an access group. You cannot use it in a hierarchical reference. Get rid of the modport name anywhere you have intf.mp.signal. It should be intf.signal.

Another way to put it, it doesn’t make any sense to use a modport in your module tb. It already has access to all the signals inside the busA instance. A modport could not restrict any access.