Constellation Data Systems, Inc.
Constellation Data Systems, Inc.

Rapid Response Engineering from Cincinnati Ohio

Forward Error Correction in Firmware Systems
Home
Products
Electronic Engineering
Software Engineering
Library
Testimonials
Sales and Licensing
Company Profile
External Links
Support
Contact Us
News and Events

1. Introduction

1.1 Executive Summary

The key value of Forward Error Correction (FEC) technology is that it allows the receiver of a corrupted message the potential to correct the message without referring to the transmitter of the message. The contribution of Constellation's FEC Framework not an advancement in the theory of FEC, but rather a revolutionary advancement in implementation. It is this ease of implementation, which substantially reduces development risk, cuts time from project development, and results in a gain of product quality.

This white paper describes a method of firmware implementation of FEC, with specific focus to use, methods and schemes of evaluation and demonstration appropriate to firmware systems.

While the technology described herein is agnostic with respect to implementation, some example implementations are mentioned in the context of the discussion.

1.2 Audience

This White Paper is of interest to engineers and managers contemplating issues regarding data communications where noise injection results in discrepancies between transmitted data and received data (also know as "data errors"). A document wide assumption is that the interest of the reader in forward error correction involves use of this technology in communications systems such as Radio Frequency (RF) or Light Wave (LW) links.

Additional white papers which describe this technology are available. Click here for more information, or for sales and licensing of this technology.


2. The Forward Error Correction Framework

The Constellation Data Systems, Forward Error Correction Framework can be implemented using one of the following environments:

1. Software (Application / Kernel Mode Device Driver / System Level) environment.
2. Firmware (Microprocessor based embedded code) environment.
3. Field Programmable Gate Array (FPGA) digital logic environment.


Initial implementations of the FEC Framework are built around FEC paradigms appropriate to small and medium duty firmware based systems, such as BCH or Reed-Solomon codes.

2.1 High / Low Data Rate, Single Bit Data Corruption

A special case of binary Bose-Chaudhuri-Hocquenghem ("BCH") code, which have the ability to discover and correct single bit errors, with a minimum of overhead in the "v" (see Chapter 3) data path.

2.2 Bursty Noise, Low Data Rate
Reed-Solomon ("RS") code have the reputation to provide excellent forward error correction capability environments characterized by consecutive runs of bit errors.

2.3 High Data Rate, Bursty Noise

Recursive and Block TURBO codes have in recent years demonstrated suitability in this environment, at the expense of additional firmware resources consumed (in terms of memory and consumed CPU execution) on the target system.This white paper addresses the use of the FEC framework, implemented using certain RS and BCH coding methods, in the firmware environment.

Future implementations of the FEC Framework shall be built around a variety of ECC codes, including TURBO. Future implementations are anticipated to span the Software, Firmware and FPGA environments with a common IP core architecture.

3. FEC/ECC in Communications Overview

Forward Error Correction (FEC) is an art where errors in a transmitted data payload may be corrected by a receiver without referring to the transmitter for re-transmission or correction. FEC codes are an example of Error Correcting Codes ("ECC"), wherein it is possible for Transmitted Data ("TX") stream, corrupted by the influence of Additive White Gausian Noise ("AWGN"), to be reconstructed by the receiver such that the transmit stream equals the receive stream ("RX"). Consider the following Data Flow Diagram:


Figure 1 - FEC / ECC Data Flow Diagram

In this diagram, the stream from the Data Domain is rendered from TX data into RX data, through interfaces to the FEC / ECC Domain. Those interfaces are described at the firmware level as the FEC Firmware Programming Interface (FECFPI). The FECFPI is described in overview in Appendix C.

When FEC technology is properly applied and the effects of AWGN in RF / LW Domain are within range, then the TX data will equal the RX data. Detailed domain descriptions may be seen in Appendix B.

4. FEC Firmware Demonstration Platform

The FEC Firmware Demonstration Platform (FFDP) consists of a CPU board built hypothetically around the eZ80 Family Platform and a mounted eZ80 F92 CPU module (Zilog PC: 99C0858-001 and 99C0857-001). This implementation processes asynchronous serial data at its outside most points (P2/P3 and COM1/COM2), the data content is separated from the framing (by the De-Frame and Reframe methods, as well as by the RF-LW Link Simulation). Bit Synchronous implementations are also possible in other configurations. In other words, the demonstration is applied to the data content and is opaque to the data framing.

Figure 2 - FEC / ECC Firmware Demonstration


The FEC / ECC Firmware is developed using the interfaces of the FECFPI (see Appendix C), thus allowing for rapid integration with the customer's environments. The net effect is that that the FFDP demonstration provides the confidence that the FEC Framework enables the gains in productivity, lowers development cost, and decreases time on the schedule. The FFDP demonstration also validates the corresponding reduction in risk.

Other implementations may be ordered built around other CPU architectures such as those sold by Cypress, Texas Instruments, Zilog, Intel, Motorola, etc.

5. Conclusion

