module half_adder_gate(
    input       a,           // Data
    input       b,           // Data
    output      sum,         // Sum of a + b
    output      cout);       // Carry out


    // GATE PRIMITIVE
    xor         xor1(sum, a, b);
    and         and1(cout, a, b);

endmodule