/**************************************************************************** usage to generate a patter test.pat from test.p gcc -DINFILE="\"test.p\"" -DOUTFILE="\"test.pat\"" -o test.exe generator.c ; ./test.exe ; rm test.exe *************************************************************************/ #include /* exit() */ #include /* exit() */ #include /* memset(), memcpy() */ #include /* uname() */ #include #include /* fork(), write(), close() */ #include #include #include #include #include #include #include #include #include //#include #define MAXLOOPS 3 #define MAXTIMERS 3 #define MAXWORDS 1024 uint64_t pat=0; uint64_t iopat=0; uint64_t clkpat=0; int iaddr=0; int waitaddr[3]={-1,-1,-1}; int startloopaddr[3]={-1,-1,-1}; int stoploopaddr[3]={-1,-1,-1}; int start=0, stop=0; uint64_t waittime[3]={0,0,0}; int nloop[3]={0,0,0}; char infile[10000], outfile[10000]; FILE *fd, *fd1; uint64_t PAT[MAXWORDS]; int i,ii,iii,j,jj,jjj,pixx,pixy,memx,memy,muxout,memclk,colclk,rowclk,muxclk,memcol,memrow,loopcounter; //int W[33]; //u_int32_t W; void setstart() { start=iaddr; } void setstop() { stop=iaddr; } void setinput(int bit) { uint64_t mask=1; mask=mask<>bit; } void setstartloop(int iloop) { if (iloop>=0 && iloop=0 && iloop=0 && iloop=0 && iloop=0 && iloop=MAXWORDS) printf("ERROR: too many word in the pattern (%d instead of %d)!",iaddr, MAXWORDS); } main(void) { int iloop=0; fd=fopen(OUTFILE,"w"); #include INFILE fprintf(fd,"patioctrl %016llx\n",iopat); fprintf(fd,"patclkctrl %016llx\n",clkpat); fprintf(fd,"patlimits %04x %04x\n",start, stop); for (iloop=0; iloop