We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 41527

LogiCORE Reed-Solomon Encoder/Decoder v7.1 - Are there any examples for the core?


Are there examples for the Reed-Solomon Encoder and Reed-Solomon Decoder cores?


Within the Reed-Solomon Decoder Data Sheet there are four design examples.

Example 1:
RS(255,239) is a configuration of 255 symbols and 239 8-bit data symbols. This code is capable of correcting 8 symbol errors, that is, up to 64 bit errors.
The Processing Delay is 204 cycles, which is less than 255, so this configuration is capable of continuous processing.
Symbol Width = 8
Symbols per Block (n) = 255
Data Symbols (k) = 239

Example 2:
RS(255,229) is a configuration of 255 symbols and 229 8-bit data symbols. This has a greater error correcting capability than Example 1, in that 13 symbols, or 104 bits of data, can be corrected.
However, as the Processing Delay is 459 cycles, and is therefore greater than 255, continuous processing cannot be done.
Symbol Width = 8
Symbols per Block (n) = 255
Data Symbols (k) = 229
If continuous processing is required, then the number of clock periods per symbol can be set to 2. By setting Clocks per Symbols to 2, the processing delay is now 230 symbols periods, but each symbol period is two clock periods.
Therefore, for a symbol rate of 100 Msymbols/sec, the core would need to be clocked at 200 MHz.

Example 3:
The requirement is to be able to detect and correct a minimum of 3% of the symbols in a block of 12-bit data and have continuous operation.
As this is 12-bit data, the maximum number of symbols in the block is 4095, and to meet the correction criteria the configuration would be RS(4095,3849).
The Processing Delay (31369 symbol periods) would be prohibitive due to the n-k value of 246.
The solution could be to use a shortened code. If RS(400,376) was used, this would correct 3% within the 400 symbols block.
The Processing Delay is 400, so continuous code blocks are possible.
Symbol Width = 12
Symbols per Block (n) = 400
Data Symbols (k) = 376

Example 4:
In this case there is a requirement to vary the number of symbols and the number of check symbols in the block.
The symbol width is 8 bits, so n must be set to 255.
The largest expected R_IN value is 16, so k must be set to 255-16=239.
This gives an R_IN port width of 5 bits.
So the N_IN can have a value up to 255 and R_IN can have a value up to 16.
Lower limits are defined in Table 3.
Symbol Width = 8
Symbols per Block (n) = 255
Data Symbols (k) = 239
Variable Block Length Checked
Variable Number of Check Symbols Checked

These examples are attached to this Answer record.


Associated Attachments

Name File Size File Type
RS_examples.zip 16 MB ZIP
AR# 41527
Date 01/07/2015
Status Active
Type General Article
  • Reed-Solomon Decoder
  • Reed-Solomon Encoder