%i   "full_add.sfl"

submod_class   full_add {
   input   a,b,ci ;
   output  sum,co ;
   }

module   add4 {
   input      a<4>,b<4>,ci ;
   output     sum<4>,co ;
   full_add   fa0,fa1,fa2,fa3 ;

   par {
      fa0.a = a<0> ;
      fa0.b = b<0> ;
      fa0.ci = ci ;

      fa1.a = a<1> ;
      fa1.b = b<1> ;
      fa1.ci = fa0.co ;

      fa2.a = a<2> ;
      fa2.b = b<2> ;
      fa2.ci = fa1.co ;

      fa3.a = a<3> ;
      fa3.b = b<3> ;
      fa3.ci = fa2.co ;

      sum = fa3.sum || fa2.sum || fa1.sum || fa0.sum ;
      co  = fa3.co ;
      }
   }