The Turbo Product Codec IP core is consisted of the Turbo Product Encoder (ntTPE) and the Turbo Product Decoder (ntTPD) blocks. The product code C is derived from two constituent codes, namely C1 and C2. The information data is encoded in two dimensions. Every row of C is a code of C2 and every column of C is a code of C1. The Configurable Turbo Product Codec supports both e-Hamming and Single Parity Codes as the constituent codes. The core also supports shortening. Shortening is a way of providing more powerful codes by removing information bits from the code.
The Configurable Turbo Product Codec receives the information bits row by row from left to right and trans-mits the encoded bits in the same order. It consists of a row and column encoder. The row encoder encodes the data row-wise. The encoded data from the row encoder are stored in the encoded data memory. Concurrently, the information data are encoded column-wise by the column encoder and the column parity bits are stored in a separate memory.
The Configurable Turbo Product Codec receives soft information from the channel in the 2’s complement number system and the input samples are received row by row from left to right. The ntTPD core transmits the decoded bits in the same order. The implemented decoding algorithm computes the extrinsic information for every dimension by decoding words that are near the soft-input word. These words are called test patterns and their number can be programmed.