Assigning different clock for a interface array

type_rx_if rx_vif[7:0] ({{4{clk2}},{4{clk1}}}) ;

this assignment also passed the compile and works the same as my individual assign, all data event is on the same clk1 edge. maybe there is other bug in my testbench, or did you really tried this usage of SV ?