module ha (C, S, A, B) ; input A, B; output S, C; assign S = A^B; assign C = A&B; endmodule // HA // module fa (input logic a, b, c, output logic sum, carry); // assign sum = a^b^c; // assign carry = a&b|a&c|b&c; // endmodule // fa // module csa #(parameter WIDTH=8) (a, b,c, sum, carry, cout); // input logic [WIDTH-1:0] a, b, c; // output logic [WIDTH-1:0] sum, carry; // output logic cout; // logic [WIDTH:0] carry_temp; // genvar i; // generate // for (i=0;i