_ar2s_helpm() { comp1=or(); comp2=and(); incount=0; gen=comp1.out; pro=comp2.out; } _ar2s_helpm.input(v_gen,v_pro); { comp2.input(v_pro); temp=and(); list_pro[incount]=v_pro; for (i=0; i=0; j--) { i_[bl][i].input(cy_gen[i+j],cy_pro[i+j]); } if (bl<>base) i+=bl; } bl*=2; } andall=and(); flags.zero=andall.out; flags.cy=carry[n].gen; flags.ov=xor(carry[n].gen , carry[n-1].gen).out; for (i=0; i<=n; i++) { out[i]=xor(carry[i].gen,a[i],b[i]).out; andall.input(out[i]); carry[i]=_ar2s_helpm(); j=i; while (j%4>0) { carry[i].input(cy_gen[i],cy_pro[i]); j-=1; } bl=4; while (bl0) { j-=bl; carry[i].input(i_[bl][j].gen,i_[bl][j].out); } bl*=2; } while (j>0) { j-=base; carry[i].input(i_[base].[j].gen,i_[base].[j].pro); } carry[i].input(inflg.cy,0); } }