Implementation of Xilinx Aurora protocol with error correction

Hi,

I implemented an Aurora link layer using EDK.Now I am concerned about reliability and want to implement a 64-Bit or 32-Bit Hamming Code to enable error detection and correction. Now I am wondering if that makes sense anyway, because if there are bit errors the 8B/10B coding featured in Aurora would dismiss erroneous data words anyway and the Hamming Code would not work. Please correct me if i'm wrong. So what means do I actually have to implement a fail-safe connection via Aurora?

Thanks in advance, Saul

Reply to
S. Bernstein
Loading thread data ...

It seems to me you should be asking why you want to make a fail-safe connection with Aurora. Aurora is only specified to a BER of 1E-12. Even if you manage to protect the data payload portion of the frames, your frame error rate will be limited by the control (K) characters used by Aurora, which won't be protected. Moreover, the specification tends to assert a hard error (and hence, reinitialize the link) when there is an error in these characters, which is somewhat inconvenient.

Further, I'd suggest that Hamming codes are going to be difficult to use with 8b/10b encoding. Remember that a bit error in an 10b character can result in more than one bit error in the corresponding

8b character. As a result, your Hamming code will probably be a lot less effective than you think it'd be. Of course, you can remove 8b/ 10b encoding, but then you're going to have a whole lot of trouble getting Aurora to work.

As a practical matter, the question has to be asked - why do you want to do this? If this is an wired connection, there should be no bit errors. If there are bit errors in your system, the system is misconfigured or improperly designed. If this is an optical connection or something fancier, you should know the properties of your channel - most likely, Hamming codes are not nearly the most effective error correction mechanism available to you for even more reasons than I've specified. They may, however, be the cheapest, which definitely counts for something.

The route I've considered, but not implemented, for something approximating this is to use an Aurora-like protocol (with all K characters being triplicated) with Reed Solomon encoding being done on the data at the 8b/10b level (using 10 bit symbols). If you'd like more detail, feel free to contact me.

- Nathan

Reply to
Nathan Bialke

Aurora assumes the link to be error free. If there is an occasional error, the connection is re-established. Hence the error correction coding is not going to make an improvement. If you are looking for the bullet proof link with ECC, you should use a different protocol.

Vladimir Vassilevsky DSP and Mixed Signal Design Consultant

formatting link

Reply to
Vladimir Vassilevsky

Hi Nathan,

thanks for your reply. I'd like to go into more details about your suggestion because it sounds very interesting. I'm familiar with Reed-Solomon encoding. So tell me, what's the point in triplicating all K-characters? Do you apply the RS on the 10 bit symbols, i.e. after the phy coding layer?

Regards, Saul

Reply to
S. Bernstein

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.