BCH code statistics for different `$mm` `$tt`
Zero latency, low gate count, low power, asynchronous BCH Code based Error Correction FEC:
The whole operation of encoding and decoding is asynchronous and is pure combinatorial gates without use of any synchronous logic, making it zero latency RTL.
Symbol Size is 1 bit and variables are ‘m’ bits wide for Galois Field operations.
The main features are:
- 1. Asynchronous operation
- 2. No clocks required.
- 3. No storage like memories SRAMS/ROMS/FilipFlops used
- 4. No iterative Feedback in the pipeline
- 5. All operation is performed in 0 clock cycles.
- 6. RTL code is generated with parameters of
- a) “m” the degree of primitive polynomial
- b) “t_max” maximum value of error symbols that can be corrected.
- c) number of symbols by which the code is shortened.
- d) The number of error symbols (“t”) is programmable upto
“t_max” .
- 7. Separate encoders are for every “t” .
- 8. Decoder shared for various values of “t” upto “t_max”
- 9. Lint clean code, verified for various values of “m”, “t_max”, “t” and shortened code.
- 10. Size of code differs for various values of “m”, “t_max” and number of symbols by which the code is shortened.
Every symbol and primitive polynomial used of degree ‘m’ and ‘n’ is ((1<<‘m’)-1) .Shortened ‘n_short’ is less than ‘n’ where symbols (‘n’ – ‘n_short’) are 0 . If the code has ‘t’ error correcting capability then ‘k’ = ‘n’ – 2*’t’ = no. of message symbols.
RTL is completely configurable for ‘m’ , ‘n_short’ or ‘t’. Typically, but not necessarily ‘m’ lies between 5 to 15
ECC, number of parity symbols is 2*’t’.
Errors_correctable are upto ‘tt’, if more than ‘tt’ errors then indicated as uncorrectable.
The Error correcting Code consists of:
- Encoder:
- A. It has programmable input data bus width. The whole encoding can be completed in 0 cycle
- Decoder:
- A. Syndrome Calculator: It can generate all syndromes in 0 clocks, or serially in as large as ‘n_short’ clocks
- B. BerlekampMasy Circuit: it generates error locator polynomial for Chien search engine
- C. Parallel Chien Search Engine: It finds error locations in as little as 0 clock or as large as ‘n_short’ clocks
- Applications:
- SSD Controller
- Space Communications
- QR Code
- Optical Communication
- High Speed Communications
- SRAMS in chips ASICS can have memory repair using this circuit
- memory ECC in BIST
- Hamming Code will protect against 1 bit errors and detect only upto 2 bit errors
- BCH can correct upto `$tt` bit errors where `$tt` is decided when code is generated
- BCH can detect if more than `$tt` bit errors have occurred. Here symbol is 1 bit.
- 802.3-2008 and IEEE 802.3ba-2010 Clause 74 BCH(2112,2080)
- 802.3bs BCH(2880, 2570, t=25) BCH(4416, 4112, t=23