// ************************************************************************** //
//                                                                            //
//    eses                   eses                                             //
//   eses                     eses                                            //
//  eses    eseses  esesese    eses   Embedded Systems Group                  //
//  ese    ese  ese ese         ese                                           //
//  ese    eseseses eseseses    ese   Department of Computer Science          //
//  eses   eses          ese   eses                                           //
//   eses   eseses  eseseses  eses    University of Kaiserslautern            //
//    eses                   eses                                             //
//                                                                            //
// ************************************************************************** //
// This module implements a full adder which is a basic module for hardware   //
// circuits for computer arithmetic.                                          //
// ************************************************************************** //

module FullAdd(bool ?x,?y,?cin,cout,s) {
    event p,g,w;
    p = x xor y;
    g = x and y;
    w = p and cin;
    s = p xor cin;
    cout = g or w;
}