module mux_pro
#(
parameter D = 4,
parameter W = 6
)
(
input wire [D*W-1:0] i_array,
input wire [D-1:0] i_hot,
output reg [W-1:0] o_sel
);
always @(*) begin :proc_dmux
integer i;
o_sel = {W{1'b0}};
for(i=0;i<D;i=i+1)
// o_sel = ~( ~o_sel & ~({W{i_hot[i]}}&i_array[i*W+:W]) );
o_sel = o_sel | ({W{i_hot[i]}}&i_array[i*W+:W]) ;
end
endmodule