The FEC Framework provides the firmware developer contemplating an FEC implantation with a reduced risk, reduced development time, and reduced cost option. The FEC Firmware Demonstration Platform (FFDP) allows both management and engineering to proceed with confidence. The selectable option of IP deliverables (see Appendix A) provides the customer with a growth path to ever more capable and cost effective implementations.

Appendix A Scenarios of Deliverables

Prospective customers may choose from a variety of deliverables. IP components are licensed on a non-exclusive basis.

FFDP Test Procedure Document - This document describes the test procedures which form the basis for validation techniques of the FEC Firmware Demonstration Platform (FFDP) function.

FFDP Test Report - This document describes the results of testing performed using the FFDP Test Procedure.

FEC FPI Programmers Guide and Reference - This document describes the firmware interfaces of the FEC Firmware Programming Interface (FPI).

FEC Implementation Theory of Operation - This document describes source code level description of Reed-Solomon ECC or BCH coding theory as applied to the firmware of the FEC Framework.

FECF Module Descriptions and Build Procedures - This document describes procedures used by developers and engineers to convert to FECF source code into its run or link time modules.

FECF Implementation Analysis - This document implementation specific document describes the performance of the FECF within customer's specific RF/LW and AWGN environment.

FFDP Site Setup and Demonstration - This deliverable consists of setup and demonstration of the FEC Firmware Demonstration Platform at a site selectable by the customer.

FECF Firmware Modules - These IP deliverables would consist of either source and/or object code modules.

Appendix B - Domain Descriptions

Data Domain

The Data Domain illustrated in Figure 1 assumes a somewhat industry standard byte wise (8 bit) data presentation. The De-Frame method converts these bytes of "TX" data into a bit stream named "u". The De-Frame method may, in certain implementations, also involve stripping certain framing information from the data stream, such as start and stop bits in asynchronous serial framing, or re-ordering of bits such that the Least Significant Bits (LSB) of "TX" is presented to "u" before the next Most Significant Bits (MSB) of "TX". In synchronous environments ( HDLC / SDLC, for example) , the "De-Frame"/"Reframe" methods may either inject the "bit stuffing" overhead, or remove the overhead as dictated by the implementation.
Analogously, the Reframe method coverts "~u" into the proper LSB / MSB format, and when applicable also restores other serial framing information.

FEC / ECC Domain

The FEC / ECC domain consists of an Encoder and a Decoder method. The Encoder method converts the "u" bit stream into an expanded "v" bit stream. The expansion is necessary to carry the burden of the Error Correct Code. The Decoder method converts the "r" data stream (as received from the RF Domain) into the "~u" data stream. When the affects of AWGN are within tolerance, the "u" data stream should equal the "~u" data stream.

RF/LW Domain

The RF/LW Domain consists of the TX Modulation method, the Radio Frequency or Light Wave Link itself, as well as the RX De-Modulation method. These methods move (transmit) the "v" data stream, and in the process render the "r" data stream. The "r" stream is the "v" stream affected by AWGN, as well as errors introduced by the RX De-Modulation method.

In some implementations the RF/LW Domain is totally opaque to the FEC / ECC Domain. In other implementation, such as some QAM-64/32/16 implementations, there can be a performance improvement resulting from adroit interpretation of "v" and "r" in context of face of the attributes of the connected FEC / ECC Domain.

Appendix C - FEC Firmware Programming Interface

FecRsEncode ( ) Function
FecRsDecode ( ) Function
FecBchEncode ( ) Function
FecBchDecode ( ) Function
FecRsSetFieldGeneratorPolynomial ( ) Function
FecBchSetFieldGeneratorPolynomial ( ) Function
FecSetMode ( ) Function
FecGetMode ( ) Function
FecSetStatusBlock ( ) Function
FecSetStatusBlock ( ) Function
FecSetDecodeExecption ( ) Function
FecSetSymbolsAndFrames ( ) Function

Appendix D - Index of Acronyms / Abbreviations

k........................Number of input symbols per frame
n........................Number of output symbols per frame
t........................Time
r........................De-Modulated Receive Data stream
u........................Transmit Data Stream
v........................Output of the FEC / ECC Encoder
x........................Modulated v data.
y........................Data Received from the RF Link

AWGN.....................Additive White Gausian Noise
BPS......................Bits per Second ("baud")
CDS......................Constellation Data Systems, Inc.
CPU......................Central Processing Unit
DFD......................Data Flow Diagram
ECC......................Error Correcting Code
FFDP.....................FEC Firmware Demonstration Platform
FPI......................Firmware Programming Interface
HDLC.....................High-level Data Link Control
IP.......................Intellectual Property
LSB......................Least Significant Bit or Byte
LW.......................Light Wave
MSB......................Most Significant Bit or Byte
QAM......................Quadrature Amplitude Modulation
RAM......................Random Access Memory
RF.......................Radio Frequency
RS.......................Reed-Solomon
RX.......................Receive
SDLC.....................Synchronous Data Link Control
TBD......................To Be Determined
TLA......................Three Letter Acronym
TX.......................Transmit