www.latticesemi.com
1
ip1014_02
Convolutional Encoder
March 2003 IP Data Sheet
© 2003 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal. All other brand
or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
The product described herein is subject to continuing development, and applicable specifications and information are subject to change without notice. Such specifica-
tions and information are provided in good faith; actual performance is not guaranteed, as it is dependent on many factors, including the user's system design.
Features
■
Parameterizable continuous convolutional
encoder
■
Parameterizable constraint length from 3 to 12
■
Parameterizable convolutional codes
■
Parameterizable puncture codes
■
Puncturing input rates from 2 to 12
■
Puncturing output rates from 2 to 23
General Description
The top-level representation of the convolutional
encoder is shown in Figure 1. For detailed signal
descriptions, see Table 1.
Convolutional Encoding Example
Convolutional encoding is a process of adding redun-
dancy to a signal stream. Figure 2 shows an e xample of
convolutional encoding.
In this example, each input symbol has 2 corresponding
output symbols, hence the encoding is called 1/2 rate
convolutional encoding. To generate the output, the
encoder uses 3 v alues of the input signal, 1 present and
2 past. The set of past values of input data is called a
“state.” The number of input data values used to gener-
ate the code is called the constraint length. In this case,
the constraint length is 3. Each set of outputs is gener-
ated by XORing a pattern of current and shifted values
of inupt data. The patterns used to generate the coded
output value can be expressed as binary strings called
generator polynomials. In this example, the generator
polynomials are 111 and 101. The MSB of the generator
polynomial corresponds to the input; the LSBs of the
generator polynomial correspond to the state as shown
in Figure 2. A bit value of ‘1’ in the generator polynomial
represents a used XOR bit and a v alue of ‘0’ signifies an
unused bit.
Block Diagram
Figure 1. Convolutional Encoder Top-level Block Diagram
Convolutional
Encoder
din dout
clk
reset_b
dout_valid
pd_start
din_valid rfi