ECC Design, Development, and Evaluation

All modern memory and storage technologies use error correction coding (ECC). This correction capability is essential for ensuring the endurance and the retention of our valuable data. 

ChannelScience characterizes the signal and noise due to the physics of your new storage technology. We develop error mitigation strategies and techniques, including ECC, signal processing, detection, and usage, that are precisely matched to your unique technology and the requirements of the market it is  intended to support.  

Please contact ChannelScience to schedule a free initial consultation. We work with data at the bit-level and below!

BCH Error Correction Code (ECC) Software

ChannelScience is pleased to provide FREE source code for BCH encoding and decoding functions (written in C by Neal Glover)! For those who are new to the topic, a BCH (Bose Chaudhuri Hocquenghem) code is a random bit error correcting code, widely used in flash (solid-state) non-volatile memory (NVM).

Neal Glover


Neal Glover was instrumental in moving the hard disk drive industry to more powerful error correction codes in the early 1990s. He has been interested in the practical application of error correcting codes for more than 30 years.

Neal has taught short courses on the subject and holds a number of patents in the field. He started two small businesses to provide error correction products and services to the magnetic and optical storage industries.

He enjoys programming in MATLAB® and "C" and has developed an extensive finite field function library for prototyping error correction algorithms in MATLAB®.

Neal's BCH Code

The software, files, and other information included are provided for educational purposes, AS IS, and without any warranty or claim of fitness for any purpose. Use it at your own risk. Review the license included in the download. If you do not agree with all of these terms, do not use the software.


An overview of the capabilities of version 4.00 of the code is provided in Neal's white paper Fast Software BCH Encoder and Decoder -FastBchEnDecR400-.

Neal's white paper, Extending the Life of Software BCH Encoders and Decoders Flash Memory Applications, explains some of the advanced techniques he uses in his BCH ENDEC software.

Download FREE C source code for BCH encoding and decoding functions

Additional ECC Resources

For reference, the previous version (R300) of the BCH software and white paper  are still available.

Another useful source for ECC source code is The Error Correcting Codes (ECC) Page.

Open source IP cores for ECC encoders and decoders are available from OpenCores. Search their site for the type of ECC you are looking for (CRC, BCH, Reed-Solomon, LDPC, ...), or browse "Projects" for "ECC core."