1 module uut_forgen02(a, b, cin, y, cout);
5 input [WIDTH-1:0] a, b;
12 wire [WIDTH-1:0] carry;
15 for (i = 0; i < WIDTH; i=i+1) begin:adder
17 assign D[1:0] = { a[i], b[i] };
18 if (i == 0) begin:chain
21 assign D[2] = carry[i-1];
24 assign carry[i] = &D[1:0] | (^D[1:0] & D[2]);
28 assign cout = carry[WIDTH-1];