FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6356 Discussions

Reed Solomon II decoder does not detect error packets

CBlow
Partner
704 Views

We are using a Cyclone III running the Reed Solomon decoder. I was using Quartus version 9.1sp2 with RS version 1 core many years ago. About 3 years ago, I updated to Quartus version 13.1.0.162 (the last supporting the Cyclone III) and upgraded the RS core to version 2. Everything seemed to work ok with that. 

Fast forward to today. I’m trying to track down a problem that came up in our system, I traced the problem back the RS decoder. The RS decoder II clearly isn’t working as well as RS decoder I. It’s like the correct and detection isn’t working very well on the RS decoder II. How this was discovered is I have a CRC-8 byte in the packet as a last resort catch in case the RS passes but it should have failed. I see with RS decoder I not one time did the CRC fail. With RS decoder II, the CRC fails many times meaning the packet is not getting flagged as a failure.

 

I can now provide test vectors of the failure case. I clearly see RS I report decoder failure but RS II pass the data. 

I have files with the TX Samples (the un-errored RX data) and 2 sets of Errored RX Samples that failed with RS I decoder but passed and shouldn’t have with RS II decoder. This behavior of the RS II decoder with these data sets was verified in hardware and in simulation. I understand there is a probability of the RS passing when it should have failed but the behavior shouldn’t be different between RS I and RS II decoders. In fact, not one time did the RS I decoder pass when it should have failed but this happened quite often with RS II decoder. 

 

RS Decoder setup:

Number of channels: 1

Number of bits per symbol: 8

Number of symbols per codeword: 70

Number of check symbols per codeword: 14

Field polynomial: 391

Type of Generator Polynomial: Classical

First root polynomial generator: 120

Root spacing in the polynomial generator: 1

No erasure support

 

Is there a known issue or errata with the Reed Solomon II core?

0 Kudos
5 Replies
SengKok_L_Intel
Moderator
406 Views

Hi,

 

The Check symbols per codeword are 14, what is the error#? Does e > R/2 (R = check symbols) or e > R? Do you observe a similar behavior if e < R/2?

 

Regards -SK

0 Kudos
CBlow
Partner
406 Views

Hi SK,

My customer looked at the RS1 manual and RS2 manual and observed

 

On page 3-4 of the RS1 manual:

Errors <= R/2 : Detects & Corrects

R/2 <= Errors <= R : Detects only

Errors > R : Unpredictable

 

On page 3-3 of the RS2 manual:

e <= R/2 : Detects & Corrects

R/2 < e : “Decoder asserts error signal and decoding fails. The probability that the decoder might not assert the error signal is less than 1/t” 

 

In layman’s terms, the RS 2 decoder is not as good as the RS 1 decoder! It seems like the designer of RS 2 knew about this limitation from the beginning. 

 

My customer needs the performance of RS1 in Cyclone 10 LP, but currently support is limited to Cyclone IV. Considering the architecture of Cyclone IV and Cyclone 10 LP is the same, what is the likelihood of having RS1 ported to the Cyclone 10 LP?

 

thanks

Carl

 

0 Kudos
SengKok_L_Intel
Moderator
406 Views

​Hi Carl,

 

The RS1 is NOT official support for Cyclone 10 LP, but I did a quick test by instantiate the RS1 in cyclone IV device, and then compile in Cyclone 10 LP project, the Quartus does not block it. You may give it a try and see if it break any functionality by using this unsupported flow.  

 

 

Regards -SK

 

0 Kudos
CBlow
Partner
406 Views

Hi SK,

I would like to continue this discussion privately. Can you please enable the private messaging capability?

thanks,

Carl

0 Kudos
SengKok_L_Intel
Moderator
406 Views

Hi Carl,

 

I sent you a private message to discuss this topic. Thanks.

 

Regards -SK

0 Kudos
Reply