Reed-Solomon II IP Core User Guide

ID 683144
Date 11/17/2015
Public

3.1.1. Reed-Solomon II Encoder

When the encoder receives data symbols, it generates check symbols for a given codeword and sends the input codeword together with the check symbols to the output interface. The encoder uses backpressure on the upstream component when it generates the check symbols.
Figure 5. Reed-Solomon II Codeword Encoding
Figure 6. Encoder Timing—One ChannelShows the timing diagram of the RS II encoder with one channel.
The in_startofpacket signal starts a codeword; the in_endofpacket signals its termination. An asserted in_valid signal indicates valid data. The in_startofpacket signal is only valid when you assert the in_valid signal. For a 1-channel codeword, assert the in_startofpacket and in_endofpacket signals for one clock cycle. The encoder uses backpressure by deasserting the in_ready signal when it receives the in_endofpacket signal. During this time, the encoder signals that it cannot accept more incoming symbols and generates the check symbols for the current codeword. The IP core does not verify if the number of symbols (N) exceeds the maximum symbols per codeword. You must ensure that the codeword sent to the core has a valid N. The reset_reset_n signal is active low and you can assert this signal asynchronously. However, you have to deassert the reset_reset_n signal synchronously with the clk_clk signal.

Shortened Codewords

The RS II IP core supports shortened codewords. A shortened codeword contains fewer symbols than the maximum value of N, which is 2M –1, where N is the total number of symbols per codeword and M is the number of bits per symbol. A shortened codeword is mathematically equivalent to a maximum-length code with the extra data symbols at the start of the codeword set to 0. For example, (204,188) is a shortened codeword of (255,239). Both of these codewords use the same number of check symbols, 16. To use shortened codewords with the decoder, use the parameter editor to set the codeword length to the correct value; for the encoder assert endofpacket once it generates enough symbols.