Effective Error Correction Codes for Noisy Channels in FPGA-ARM Interfaces

In summary, using error correction codes on the FPGA side can be a way to avoid sending data if it is corrupted, but it can also add significant overhead.
  • #1
Jaynte
79
0
I'm designing an interface between an ARM-CPU and a FPGA and have
a pretty noisy channel between them.

So I was wondering if anyone have any tip of error correction code on the FPGA side
except the Hamming method I am using right now.

What I want is a method which can correct if the error is larger than one bit/word without
request a new transfer.
 
Engineering news on Phys.org
  • #2
Jaynte,

The obvious answer is to "clean up" the channel/bus, perhaps using differential pairs, fiber optics, shielded cable, proper trace isolation, etc. I can't think of a way to "repair" bad bytes w/o adding significant overhead or having a priori knowledge about the data. Even if you sent an XOR byte of each data byte, you would not know which byte was "good" and which byte was "bad" w/o each byte having a check sum bit. In the end, Error Correction can waste more time/resources than simple error detection & re-sending the data. Of course, a lot depends on the nature of the data. If it is streamed audio/video, a few bad bytes aren't really that big a deal; on the other-hand if the FPGA is responsible for crypto processing even losing a bit can be catastrophic.

Perhaps someone who is a lot smarter than me can give better advice, but the best I can offer is suggesting you make the communications path as pristine as possible and employ error detection and "resend" the failed packets.

Good Luck!

Fish
 
  • #4
Thanx, I will stream audio data and that part is not a problem if one or two bit is wrong out of 1 MB like it is right now.
But on the FPGA side I have a hardware accelerator which uses instructions and they need to be correct or the system will
crash.

I think I will just use Hamming because there is very seldom I get a 2-bit error and if I do I will just resend.
 
Last edited:

1. What is Error Correction Code (ECC)?

Error Correction Code (ECC) is a method used in data communication and storage to detect and correct errors that may occur during transmission or storage. ECC is designed to increase the reliability of data by adding extra bits to the original data, which can be used to identify and correct errors.

2. How does ECC work?

ECC works by adding redundant bits to the original data using mathematical algorithms. These bits are used to detect and correct errors in the data. When the data is received, the ECC algorithm is applied to check for errors. If errors are detected, the algorithm uses the redundant bits to correct the data.

3. Why is ECC important?

ECC is important because it helps to ensure the accuracy and reliability of data. It is especially useful in situations where data corruption or errors can lead to serious consequences, such as in critical systems like aerospace, medical devices, or financial transactions.

4. What are some common types of ECC?

Some common types of ECC include Hamming codes, Reed-Solomon codes, and Bose-Chaudhuri-Hocquenghem (BCH) codes. These codes differ in their level of error correction capabilities and are used in different applications depending on their requirements.

5. How does ECC compare to other methods of error detection and correction?

ECC is more powerful and efficient than other methods of error detection and correction, such as parity checks. ECC can detect and correct multiple errors in a data block, while other methods can only detect errors or correct a single error. This makes ECC a more reliable and preferred method for error correction in data communication and storage.

Similar threads

  • Materials and Chemical Engineering
Replies
4
Views
1K
  • Sticky
  • Programming and Computer Science
Replies
13
Views
4K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
12
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
3
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
4K
Replies
46
Views
2K
  • Mechanical Engineering
Replies
1
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
23
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
2K
Back
Top