Implementation of Xilinx Aurora protocol with error correction

S

S. Bernstein

Jan 1, 1970
0
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
 
N

Nathan Bialke

Jan 1, 1970
0
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

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
 
V

Vladimir Vassilevsky

Jan 1, 1970
0
S. Bernstein said:
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?

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
http://www.abvolt.com
 
S

S. Bernstein

Jan 1, 1970
0
Nathan Bialke said:
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.

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
 
J

JosephKK

Jan 1, 1970
0
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

I am not familiar with Aurora nor which particular 8B/10B is used.
Just the same, any attempt to use further coding between the 10B level
and the wire will be incompatible. Reed Solomon, and other error
recovery coding is generally farther up the stack, like at transport
layer. Hamming code also has limitations in that it cannot detect
protection code errors, nor multi-bit errors. Hanning is reliable at
detecting protection codon errors, or multi-bit errors, but not both
at the same time. Fire code and better CRC systems can detect and
correct almost all multi-bit errors, and are typically not much more
added bits and can even be less added bits than Hanning or Hamming
error detection and correction codes.
 
Top