%i "fa_inst.sfl" submod_class fa_inst { input a,b,ci ; output sum,co ; instrin do ; instr_arg do(a,b,ci) ; } module add4_inst { input a<4>,b<4>,ci ; output sum<4>,co ; tmp ca,cb,cc,cd ; tmp sa,sb,sc,sd ; instrin do ; fa_inst fa0,fa1,fa2,fa3 ; instruct do par { ca = fa0.do(a<0>,b<0>,ci).co ; cb = fa1.do(a<1>,b<1>,ca).co ; cc = fa2.do(a<2>,b<2>,cb).co ; cd = fa3.do(a<3>,b<3>,cc).co ; sa = fa0.do(a<0>,b<0>,ci).sum ; sb = fa1.do(a<1>,b<1>,ca).sum ; sc = fa2.do(a<2>,b<2>,cb).sum ; sd = fa3.do(a<3>,b<3>,cc).sum ; co = cd ; sum = sd || sc || sb || sa ; } }