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

AI Thread Summary
The discussion focuses on designing an error correction method for a noisy channel between an ARM-CPU and an FPGA. The user is currently using Hamming codes but seeks alternatives that can correct multiple bit errors without requiring retransmission. Suggestions include improving the physical communication channel through methods like differential pairs and shielded cables. The consensus is that while error correction can be complex and resource-intensive, for streaming audio, minor errors may be acceptable, whereas critical data like instructions require higher accuracy. Ultimately, the user plans to stick with Hamming codes and resend data when necessary.
Jaynte
Messages
79
Reaction score
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
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
 
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:
Hi all I have some confusion about piezoelectrical sensors combination. If i have three acoustic piezoelectrical sensors (with same receive sensitivity in dB ref V/1uPa) placed at specific distance, these sensors receive acoustic signal from a sound source placed at far field distance (Plane Wave) and from broadside. I receive output of these sensors through individual preamplifiers, add them through hardware like summer circuit adder or in software after digitization and in this way got an...
I have recently moved into a new (rather ancient) house and had a few trips of my Residual Current breaker. I dug out my old Socket tester which tell me the three pins are correct. But then the Red warning light tells me my socket(s) fail the loop test. I never had this before but my last house had an overhead supply with no Earth from the company. The tester said "get this checked" and the man said the (high but not ridiculous) earth resistance was acceptable. I stuck a new copper earth...
I am not an electrical engineering student, but a lowly apprentice electrician. I learn both on the job and also take classes for my apprenticeship. I recently wired my first transformer and I understand that the neutral and ground are bonded together in the transformer or in the service. What I don't understand is, if the neutral is a current carrying conductor, which is then bonded to the ground conductor, why does current only flow back to its source and not on the ground path...
Back
Top