Digital Electronics and Design with VHDL

Objective: As mentioned in the previous chapter, modern digital designs often include means for communications between distinct system parts, forming larger, integrated networks. Large specialized means for data storage are generally also required. To add protection against errors in such cases (data communications and storage), error-detecting/correcting codes are often employed, so a basic knowledge of such codes is highly desirable, and that is the purpose of this chapter. This presentation, however, constitutes only an introduction to the subject, which was designed to give the reader just the indispensable background and motivation. The codes described for error detection are SPC (single parity check) and CRC (cyclic redundancy check). The codes described for error correction are Hamming, Reed-Solomon, Convolutional, Turbo, and LDPC (low density parity check). Data interleaving and Viterbi decoding are also included.
Chapter Contents
| 7.1 | Codes for Error Detection and Error Correction |
| 7.2 | Single Parity Check (SPC) Codes |
| 7.3 | Cyclic Redundancy Check (CRC) Codes |
| 7.4 | Hamming Codes |
| 7.5 | Reed-Solomon (RS) Codes |
| 7.6 | Interleaving |
| 7.7 | Convolutional Codes |
| 7.8 | Viterbi Decoder |
| 7.9 | Turbo Codes |
| 7.10 | Low Density Parity Check (LDPC) Codes |
| 7.11 | Exercises |
In Chapter 2 we described several codes for representing decimal numbers (sequential binary, Gray, BCD, floating-point, etc.) and also codes for representing characters (ASCII and Unicode). In Chapter 6, another group of codes was introduced, collectively called line codes, which are used for data transmission and storage. A...