It was OK on C6416T to utilize TCP.
I had migrated the source code base on "6406.TCI6482TCP2VCP2BER" to C6455 but
It haven't worked well as on C6416T
the base parameters for TCP2 are as follow
#define INTERLEAVER_LOAD_FLAG TRUE/* To load the interleaver RAM*/
#define MAX_TCP_ITERATIONS 8 /* Maximum iterations of the TCP */
#define MIN_TCP_ITERATIONS 1 /* Maximum iterations of the TCP */
#define OUT_PARAM_READ_FLAG TRUE/* Output paramters read flag */
#define PROLOG_SIZE 24 /* prolog size : 3*constraint length? */
void turbo_decoding (char *__restrict__ ib, char *__restrict__ ob, unsigned int n)
{
TCP2_BaseParams configBase; /* base params to configure TCP2 */
TCP2_Params configParams; /* holds all the input configuration
parameters for TCP*/
unsigned int i;
/* setup the base params */
configBase.standard = TCP2_STANDARD_3GPP;
configBase.rate = TCP2_RATE_1_3;
configBase.intFlag = INTERLEAVER_LOAD_FLAG;
configBase.outParmFlag = OUT_PARAM_READ_FLAG;
configBase.prologSize = PROLOG_SIZE;
configBase.maxIter = MAX_TCP_ITERATIONS;
configBase.snr = 50; /* 0 = disable SNR threshold checking */
configBase.maxStarEn = FALSE;
configBase.prologRedEn = FALSE;
configBase.minIter = MIN_TCP_ITERATIONS;
configBase.inputSign = TCP2_INPUT_SIGN_NEGATIVE;
//configBase.inputSign = TCP2_INPUT_SIGN_POSITIVE;
configBase.outputOrder = TCP2_OUT_ORDER_0_31;
configBase.numCrcPass = 0; /* default value */
configBase.crcLen = 0; /* Disable CRC */
configBase.crcPoly = 0; /* not used */
configBase.map = 0;
configBase.frameLen = n;
//if(configBase.maxStarEn == FALSE)
for (i = 0; i < 16; i++) configBase.extrScaling [i] = 0;
TCP2_genParams (&configBase, &configParams);
tcp2_dec(ib, ob, configParams, intl);
}
so, my questions are
1. TCP2 on C6455 always run the maximum iteration even though noiseless environment(regardless SNR threshold.)
c.f) just 1 iteration under noiseless, SNR = 50 @6416T
2. Even though the noise level is very low, TCP2 can not recover the error.
note) If I set the max iteration = 1 compulsory then, TCP2 works well at the same condition(noise is very low).
What should I check first