1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
module partial_products ( input logic [31:0] a, input logic [31:0] b, output logic [31:0] c [0:31] ); always @ (*) begin integer i; for (i = 0; i < 32; i=i+1) begin c[i][31:0] = {32{b[i]}} & a; end end endmodule