module: dtc_25_select
description: Delay select for dtc25.
             Coded by Min Park 03/13/09 (converted 10/09/10)
parameters:  
inputs:  double in, double_interp clk
outputs:  double sel1, double sel2
             double sel3, double sel4
             double sel5, double sel6
             double sel7, double sel8
             double sel9, double sel10
             double sel11, double sel12
             double sel13, double sel14
             double sel15,
             double sel16, double sel17
             double sel18, double sel19
             double sel20, double sel21
             double sel22, double sel23
             double sel24, double sel25
classes: EdgeDetect pclk() 
static_variables: double sel[25] int nn // int count
init:  
//   count = 0;
end:  
code:  
//   printf("%f\n",Ts*count);
//   count++;

   if( pclk.inp(clk) ){
      if( in>=1.0 ){
         for (nn=0;nn<23;nn=nn+2){
            sel[nn] = 0.0;
            sel[nn+1] = 1.0;
            //printf("in==1 %d\n",nn);
         }
         sel[24] = 0.0;
      }
      if( in >= 2.0 && in <=25 ){
         for (nn=24; nn>(24-in+1); nn--){
            sel[nn] = 2.0;
            //printf("2<=in<=25 %d\n",nn);
         }

      }

   }

   if ( clk == -1.0 ){
      for (nn=0;nn<23;nn=nn+2){
         sel[nn] = 1.0;
         sel[nn+1] = 0.0;
         //printf("clk=-1 %d\n",nn);
      }
      //printf("%f\n",Ts*count);
      sel[24] = 1.0;
   }

   sel1 = sel[0];
   sel2 = sel[1];
   sel3 = sel[2];
   sel4 = sel[3];
   sel5 = sel[4];
   sel6 = sel[5];
   sel7 = sel[6];
   sel8 = sel[7];
   sel9 = sel[8];
   sel10= sel[9];
   sel11= sel[10];
   sel12= sel[11];
   sel13= sel[12];
   sel14= sel[13];
   sel15= sel[14];
   sel16= sel[15];
   sel17= sel[16];
   sel18= sel[17];
   sel19= sel[18];
   sel20= sel[19];
   sel21= sel[20];
   sel22= sel[21];
   sel23= sel[22];
   sel24= sel[23];
   sel25= sel[24];


functions:  
custom_classes_definition:  
custom_classes_code:  
