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