|
Overview
Viterbi decoding is an efficient algorithm for decoding convolutionally encoded sequences corrupted by channel noise back to the original sequence. In the digital transmit-receive system shown below the digital data stream (e.g., voice, image, or any packetized data) is encoded, modulated, and transmitted through a wired or wireless channel. A “noise” block connected to the channel symbolically denotes the channel noise. The data received from the channel at the receiver side is first demodulated and then decoded using the Viterbi decoder. The decoded output is equivalent to the transmitted digital data stream.
Lattice's Block Viterbi Decoder IP core is a parameterizable Viterbi Decoder for decoding different combinations of convolutionally encoded sequences. The decoder supports various code rates, constraint lengths, and generator polynomials. It also allows soft-decision decoding and is capable of decoding punctured codes. The core can operate in continuous or block modes, whichever is required by the channel. Either Tail Biting or Zero Flushing convolutional codes can be decoded in the block mode. All the configurable parameters, including operation mode, generator polynomials, punctured block size, and puncture pattern can be defined by the user to suit the needs of their application. The code rate and puncture pattern can also be changed dynamically through input ports during the operation of the decoder. Lattice’s Block Viterbi Decoder IP is compatible with many networking and wireless standards that use different methods of convolutional encoding at the encoder.
Features
- Compatible with IEEE 802.16-2004 SC PHY/ OFDM PHY, IEEEE802.11a, 3GPP, 3GPP2, and DVB standards
- Supports multiple code rates: 1/2, 1/3, ... 1/7 for non-punctured codes, 2/3, 3/4, ..., 12/13 for punctured codes, and from m/(m+1) to m/(2m-1), where m is from 1 to 12, for dynamic punctured codes
- Variable constraint length from 3 to 9
- Supports dynamically variable code rates and puncture patterns
- Dynamic BER estimation option
- One-clock synchronous design
- Hard or parameterizable soft decision decoding. Hard and soft decision for non-punctured codes and soft decision for punctured codes
- Fully parallel or hybrid implementations. For a hybrid implementation, the degree of parallelism is parameterizable
- Parameterizable trace-back length
- Signed and unsigned representations for soft decision data
- Supports parameterized puncturing patterns
- Supports both continuous and block data input
- Supports both Tail Biting and Zero Flushing block convolutional codes
- Supports both one and two traceback schemes to cater to different coding scenarios
Performance and Resource Utilization
LatticeECP31
| Parameter File |
Parameters |
SLICEs |
LUTs |
Registers |
IOB |
sysMEM EBRs |
fMAX(MHz) |
| IEEE 802.16a 2004-SC-PHY |
See User's Guide |
285 |
469 |
232 |
11 |
2 |
187 |
| 3GPP |
See User's Guide |
6349 |
11736 |
3159 |
13 |
16 |
132 |
| DVB-S, IEEE 802.11a |
See User's Guide |
1626 |
3011 |
864 |
10 |
4 |
168 |
| IEEE 802.16 2004-OFDM PHY (dynamic puncturing) |
See User's Guide |
1768 |
3191 |
1032 |
29 |
4 |
171 |
IEEE 802.16 2004-OFDM PHY
(fixed puncturing) |
See User's Guide |
1935 |
3485 |
1185 |
13 |
4 |
146 |
LatticeECP2M1
| Parameter File |
Parameters |
SLICEs |
LUTs |
Registers |
IOB |
sysMEM EBRs |
fMAX(MHz) |
| IEEE 802.16a 2004-SC-PHY |
See User's Guide |
291 |
469 |
232 |
11 |
2 |
211 |
| 3GPP |
See User's Guide |
6345 |
11747 |
3160 |
13 |
16 |
135 |
| DVB-S, IEEE 802.11a |
See User's Guide |
1636 |
3017 |
864 |
10 |
4 |
179 |
| IEEE 802.16 2004-OFDM PHY (dynamic puncturing) |
See User's Guide |
1801 |
3201 |
1032 |
29 |
4 |
176 |
IEEE 802.16 2004-OFDM PHY
(fixed puncturing) |
See User's Guide |
1935 |
3467 |
1185 |
13 |
4 |
176 |
LatticeECP21
| Parameter File |
Parameters |
SLICEs |
LUTs |
Registers |
IOB |
sysMEM EBRs |
fMAX(MHz) |
| IEEE 802.16a 2004-SC-PHY |
See User's Guide |
291 |
469 |
232 |
11 |
2 |
207 |
| 3GPP |
See User's Guide |
6345 |
11747 |
3160 |
13 |
16 |
138 |
| DVB-S, IEEE 802.11a |
See User's Guide |
1636 |
3017 |
864 |
10 |
4 |
178 |
| IEEE 802.16 2004-OFDM PHY (dynamic puncturing) |
See User's Guide |
1801 |
3201 |
1032 |
29 |
4 |
175 |
IEEE 802.16 2004-OFDM PHY
(fixed puncturing) |
See User's Guide |
1935 |
3467 |
1185 |
13 |
4 |
129 |
LatticeEC/P1
| Parameter File |
Parameters |
SLICEs |
LUTs |
Registers |
IOB |
sysMEM EBRs |
fMAX(MHz) |
| IEEE 802.16a 2004-SC-PHY |
See User's Guide |
280 |
457 |
232 |
11 |
2 |
126 |
| 3GPP |
See User's Guide |
5041 |
9922 |
3160 |
13 |
16 |
101 |
| DVB-S, IEEE 802.11a |
See User's Guide |
1310 |
2562 |
864 |
10 |
4 |
106 |
| IEEE 802.16 2004-OFDM PHY (dynamic puncturing) |
See User's Guide |
1474 |
2742 |
1032 |
29 |
4 |
108 |
IEEE 802.16 2004-OFDM PHY
(fixed puncturing) |
See User's Guide |
1735 |
3254 |
1185 |
13 |
4 |
108 |
LatticeSC/M1
| Parameter File |
Parameters |
SLICEs |
LUTs |
Registers |
IOB |
sysMEM EBRs |
fMAX(MHz) |
| IEEE 802.16a 2004-SC-PHY |
See User's Guide |
263 |
433 |
233 |
11 |
2 |
261 |
| 3GPP |
See User's Guide |
4923 |
9426 |
3391 |
13 |
16 |
207 |
| DVB-S, IEEE 802.11a |
See User's Guide |
1239 |
2438 |
864 |
10 |
4 |
236 |
| IEEE 802.16 2004-OFDM PHY (dynamic puncturing) |
See User's Guide |
1389 |
2617 |
1032 |
29 |
4 |
230 |
IEEE 802.16 2004-OFDM PHY
(fixed puncturing) |
See User's Guide |
1743 |
3227 |
1186 |
13 |
4 |
224 |
LatticeXP21
| Parameter File |
Parameters |
SLICEs |
LUTs |
Registers |
IOB |
sysMEM EBRs |
fMAX(MHz) |
| IEEE 802.16a 2004-SC-PHY |
See User's Guide |
291 |
469 |
232 |
11 |
2 |
183 |
| 3GPP |
See User's Guide |
6345 |
1147 |
3160 |
13 |
16 |
128 |
| DVB-S, IEEE 802.11a |
See User's Guide |
1636 |
3017 |
864 |
10 |
4 |
160 |
| IEEE 802.16 2004-OFDM PHY (dynamic puncturing) |
See User's Guide |
1801 |
3201 |
1032 |
29 |
4 |
153 |
IEEE 802.16 2004-OFDM PHY
(fixed puncturing) |
See User's Guide |
1935 |
3467 |
1185 |
13 |
4 |
136 |
LatticeXP1
| Parameter File |
Parameters |
SLICEs |
LUTs |
Registers |
IOB |
sysMEM EBRs |
fMAX(MHz) |
| IEEE 802.16a 2004-SC-PHY |
See User's Guide |
280 |
457 |
232 |
11 |
2 |
116 |
| 3GPP |
See User's Guide |
5041 |
9922 |
3160 |
13 |
16 |
92 |
| DVB-S, IEEE 802.11a |
See User's Guide |
1310 |
2562 |
864 |
10 |
4 |
101 |
| IEEE 802.16 2004-OFDM PHY (dynamic puncturing) |
See User's Guide |
1474 |
2742 |
1032 |
29 |
4 |
104 |
IEEE 802.16 2004-OFDM PHY
(fixed puncturing) |
See User's Guide |
1735 |
3254 |
1185 |
13 |
4 |
100 |
Ordering Information
| Family |
Part Number |
| LatticeECP3 |
VTERB-BLK-E3-U4 |
| LatticeECP2M |
VTERB-BLK-PM-U4 |
| LatticeECP2 |
VTERB-BLK-P2-U4 |
| LatticeECP/EC |
VTERB-BLK-E2-U4 |
| LatticeSC |
VTERB-BLK-SC-U4 |
| LatticeXP2 |
VTERB-BLK-X2-U4 |
| LatticeXP |
VTERB-BLK-XM-U4 |
IP Version: 4.5
Evaluate: To download a full evaluation version of this IP, go to the Lattice IP Server tab in the IPexpress Main Window. All LatticeCORE IP that are available for download are visible on this tab.
Purchase: To find out how to purchase the IP Core, please contact your local Lattice Sales Office.
|
|