Patent ID: 7246298

Claim:
A Viterbi/Turbo unified decoder for decoding a Viterbi or Turbo code word, the decoder comprising: a Branch Metric Calculation (BMC) unit, receiving input symbols and determining a branch metric associated with each node of the code word; a control circuit, computing partial path metrics at each node according to the corresponding branch metric received from the BMC unit and the partial path metrics at a preceding node stored in a first memory block, storing the computed partial path metrics in a second memory block, wherein the order and address for reading and writing the partial path metrics from/to the memory blocks follow a fixed routing rule for parallel processing, and performing either selection or Maximum a Posteriori probability (MAP) calculation depending on the code word type to identify a surviving path at each node; a trace-back unit, coupled to the control circuit for generating decoded output for the Viterbi code word by tracking the surviving paths designated by the control circuit; an interleaver/de-interleaver, coupled to the control circuit for generating decoded output for the Turbo code word by permuting or recovering the ordering of the input in a deterministic manner; and a Turbo buffer, receiving the input symbols and the output of the interleaver/de-interleaver, and providing storage for the BMC unit and the interleaver/de-interleaver.