The Commsonic CMS0002 Viterbi Decoder core implements Viterbi’s algorithm for maximum likelihood decoding of non-feedback convolutional codes. Applications include DOCSIS (J.83B), DVBT, 802.11a and 802.16.
The basic 1/2 rate convolutional encoder and decoder are shown above. For each input bit, two encoded bits are produced. The rate can be increased to 2/3, 3/4, 5/6, or 7/8 by nontransmission (puncture) of certain bits. Punctured codes lose coding gain as the redundant content decreases.
The encoded X and Y bits are transmitted through a noisy channel. The received X and Y values are measured then presented as soft decision values to the decoder.
- Programmable constraint length.
- Programmable generator coefficients.
- Supports variable puncture rates. External logic provides puncture pattern. Internal logic calculates modified branch metrics.
- Zero-flush mode for 802.11a.
- Continuous mode for DOCSIS, DVB-T and many other applications.
- Configurable traceback length.
- Configurable soft-decision width.
- Flexible memory architecture suitable for FPGA or ASIC.
- Available in vector-matched C++, VHDL, or synthesised netlist