%i   "inc1.sfl"

submod_class   inc1 {
   input     a,ci ;
   output    s,co ;
   instrin   do ;
   instr_arg do(a,ci) ;
   }

module   inc8 {
   input     a<8> ;
   output    s<8> ;
   tmp       c0,c1,c2,c3,c4,c5,c6 ;
   tmp       s0,s1,s2,s3,s4,s5,s6,s7 ;
   instrin   do ;
   inc1      inca,incb,incc,incd,ince,incf,incg ;

   instruct do
      par {
         s0 = ^a<0> ;
         c0   = a<0> ;
         s1 = inca.do(a<1>,c0).s ;
         c1   = inca.do(a<1>,c0).co ;
         s2 = incb.do(a<2>,c1).s ;
         c2   = incb.do(a<2>,c1).co ;
         s3 = incc.do(a<3>,c2).s ;
         c3   = incc.do(a<3>,c2).co ;
         s4 = incd.do(a<4>,c3).s ;
         c4   = incd.do(a<4>,c3).co ;
         s5 = ince.do(a<5>,c4).s ;
         c5   = ince.do(a<5>,c4).co ;
         s6 = incf.do(a<6>,c5).s ;
         c6   = incf.do(a<6>,c5).co ;
         s7 = incg.do(a<7>,c6).s ;
         s = s7 || s6 || s5 || s4 || s3 || s2 || s1 || s0 ;
         }
      }