In reply to verif_learner:
Modports are useful when designing synthesizable hardware blocks. For verification, they are of limited use and add confusion and complexity.
When interfaces used for verification are connected to the DUT, you will typically instantiate the interface, then connect it to the DUT as below:
interface my_if(input bit clk, input bit rst);
wire a;
wire b;
endinterface
my_if my_if_i(.clk(clk), .rst(rst));
dut dut_i(.clk(clk),
.rst(rst),
.a(my_if_i.a),
.b(my_if_i.b)
);
Using a modport adds no additional benefit. You need to add another hierarchical name that isn't necessary.