module: dtc_25_inv_select
description: Delay select for dtc25inv.
             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 sel24, double sel23
             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] = 1.0;
            sel[nn+1] = 0.0;
            //printf("in==1 %d\n",nn);
         }
         sel[24] = 1.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] = 0.0;
         sel[nn+1] = 1.0;
         //printf("clk=-1 %d\n",nn);
      }
      //printf("%f\n",Ts*count);
      sel[24] = 0.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:  
