The code given below is converting a multi-dimension array into a single dimension array to give it as output of a module.
1) My question is what is +: is doing in the statement made bold.
2) If we want to make it general, which term in loop is row and which one is column?
module module1(instructionmem);
output [32*32-1:0] instructionmem;
reg [31:0] instructionmem_array [31:0];
genvar i;
generate for (i = 0; i < 32; i = i+1) begin:instmem
**assign instructionmem[32*i +: 32] = instructionmem_array[i];**
end endgenerate
endmodule