Reed Solomon II decoder does not detect error packets
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?