Input logic (optional)
Implements the Phase/Node synchronization. Both auto and external
synchronization modes are supported. |
| |
De-puncture(optional)
De-punctures the received stream with NULL symbol(s). |
| |
BMU
This block generates the branch metrics for all possible trellis
branches. The BMU block is implemented as LUT in a ROM. |
| |
ACS
For every trellis state, this block generates a decision bit
and a new path metric. The ACS block will have as many ACS units
as 2 (k-1) OR less depending on parallel/serial/hybrid implementation. |
| |
Metric Normalization
Normalizes the metrics to avoid overflow/underflows. Modulo-2
normalization method is used. |
| |
Synchronization control
(optional)
This block will count the number of normalizations over a specified
window (expressed in number of decoded bits) and compares it
with a specified threshold. If the count exceeds the threshold,
then it changes the synchronization state of the decoder. This
is true in auto synchronization mode. When external synchronization
control option is selected, the synchronization state of the
decoder will change only when external synchronization state
change signal is asserted. |
| |
Survivor memory unit
This memory stores the decisions bits, which indicate the
survivor path, for every trellis state. An option for an survivor
external memory is also included. |
| |
Decode block
Performs the decoding operation using the decision bits stored
in the survivor memory. Both continuous and block decoding modes
are supported. |
| |
BER monitor (optional)
This block provides the bit error count over a specified window
(expressed in number of decoded bits) by comparing the decoder
input stream with the stream obtained by encoding the decoded
bits. This error count indicates the BER of the channel (pre-Viterbi
BER) as the chances of Viterbi decoder decoding incorrectly
is very low. |
| |
Differential Decoder
(optional)
Differentially decodes the decoded symbols, provided differential
encoder is employed at the Convolution Encoder side. |