Instantiation of interface and dut

thanks for reply
am having two interfaces mdio_if,if for if am getting error like
Illegal assignment to type ‘virtual if #(0)’ from type ‘virtual if’: Vir. ‘if’ interface must be assigned a matching interface or virtual interface.

interface :
interface if #(int pm = 1) (input bit clk);
bit [pm:0] intr;
bit [pm:0] rst_n;
bit [1:0] link [0:pm];
clocking wdr_cb @ (posedge clk);
default input #3 output #1;
input rst_n;
output phy_intr;
input link;
endclocking
endinterface

in my top:
virtual interface instantiation:
phy_if #(1) INTF_1(clk);
phy_if #(0) INTF_0(clk);

dut DUT(.reset_0(INTF_0.reset[0]),
.reset_1(INTF_0.reset[1]),
.intr_0(INTF_1.intr[0]),
.intr_1(INTF_1.intr[1])
);
set config:
uvm_config_db #(virtual if#(1))::set(null, “", “INTF_M_MASTER”, INTF_1);
uvm_config_db #(virtual if#(0))::set(null, "
”, “INTF_S_SLAVE”, INTF_0);

in test:
get config:
if (!uvm_config_db #(virtual if#(0))::get(this, “”, “INTF_S_SLAVE”, wr_cfg_h[0].phy_vif))
if (!uvm_config_db #(virtual if#(1))::get(this, “”, “INTF_M_MASTER”,wr_cfg_h[1].phy_vif))

What is wrong in this code?? Does anyone know why it isnt working?

Thanks for help