Patent ID: 8312355

Claim:
An integrated circuit configurable to encode data according to one of a predetermined plurality of coding schemes comprising block, convolutional and turbo codes and to generate cyclic redundancy codes, said integrated circuit comprising: a) a plurality of specific hardware cells, each cell comprising: outputs S ij , FO ij , BO ij and TO ij for binary signals, inputs E ij , BI ij , FI ij and TI ij for binary signals, a buffer to delay by one clock period a binary value received on input E ij and to output a one-clock period delayed binary value E*, binary adders to perform XOR operations, configurable multiplexers connecting the outputs, the inputs, the buffer and the adders to each other according to several configurable paths, the characteristic equations of the cell being: TO ij =S ij =Ctm·TI ij +!Ctm ·Output Mux 4 Output Mux 4= Cmm 0 ·Cmm 1 ·E*+!Cmm 0 ·Cmm 1·( E*XORBI ij )+ Cmm 0 ·!Cmm 1 ·E+!Cmm 0 ·!Cmm 1·( E ij XORFI ij ) BO ij =Cbm ·( S ij XORBI ij )+! Cbm·BI ij or BO ij =Cbm 0 ·Cbm 1·( S ij XORBI ij )+! Cbm 0 ·Cbm 1 ·BI ij +!Cbm 0 ·Cbm 1 ·S ij FO ij =Cfm ·( S ij XORFI ij )+! Cfm·FI ij where: S ij , FO ij , BO ij and TO ij are the binary signals output on outputs S ij , FO ij , BO ij and TO ij , respectively, E ij , BI ij , FI ij and TI ij are the binary signals received on inputs E ij , BI ij , FI ij and TI ij , respectively, “!” is the NOT operation, “*” is the output of the buffer, “XOR” is the XOR operation, “+” is the OR operation, “·” is the AND operation, Cbm, Cbm0, Cbm1, Cfm, Cmm0, Cmm1 and Ctm are respective binary values that represent the configuration of each multiplexer, b) controllable switch matrices external to each cell and able: to electrically connect and, alternatively, to electrically disconnect input E ij to/from at least the output S ij of another cell and to electrically connect and, alternately, to electrically disconnect input E ij to/from an external binary data source, to electrically connect and, alternately, to electrically disconnect at least input FI ij to/from at least the output FO ij of another cell, to connect and, alternately, to disconnect input to/from at least the output BO ij of another cell.