module fulladder (A, B, CI, CO, Y);
  input A;
  input B;
  input CI;
  output CO;
  assign CO = (((A&B)|(B&CI))|(CI&A)); // (((A * B)+(B * CI))+(CI * A))
  output Y;
  assign Y = ((A^B)^CI); // ((A^B)^CI)
endmodule