4.4 Stopping Test Unit
4.4.1 SNR Threshold Termination
4.4.2 CRC Termination
www.ti.com
Standalone (SA) Mode
The CRC-based stopping criterion can be used by setting the CRC polynomial length (CRCLEN) and thenumber of CRC iterations required to pass CRCITERPASS. After each iteration, hard decisions arecomputed and a CRC is performed. The CRC polynomial is a programmable 32-bit number. To avoidsituations where a CRC test passes for a very noisy frame of data, the hard decisions need to pass theCRC test for a number of consecutive iterations, which is user-defined via the CRCITERPASS bit field.
Turbo decoders are iterative decoders. Each iteration consists of two MAP decodes except the lastiteration that executes only the first MAP decode. The turbo decoder can iterate up to 32 iterations. Thedecoder will continue to iterate until one of the following conditions occur: meet parameter conditions,CRC passed, or SNR threshold passed.
The stopping criteria algorithm generates the first two moments of the extrinsics, generates an SNR ratio,and compares the ratio with a threshold. If the calculated ratio exceeds the threshold, then the decoderhas found an optimum solution. The decoder can then stop executing any further iterations. Thecalculated SNR ratio is generated after each MAP process. The threshold is a user input and can rangefrom 0 to 100. Larger thresholds give better results but require more iterations. Smaller thresholds requirefewer iterations and give can give poorer results. Setting the threshold to 0 disables the stopping criteriaalgorithm.
The stopping criteria contains two parts. The first part executes on each extrinsic value. The sum of theextrinsics and the sum of the extrinsics squared are calculated. The second part is executed once at theend of each MAP block. The first moment is squared and multiplied by the sum of 1 plus the inverse of thethreshold. The second moment is multiplied by the number of symbols per frame. The two results arecompared. If the result is positive, then the stopping criteria has been met.
The turbo decoder will generate a block of extrinsics after each MAP decode. The SNR stopping criteriablock calculates the mean and the variance for this block. It will divide the two and compare the result withthe snr_threshold. If the result is greater then the snr_threshold for two consecutive MAP decodes, thenthe decoder will stop executing. The DSP sets the snr_threshold parameter. The SNR stopping criteriacan be turned off with a value of 0. Enabled values for snr_threshold range from 1 to 100. A value of 100gives the best BER performance at a cost of the most iterations executed, and a value of 1 gives theworst BER performance at a cost of the fewest iterations. Recommended setting for this parameter is 100.
A frame of data is sent through a CRC block which appends crc_length number of bits to the frame. Thisframe is encoded by the turbo encoder. The polynomial for the CRC check is defined with the crc_polyparameter. The turbo decoder will generate hard decision bits after each non-interleaved MAP decode.These bits are processed by the CRC block within the decoder. If the last crc_length bits match the CRCpattern, then the CRC check has passed. The turbo decoder will stop executing after CRCITERPASSnumber of consecutive CRC passes as programmed in TCPIC4.
The coefficients and the size of the CRC polynomial are programmable. The size of the polynomial isdefined with the parameter crc_length and can be set from 0 to 32 bits. A value of 0 disables the CRCcheck, values between 1 and 32 enable the CRC check. The CRC polynomial is defined with the crc_polyparameter. The CRC unit will not be enabled until the decoder iteration count is equal or greater than themin_iter parameter. The turbo decoder will generate hard decisions after each non-interleaved MAPdecode. These bits are processed by the CRC block within the decoder. If the last set of frame bits matchthe CRC pattern, then the CRC check has passed. The turbo decoder must pass a number of consecutiveiterations to terminate before max_iter. The number of consecutive iterations passed is defined with thecrc_iter_pass parameter. The crc_iter_pass parameter can be set from 0 to 31, a zero is equal to 1iteration. The dec_pass output parameter will be set to a 1 if the decoder terminated due to a passingCRC.
During the sub-block execution, up to 256 sets of data will be stored in a double buffered RAM whose sizeis 265x7x2. Two bits each will be stored for x0, p0, and p1. One bit is the sign bit and the other bit is set ifthe symbol is equal to a zero. These 6 bits will be used for re-encoding. The seventh bit will be the harddecision bit. This bit is the sign of the following summation: (x+a+w).
SPRUGK1 – March 2009 TMS320C6457 Turbo-Decoder Coprocessor 2 17Submit Documentation Feedback