Convolutional encoding is a process of adding redundancy to a signal stream to provide error correction capability. The figure below shows a digital communication system using the Convolutional Encoder. The digital data stream (such as voice, image or any packetized data) is first convolutionally encoded, then modulated and finally transmitted through a channel.
Lattice’s Block Convolutional Encoder IP core is a parameterizable core for convolutional encoding of continuous or burst input data streams. The core allows different code rates and constraint lengths and supports puncturing. It can operate in continuous or block mode, whichever is required by the channel. In block mode, either Zero Flushing or Tail Biting codes can be generated. All the configurable parameters, including operation mode, termination mode, generator polynomials, code rate, and puncture pattern, can be defined by the user to suit the needs of the application. The code rate and the puncture pattern can also be varied through the input ports dynamically, providing further flexibility for the IP usage. Lattice’s Block Convolutional Encoder IP core is compatible with many networking and wireless standards that use convolutional encoding.
- Compatible with the following standards: IEEE 802.16-2004, IEEE 802.11a, 3GPP, 3GPP2 and DVB-S
- Supports both continuous and block encoding
- Variable constraint length from 3 to 9
- Supports both Zero Flushing and Tail Biting termination modes
- Supports both internal and external zero padding in Zero Flushing mode
- Supports both internal and external tail adding in Tail Biting mode
- Supports a wide range of programmable code rates (input_rate/output_rate)
- User defined generator polynomials
- Output puncturing with unrestricted, user programmable puncture patterns
- Supports dynamic puncturing mode, in which both the code rate and puncture patterns can be varied through ports
- Punctured code rate can be programmed to k/n, where k can be from 2 to 12 and n can be from k+1 to 2k-1; additionally, rate 1/2 is supported in dynamic puncture mode
- Handshake signals to support breaks in data stream or encoder busy conditions
Block Diagram of the Block Convolutional Encoder IP Core