void InterpolationLTE_2nd(int ConfigBaseAddr, 
                          int InputAddr0, 
                          int InputAddr1, 
                          int OutputAddr0, 
                          int OutputAddr1, 
                          int LUTAddr, 
                          int Length, 
                          int AntNum)
{
	volatile unsigned int *addr = (volatile unsigned int *)ConfigBaseAddr;
	int cycle0 = ((Length-13)*2+63)>>6;
	
	//0 cycle
	addr[0] = cycle0;
	
	//1 copy hbfir1_fixed
	addr[16 * 1 + 0] = LUTAddr;
	
	//2 BIU0.T0
	addr[16 * 2 + 0] = InputAddr0;
	addr[16 * 2 + 12] = Length * 4;

	//3 BIU0.T1
	addr[16 * 3 + 0] = InputAddr0 + 16 * 4;
	addr[16 * 3 + 12] = Length * 4;
	
	//4 BIU0.T2
	addr[16 * 4 + 0] = InputAddr0 + 6 * 4;
	addr[16 * 4 + 12] = Length * 4;
	
	//5 BIU1.T0
	addr[16 * 5 + 0] = InputAddr1;
	addr[16 * 5 + 12] = AntNum > 1 ? (Length * 4) : 0;
	
	//6 BIU1.T1
	addr[16 * 6 + 0] = InputAddr1 + 16 * 4;
	addr[16 * 6 + 12] = AntNum > 1 ? (Length * 4) : 0;

	//7 BIU1.T2
	addr[16 * 7 + 0] = InputAddr1 + 6 * 4;
	addr[16 * 7 + 12] = AntNum > 1 ? (Length * 4) : 0;
	
	//8 BIU2.T2
	addr[16 * 8 + 0] = OutputAddr0;
	addr[16 * 8 + 12] = (Length - 13) * 2 * 4;
	
	//9 BIU3.T2
	addr[16 * 9 + 0] = OutputAddr1;
	addr[16 * 9 + 12] = AntNum > 1 ? (Length - 13) * 2 * 4 : 0;
	
}