always@( data_in ) begin if ( data_in>=6'd0 && data_in <= 6'd2 ) data_out = data_in<<6'd1; else if ( data_in>6'd2 && data_in <= 6'd4 ) data_out = data_in<<6'd2 + data_in<<6'd1 - 12'd8 ; else if ( data_in>6'd4 && data_in <= 6'd7 ) data_out = data_in<<6'd3 + data_in<<6'd1 + data_in - 12'd28 ; else if ( data_in>6'd7 && data_in <= 6'd11 ) data_out = data_in<<6'd4 + data_in<<6'd1 - 12'd77 ; else if ( data_in>6'd11 && data_in <= 6'd15 ) data_out = data_in<<6'd4 + data_in<<6'd3 + data_in<<6'd1 - 12'd165; else if ( data_in>6'd15 && data_in <= 6'd20 ) data_out = data_in<<6'd5 + data_in<<6'd1 + data_in - 12'd300; else if ( data_in>6'd20 && data_in <= 6'd26 ) data_out = data_in<<6'd5 + data_in<<6'd3 + data_in<<6'd2 + data_in<<6'd1 - 12'd520; else if ( data_in>6'd26 && data_in <= 6'd32 ) data_out = data_in<<6'd5 + data_in<<6'd4 + data_in<<6'd3 + data_in<<6'd1 - 12'd832 ; else if ( data_in>6'd32 && data_in <= 6'd38 ) data_out = data_in<<6'd6 + data_in<<6'd2 + data_in<<6'd1 - 12'd1216; else if ( data_in>6'd38 && data_in <= 6'd45 ) data_out = data_in<<6'd6 + data_in<<6'd4 + data_in<<6'd1 + data_in - 12'd1710 ; else if ( data_in>6'd45 && data_in <= 6'd53 ) data_out = data_in<<6'd6 + data_in<<6'd5 + data_in<<6'd1 - 12'd2385 ; else if ( data_in>6'd53 && data_in <= 6'd60 ) data_out = data_in<<6'd6 + data_in<<6'd5 + data_in<<6'd4 + data_in<<6'd1 - 12'd3180 ; end