#include set clock= external "Dummy"; chanout signed 16 chout with { outfile="firout.txt"}; signed 8 datain; chan < signed 1 > sync; signed 16 datout; signal signed 16 coffinp [7]; signal signed 16 addparcial[6]; unsigned 4 i,j; signed 1 start,tmp; //signal signed 8 valor=; signed 8 zetas[7]; const signed 16 coff[7] = {54, 64, -7, -16, 15, -3, -7 }; void main() { /* coff[0]=54; coff[1]=64; coff[2]=-7; coff[3]=-16; coff[4]=15; coff[5]=-3; coff[6]=-7;*/ par { // Stimulus { start=0; for(j=0;j<3;) { par { j++; seq{ //for (i=0;i<10) { par{i++;datain=127;}}; //for (i=0;i<10;) { par{i++;datain=0;}}; //i=0; //while (i<10) for(i=0;i<10;) par{ datain=127; sync ! 0; i++;}; //i=0; //while (i<10) for(i=0;i<10;) par{ datain=0;sync ! 0;i++;}; } }; } start=1; sync ! 1; } // end stiumulus { while(!start) { sync ? tmp; chout !datout;} } seq { while (!start) { sync? start; par (r=0;r<7;r++) { ifselect (r==0) zetas[r]=datain; else zetas[r]=zetas[r-1]; } //par par(r=0;r<7;r++) { // coffinp[r]=adjs(coff[r],16)*adjs(zetas[r],16); ifselect (r==0) addparcial[r]=coffinp[r]; else ifselect (r==6) datout=(addparcial[r-1]+coffinp[r])/100; else addparcial[r]=addparcial[r-1]+coffinp[r]; } // par } // end while (!start) } //seq } // main par //delay; } // main