Product Specification AHA4011C 10 MBytes/sec Reed-Solomon Error Correction Device Advanced Hardware Architectures, Inc. 2365 NE Hopkins Court Pullman, WA 99163-5601 509.334.1000 Fax: 509.334.9000 e-mail: [email protected] http://www.aha.com TM Advanced Hardware Architectures The Data Coding Leader PS4011C-0200 Advanced Hardware Architectures, Inc. Table of Contents 1.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Conventions, Notations and Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1.2.1 Definition of Correction Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 2.0 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1 Functional Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Correcting Capability and Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2.3 Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.5 Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5.1 Shortened Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 2.6 Reset and Initialization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 2.6.1 Initialization Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 2.7 Encode, Decode or Pass-Through Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 2.8 Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 2.9 Data Rates and Latencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 2.9.1 Burst Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 2.0.1 Continuous Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 2.1 Reed-Solomon (ECC) Module and Error Rate Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 2.2 Determining Decoder Performance Boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 2.3 Erasures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.0 Operational Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1 Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Data Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 Data Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.0 Signal Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.1 Input Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2 Output Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3 Power & Ground Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.4 AC Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 4.5 DC Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 5.0 Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.0 Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.1 Available Parts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.2 Part Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.3 Related Technical Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Appendix A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Appendix B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 PS4011C-0200 i Advanced Hardware Architectures, Inc. Figures Figure 1: Figure 2: Figure 3: Figure 4: Figure 5: Figure 6: Figure 7: Figure 8: Figure 9: Figure 10: Figure 11: ii Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Typical Applications Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Data Input and Output Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Burst and Continuous Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Symbol (Byte) Error Rate Performance Curves for Codeword Length = 255 Bytes . . . . . . . . . . . . . . . . . 11 CLK Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Initialization and Reset Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Data Input - Buffer Always Ready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Data Input - Buffer Not Ready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Data Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 CRTN Timing - Reverse Order Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 PS4011C-0200 Advanced Hardware Architectures, Inc. Tables Table 1: Table 2: Table 3: Table 4: Initialization Register Settings for Encode, Decode and Pass-Through Operations . . . . . . . . . . . . . . . . . .7 Burst Operation Using 40 MHz Clock and 1 Clock/Byte, Forward Order Output . . . . . . . . . . . . . . . . . . . . .9 Continuous Operation Using 40 MHz Clock and Specified Clocks/Byte, Forward Outp u tOrder. . . . . . . . 10 Continuous Operation for IESS-308 Codes Using 40 MHz Clock and Specified Clocks/Byte, Forward Output Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 PS4011C-0200 iii Advanced Hardware Architectures, Inc. 1.0 INTRODUCTION The AHA4011C is a single chip integrated circuit that implements a high speed Reed-Solomon Forward Error Correction algorithm. The AHA4011C is a member of the AHA PerFEC family of high speed forward error correction (FEC) devices conforming to the Intelsat IESS-308 specification. The device supports several programmable parameters, including, block size, error threshold, number of check bytes, order of output and mode of operations. Shortened blocks are supported without requirement of zero padding typically required in Reed Solomon decoders. The data input port is used to initialize the programmable parameters and the two on-chip buffers are used to input and output data. Discontinuities in data flow may be controlled by dedicated control pins. High operating frequency, input and output data rate flexibility, low processing latency and various programmable parameters make this device ideal for many applications including: DTV, DBS, ADSL, Satellite Communications, ISDN, High Performance Modems and networks. This specification provides full electrical and mechanical information to help a system engineer develop a system using AHA4011C. This document contains descriptions on correction terms, pinout, functions and features, DC and AC characteristics, package and mechanical specifications, ordering information and Related Technical Publications. Software simulation of the RS code as implemented in the device is also available. Please contact AHA or its authorized sales representatives worldwide for copies of Related Technical Publications and software simulation. 1.1 FEATURES HIGH PERFORMANCE • Polynomial complies to Intelsat IESS-308; RTCA DO-217 Appendix F, Revision D and proposed ITU-TS SG-18 (Formerly CCITT SG18) standards • 40 MBytes/sec burst transfer rate with a 40 MHz clock for all block lengths • Maximum channel rate of 10 MBytes/sec continuous for block lengths from 54 bytes through 255 bytes using a 40 MHz clock • Processing latency time less than 15.2 µsec in continuous operation for block lengths of 100 bytes PS4011C-0200 FLEXIBILITY • Programmable to correct from 1 to 10 error bytes or 20 erasure bytes per block • Block lengths programmable from 3 to 255 bytes • Encode, decode or pass-through capability inline with data flow • Outputs corrected data or correction vectors in forward or reverse order • Continuous or burst data transfer • Programmable error threshold to help determine channel performance SYSTEM INTERFACE • Byte wide synchronous I/O ports with internal buffering on both ports • Dedicated control pins permit discontinuities in system data flow OTHERS • 44 pin PLCC; 50 mil lead pitch • Pin and plug compatible with lower performance AHA4012B • Software emulation of the algorithm available 1.2 CONVENTIONS, NOTATIONS AND DEFINITIONS – Certain signals are logically true at a voltage defined as “low” in the data sheet. All such signals have an “N” appended to the end of the signal name. For example, RSTN and DSON. – “Signal assertion” means the output signal is logically true. – Hex values are defined with a prefix of “0x”, such as “0x10”. – A range of signal names is denoted by a set of colons between the numbers. Most significant bit is always shown first, followed by least significant bit. For example, DI[7:0] represents Data Input Bus 7 through 0. – A product of two variables is expressed with an “×”, for example, N × Ci represents Codeword Length multiplied by Input clocks/byte. – Mega Bytes per second is referred to as MBytes/sec or MB/sec. – Channel Rate is defined as transfer rate including user data and error correction check bytes. Page 1 of 24 Advanced Hardware Architectures, Inc. 1.2.1 DEFINITION OF CORRECTION TERMS NAME (other references) TERM K Message Length (user data or message bytes) R Check Symbols (parity or redundancy) N Codeword Length (block length) t Error Corrections P Error Threshold e Number of Errors E Number of Erasures G Burden of Correction DEFINITION Number of user data symbols in one message block. Size of a symbol in AHA4011C is 8-bits. Message length is K = N − R. The first message byte is referred to as XK−1; the last message byte is X0 . Symbols appended to the user data to detect and correct errors. The number of check symbols required in a system is R ≥ E + 2e.* The first check symbol is referred to as YR−1; the last check symbol is Y0. RANGE (number of bytes) 1 through 253 (1, 2, 3, 4 . . . 253) 2 through 20 in increments of 1 (2, 3, 4 . . . 20) 3 through 255 (3, 4, 5, 6 . . . 255) Maximum number of error corrections performed 1 through 10 – K- . ------------by the device. The value is t = Integer N (1, 2, 3 . . . 10) 2 The threshold limit to determine uncorrectability of a Codeword and the number of check bytes 2 through 20 allocated for correction-only purposes (not for (2, 3, 4 . . . 20) detection). An error is defined as an erroneous byte whose correct value and position within the message 0 through N block are both unknown. An erasure is defined as an error whose position is 0 through N known within the message block.** A measure of the burden of correction being placed on the capabilities of the device for that 0 through R message block. The value G = 2e + E. Sum of message and check symbols. N = K + R. * For every 2 check bytes, the AHA4011C can correct either 2 erasures or 1 error. ** An erasure is detected by a parity detector or a signal dropout detector. The presence of an erasure is indicated by asserting the ERASE signal when the erased byte is clocked into the AHA4011C. 2.0 FUNCTIONAL DESCRIPTION This section describes an architectural overview of the chip and its many functions, features and operations. The block diagram for the chip shows the Reed-Solomon ECC module, the Input and Output Buffers, and their associated control. All input and output data are clocked on the rising edge of CLK. 2.1 FUNCTIONAL OVERVIEW The AHA4011C Reed-Solomon codec (coder/decoder) is a member of the AHA PerFEC™ family of high speed forward error correction (FEC) devices. This single chip, three-layer metal, CMOS device can operate in encode, decode or passthrough modes. The ECC core implements a full error correcting Reed-Solomon decoder. This code is Page 2 of 24 capable of correcting up to 10 (t=10) byte-errors or 20 (t=10) erasures in a RS block. The ECC core has three phases of operation: Data In, Calculation and Data Out. Data to be processed is first input into a single ported Input Buffer using a control signal DSIN. ECC core arbitrates for the input data out of the Input Buffer. ECC core has access to the Input Buffer on clock edges where DSIN is not asserted. Each block is processed within the ECC core and calculations are made. The entire block is processed through the ECC core, and transferred into the Output Buffer. The device asserts RDYON signal and holds active until the Output Buffer is completely emptied. The ECC core loads the Output Buffer in reverse order for either operation. Data may be strobed out of the device in forward or reverse order. If forward order is desired, output data cannot be strobed out of the device until the entire block has been loaded into the Output Buffer. PS4011C-0200 Advanced Hardware Architectures, Inc. The use of internal buffers is restricted per the rules defined in Section 2.9 Data Rates and Latencies. Maximum delay required for each block of a given length to pass through the device is fixed, and does not vary with the location or the number of errors received. This delay (or latency), expressed in the number of clocks is discussed in a later section. 2.2 CORRECTING CAPABILITY AND POLYNOMIALS Compared with other codes, RS codes require relatively few “overhead” check bytes to be added to the data stream to achieve a high degree of error detection and correction. Since the AHA4011C deals with bytes (or symbols) rather than with individual bits, when a byte is in error it does not matter how many bits within the byte are corrupted; it is counted as one error. The Reed-Solomon code is defined over the finite field GF(28). The field defining primitive polynomial is: already known for “erasures”. The correction ability of the code is bounded as: R ≥ # erasures + 2(# errors) Valid block length (N) is defined by the relationship: R + 1 ≤ N ≤ 255 where R ranges from 2 to 20. A complete codeword can therefore range from a minimum of 3 bytes to a maximum of 255 bytes. For further discussion on error rate performance, refer to Section 2.1 Reed-Solomon (ECC) Module and Error Rate Performance. Figure 1: Block Diagram RDYIN ERASE DI[7:0] CLK RDYIN DI CLK REGISTER INPUT BUFFER 367x9 P(x) = x8 + x7 + x2 + x + 1 and the generator polynomial, dependent on the variable R, is given by: 119 + R G(x) = ∏ ( x – αi ) i = 120 where R ∈ {2, 3, 4, 5,. . . 20} for the AHA4011C. This polynomial is specified in international standards, Intelsat IESS 308; RTCA DO-217 Appendix F (Rev D) and the proposed CCITT SG-18. For every 2 check bytes, the decoder corrects either 2 erasures or 1 error. An erasure can be determined with a parity detector or a signal dropout detector external to the chip. An erasure is indicated by the ERASE signal when the erased byte is clocked in the device. Correcting “erasures” takes only half as much of the correction capability of the RS code as it takes to correct “errors”, since the position information is Figure 2: RSTN RSTN DSIN DSIN DSON DSON CONTROL GND GND VDD VDD ECC CORE OUTPUT BUFFER 256x9 REGISTER RDYON CRTN DO RDYON CRTN DO[7:0] ERR A typical system block diagram is shown in the following figure. Typical Applications Diagram ENCODER 8 DATA SOURCE A COMMUNICATIONS AHA4011C ECC COPROCESSOR 8 B CHANNEL 1 TO x BITS WIDE DECODER 8 AHA4011C ECC COPROCESSOR 8 DATA SINK C BLOCK FORMAT AT: SYSTEM CONTROLLER PS4011C-0200 A KDATA PLUS R “DUMMY” BYTES B KDATA PLUS R CHECK BYTES C KDATA BYTES SYSTEM CONTROLLER Page 3 of 24 Advanced Hardware Architectures, Inc. SIGNAL DESCRIPTIONS Output Pins RDYIN Ready Input. Indicates the chip's ability to accept data input on DI. If active, DSIN is allowed to enable the loading of input data on DI. When inactive, DSIN is ignored. Signal is active low. Page 4 of 24 2.4 PINOUT DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7 DISN CLK GND INPUT 6 5 4 3 2 1 44 43 42 41 40 DI[7:0] Data Input Bus. The input byte and ERASE are latched on the rising edge of the clock when both DSIN and RDYIN are active. If either DSIN or RDYIN are inactive, the DI and ERASE are ignored. DSIN Data Input Strobe. Enables data from DI to be loaded into the chip. When RDYIN is active, DSIN being active on the rising edge of the clock loads the input data in the device. DSIN must be active for one clock edge only per each input byte. DSIN is ignored if RDYIN is inactive. Signal is active low. DSON Data Output Strobe. This input strobe acknowledges to the chip that data available on the Output Bus, DO, has been received by the system. The device uses this strobe to increment its internal address counter to the next data location. DSON must be active for one clock edge only per each output byte. DSON is ignored if RDYON is inactive. Active low. ERASE Erasure input flag for symbol currently on DI. Signal is active high. ERASE signal is used for marking all check Bytes as erasures (dummy check Bytes) during encode operation. It is also used to mark input symbols that contain errors during decoding. If not used, connect this signal to ground. RSTN Reset. Input pin. When RSTN is active and DSIN and DSON are inactive, the device forces all internal control circuitry into a known state and initializes all data path elements. RSTN is active during Initialization Phase. In this phase, internal registers are programmed by using DI and DSIN. Signal is active low. CLK Clock. System clock input. Refer to Section 4.4 AC Electrical Characteristics for clock requirements. DO[7:0] Data Output. The output byte is available on this bus. The value of the output byte is undefined if RDYON is inactive. Requires an acknowledge strobe, DSON, at a rising edge of the clock to increment internal address counter and output the next location in the buffer. DO bus is always driven and is not tristated by the device. RDYONReady Output. This output pin indicates the chip’s ability to generate output data. If active, DSON is allowed to increment the internal address counter for the next data byte. When inactive DSON is ignored and DO is undefined. Signal is active low. CRTN Correctable. The output pin when active indicates the block did not exceed the error threshold programmed by P. Error threshold must be programmed with the same value as the number of check symbols R if erasures are not used. This signal is valid when the first message byte, XK−1, of the block is available out of the chip. During all other times the signal is undefined. Signal is valid for at least one clock. Active low. ERR Error. Output pin indicates the current value on DO[7:0] is a corrected byte. Active high. VDD GND VDD GND GND VDD *NC *NC VDD GND GND 7 8 9 10 11 12 13 14 15 16 17 TM AHA4011C-040 PJC 39 38 37 36 35 34 33 32 31 30 29 VDD VDD GND VDD RSTN ERASE DSON RDYIN RDYON GND GND 18 19 20 21 22 23 24 25 26 27 28 Input Pins DO0 DO1 DO2 DO3 DO4 DO5 DO6 VDD DO7 ERR CRTN 2.3 OUTPUT *NC = No connect, reserved for future considerations. PS4011C-0200 Advanced Hardware Architectures, Inc. 2.5 DATA FLOW The device is first initialized for various programmable parameters including: Erasure Multiplier, Error Threshold, Number of Check bytes, Number of Message bytes per block, Block Length and a Control byte. Following this six-byte initialization, the device may be used to encode, decode or pass-through multiple blocks of data. The device requires reinitialization when the parameters are changed or a reset is required. The device processes data as “blocks” containing Message and Check Bytes. Order of input bytes must be first message byte XK−1 through last message byte X0, followed by first check byte YR−1 through last check byte Y0. The device processes the block in this manner: - a block is clocked into the Input Buffer; - transferred into the ECC module; - passed to the Output Buffer in the reverse order from what was received at the Input Port; and Figure 3: - clocked out through the Output Port via the Output Buffer. Consecutive blocks may be input into the Input Buffer while the Output Buffer is being emptied. Data is available through the Output Port in forward or reverse order. Forward order clocks out the block the same as input and reverse order clocks the check byte Y0 through check bytes YR−1 followed by message byte X0 through message byte XK−1. 2.5.1 SHORTENED BLOCKS This device allows for shortened RS blocks, thus not requiring zero padding when decoding. During encoding, conversely, zero padding is not performed. When the device is programmed to decode a block of less than 255 Bytes, only the message Bytes followed by check Bytes are sent. Prepending with zero value Bytes to fill out the block to 255 Bytes is not required. Data Input and Output Order Y0 Y1 . . . YR-2 YR-1 X 0 X 1 . . . X K-2 X K-1 Last Byte In INPUT BUFFER First Byte In ECC Core OUTPUT BUFFER Data Available Reverse Order X K-1 .. . X0 YR-1 .. . Y0 2.6 RESET AND INITIALIZATION SEQUENCE Reset and initialization first requires pulling the RSTN low signal for at least two clocks while the DSIN and DSON signals are held inactive, i.e., high. Following this sequence, the six internal registers, referred to as “Initialization Registers” are strobed by DSIN. These bytes are loaded in order of 1 through 6. The RSTN must be active low for at least two clocks before the first initialization byte is strobed in and remain active for at least one clock after the final byte. RSTN must be high for at least two clocks before the first message byte can be strobed into the device. For a detailed timing diagram, see Figure 7: Initialization and Reset Timing. PS4011C-0200 Data Available Forward Order Last Byte Out First Byte Out Y0 .. . YR-1 X0 .. . X K-1 The chip must be reset and initialized any time a reset is necessary. Caveat: All six registers must be initialized correctly for proper operation of the chip. The device has no provisions for reading back Initialization Register settings. This sequence must be used if the device needs to be reset or any one register needs updating, i.e., all registers must be reinitialized for a change to any one register. Page 5 of 24 Advanced Hardware Architectures, Inc. 2.6.1 INITIALIZATION REGISTERS BYTE 1, ERASURE MULTIPLIER: [7:0] Multiplier value that must be programmed as shown in Appendix A. The table shows a value to be programmed corresponding to the block length selected. BYTE 2, ERROR THRESHOLD: [4:0] The threshold for determining uncorrectability of a data block, and the number of check bytes allocated for correction only purposes. When not using erasures, set to the same value as BYTE 3, CHECK BYTES. Minimum value of 0x02 sets the Threshold to 2 and 0x14 sets to the maximum, 20. [6:5] Reserved. Set to 0. [7] Not used. Don't care. [3] FOR 0 [4] [5] BYTE 3, CHECK BYTES: [4:0] Number of check bytes in RS code, R. Minimum setting of 0x02 indicates two check bytes for R = 2 and 0x14 indicates the maximum of 20. [6:5] Reserved. Set to 0. [7] Not used. Don't care. BYTE 4, MESSAGE BYTES: [7:0] Number of message bytes in code, K. Minimum setting of 0x01 indicates 1 byte, setting to 0xFD indicates the maximum 253 message bytes. BYTE 5, BLOCK LENGTH: [7:0] Number of bytes in block, N. Setting to 0x03 indicates 3 bytes, setting to 0xFF indicates 255 bytes. BYTE 6, CONTROL BYTE: [0] RES Reserved. Set to 0. [1] NOPAR Parity Symbol Control 0 Check bytes are output following the message bytes. 1 Check bytes are not output following the message bytes. Correction will be done regardless depending upon the bit 4, RAW, setting. [2] CRCTS Correction Control 0 Outputs correction vectors; to obtain corrected data, externally XOR the correction vector with the corresponding message or check byte. 1 Outputs corrected data Page 6 of 24 [7:6] Forward Order Control Outputs the block in reverse order 1 Outputs the block in forward order RAW Raw Data 0 Outputs corrections or corrected data per the CRCTS bit 1 Outputs uncorrected, raw input data or 0's depending upon the CRCTS bit setting (See table below). NOPAR bit and CHECK BYTE register settings are ignored. ERC Erasure Rejection Control. This bit is only used by the device when the Erasures exceed the ERROR THRESHOLD or R settings. This bit is ignored when the Erasures are less than or equal to ERROR THRESHOLD or R. 0 If Erasures are greater than the ERROR THRESHOLD or R then erasures are discarded and full correction is performed. The block is flagged uncorrectable and the output CRTN will be high during the last output byte of the block. 1 If Erasures are greater than ERROR THRESHOLD or R then erasures are discarded and full correction is performed. The output CRTN will be high only when the block is uncorrectable. Reserved, Set to 0. RAW CRCTS Output 0 0 Correction vectors 0 1 Corrected data 1 0 Zero 1 1 Uncorrected raw input data PS4011C-0200 Advanced Hardware Architectures, Inc. 2.7 ENCODE, DECODE OR PASS-THROUGH OPERATIONS The device performs three functions: encoding, decoding and pass-through. As an encoder the device outputs the message block followed by “corrected” check bytes. As a decoder, the device outputs the corrected message bytes or correction vectors with or without check bytes following the message. In pass-through operation, the device Table 1: passes the input data as it is received. In all three operations, the input block flows through the Input Buffer into the ECC module and out of the Output Buffer. Latencies for all three operations are the same. The device is initialized for the three operations as shown in the table below. Initialization Register Settings for Encode, Decode and Pass-Through Operations INITIALIZATION REGISTER BIT(S) ERASURE MULTIPLIER ERROR THRESHOLD CHECK BYTES [7:0] [7:0] [7:0] MESSAGE BYTES BLOCK LENGTH CONTROL BYTE ENCODE Appendix A value Set to R Set to R Set to the Number [7:0] of Message Bytes in block, K Set to the total of [7:0] Message and Check bytes, N 0 (RESV) 0 1 (NOPAR) 0 2 (CRCTS) 1 3 (FOR) System specific 4 (RAW) 0 5 (ERC) 0 [7:6] Reserved 0 As an encoder, the device is used with the Erasures feature enabled in the following sequence. (Asserting the ERASE signal high enables the Erasure feature.) 1) After initialization, the device receives the message data followed by “dummy” check bytes. “Dummy” check bytes are clocked into the device with the ERASE signal asserted. The number of “dummy” check bytes must equal R. 2) The ECC core processes the block by “correcting” the check bytes and feeding the codeword into the Output Buffer in reverse order. 3) The block is then made available on the output bus, DO. The state of the output RDYON determines the availability of data. ERR signal is asserted while the “corrected check bytes” are output on the output bus, DO. CRTN is asserted low during the last byte out of the chip indicating that the previous block did not exceed the error threshold. PS4011C-0200 DECODE PASS-THROUGH Appendix A value Appendix A value R or less R R R K K N N 0 System specific System specific System specific 0 0 0 0 0 1 System specific 1 0 0 As a decoder, the device works similar to the encode operation in the following sequence. 1) Following initialization, the system clocks the message data and the check bytes into the Input Buffer. ERASE signal may be asserted as desired by the system. State of the output signal, RDYIN determines the chip’s ability to accept data input on the DI bus. 2) The ECC Core processes the block by performing necessary corrections, and feeds the codeword into the Output Buffer in reverse order. 3) The data is available on the output port. The state of the output signal, RDYON determines the availability of valid data. An output byte which has been corrected is indicated by the device asserting ERR. CRTN may be high or low depending upon the THRESHOLD Register and ERC bit programmed and the errors encountered. Page 7 of 24 Advanced Hardware Architectures, Inc. In pass-through operation, data flows through the device similar to the encode and decode operations. During initialization the device is programmed as shown above. Check Bytes are programmed in the range of 0x02 to 0x14.5. The Block length here is the sum of Message Bytes and Check Bytes like encode and decode modes of operation even though the device passes through the block of data unchanged. 1) Following initialization, the system clocks the codeword into the Input Buffer. 2) The codeword is processed by the ECC module and passed on to the Output Buffer without correction. 3) The uncorrected codeword is available at the output port. State of the RDYON determines the availability of valid data. The ERASE input is ignored during the Input phase and ERR and CRTN outputs are not valid. Burst operation permits data to be clocked in and out of the device at the maximum rate, i.e., 1 clock per byte. In burst operation, consecutive data blocks are clocked into the device following a processing latency period. Data is input into the Input Buffer and processed through the ECC core. After a processing latency period the entire block of data is transferred to the Output Buffer. While the Output Buffer is being emptied, the Input Buffer is simultaneously filled with the following block at the maximum rate. Input and output rates are controlled by the clock speed and clocks/byte. Continuous operation requires a minimum of 4 clocks/byte depending upon the block size. Maximum data transfer rates for continuous rate vary accordingly. Blocks may be processed continuously through the device. If the chip is operated with continuous data streams, the RDYIN and RDYON pins will always be active (after the initial latency). Therefore, they need not be used. Caveat: The device has no provisions for indicating the start and/or end of message or check bytes. It is the system designers responsibility to keep track of message and check bytes transitions, if required. Caveat: System designer should be aware that data is put into the Output Buffer in reverse order. Therefore, RDYON may become inactive between blocks in forward order if data is output faster than Output Buffer is filled. 2.8 BUFFERS The Input Port contains a single-ported 367x9 buffer. The Output Port contains a single-ported 256x9 buffer. These buffers store input and output data during the correction process and help maintain the desired system data rate. A Reset operation as described in the Initialization Sequence section clears the buffers. The use of internal buffers is restricted per the rules defined in Section 2.9 Data Rates and Latencies. These rules define the limitations of using the buffers to temporarily store more than one block. It is highly recommended that the system designer clearly understand these rules prior to designing the system. The Input Buffer receives input data on the DI bus when the ECC module is in the calculation or in data-out phases at the desired system rate. The ability of the Input Buffer to accept data is indicated by RDYIN. The Output Buffer accepts corrected data from the ECC during the data-out phase. RDYON is asserted low when the Output Buffer is able to output data. Data flow through the device may occur in burst or continuous rates. The number of clocks per byte used to input or output determines burst or continuous operating conditions. Figure 4 shows the two operations. Page 8 of 24 2.9 DATA RATES AND LATENCIES This section describes data rates and processing latencies for burst and continuous operations. Processing latencies are the same in encode, decode or pass-through operations. The number of clocks used to clock in and out of the device determines the operation. The input and output rates need not be the same. No registers are required to program the device for either operation. Continuous block flow is achieved by using the appropriate number of clocks per byte and block length. Alternatively, data flow into and out of the device is controlled using control signals, DSIN and DSON. PS4011C-0200 Advanced Hardware Architectures, Inc. 2.9.1 BURST OPERATION Maximum processing latency, in forward order, expressed in number of clocks, for burst operation is determined by: N × Ci + R + 60 + N Definitions: Ci = input clock rate per byte. If Ci = 1, use a value for Ci of 2 in the latency equation N = block length R = number of check bytes Processing Latency = Delay from first input byte to first output byte In reverse order, processing latency is approximately N clocks less than above. For a 40 MHz system using 1 clock per byte, latencies and data rates for forward order output are shown in the table for burst operation. Input and Table 2: Output Burst Rates in all cases will be 40 MBytes/sec. Note: Other frequency operations may be derived similarly. Output Buffer may be used to hold data from one block while the Input Buffer is being filled with the following block. Two rules listed in the caveats are required to accomplish this. These are illustrated in Figure 4. Caveats: 1. Output of block i must start coincident with or before the input of block i + 1. 2. Output of block i must be complete: Processing Latency − N − 8 clocks after the start of block i + l on the input. Burst Operation Using 40 MHz Clock and 1 Clock/Byte, Forward Order Output CHECK BYTES ‘R’ = 20 CHECK BYTES ‘R’ = 2 MAXIMUM MAXIMUM AVERAGE MAXIMUM MAXIMUM AVERAGE BLOCK RATE LATENCY LATENCY RATE LATENCY LATENCY LENGTHS ‘N’ (# of clocks) (µsecs) (MBytes/sec) (# of clocks) (µsecs) (MBytes/sec) 25 50 100 150 200 255 155 230 380 530 680 845 3.88 5.75 9.50 13.30 17.00 21.10 6.45 8.70 10.50 11.30 11.80 12.10 137 212 362 512 662 827 3.43 5.30 9.05 12.80 16.60 20.70 7.30 9.43 11.00 11.70 12.10 12.30 N Average Rate = --------------------------------------------------------------Maximum Latency ( µsec ) 2.0.1 CONTINUOUS OPERATION Multiple blocks of data may be processed through the device continuously as shown in Figure 4. Consecutive blocks are input into the device at the rate of Ci clocks/byte. The output data stream may or may not be continuous depending on whether parity is being output (controlled by NOPAR) and the choice of Co. Continuous operation is described by several equations. The following terms are used in these equations: Ci - Input clock rate per byte: Ci ≥ 4 for continuous operation Co - Output clock rate per byte: Co ≥ 2 Cm - Minimum of Ci and Co: If Ci < Co then Cm = Ci else Cm = Co N - Reed-Solomon block length K - Reed-Solomon message length R - Reed-Solomon parity length (R = N − K) L - Output data length: If parity is being output from the chip (NOPAR = 0), L = N; else if the parity is not being output (NOPAR = 1) L=K PS4011C-0200 A. Conditions for Continuous Operation The allowable input and output data rates are related to the Reed-Solomon block length by the following two inequalities. Ci, Co, N and K must be chosen so that these equations are satisfied. Equation 1: N × Cm R + 60 + ----------------Cm – 1 --------------------------------------- + N ≤ 367 Ci Equation 2: N × Ci N × C m ( N – 1 ) × C i ≥ R + 48 + --------------- + ----------------Ci – 1 Cm – 1 B. Processing Latency Processing latency is the time from the beginning of a block on the input to the block being ready for output. Maximum processing latency, expressed in number of clocks, for continuous operation is: Equation 3: N × Cm Latency = ( N – 1 ) × C i + 60 + R + ----------------Cm – 1 Page 9 of 24 Advanced Hardware Architectures, Inc. C. Start and End of Output Similar to the burst operation, Output Buffer may be used to temporarily “hold” data from one block while the Input Buffer is being filled. However, these conditions must be satisfied: the output of a data block must start after the latency equation (Equation 3) is satisfied, but before the maximum delay is reached. The maximum delay is: Equation 4: Data of one block must be fully emptied L × Co clocks after the start of empty process. All of the conditions on the maximum delay given in Equation 4 must be satisfied. If any are not, the output data stream will begin to inhibit ECC processing. Eventually this will cause the input buffer to over fill and RDYIN to become inactive. N × Ci maximum_delay = 3 × N × Ci – L × Co – --------------Ci – 1 if maximum_delay --------------------------------------------- ≥ 367, then maximum_delay = 367 × C i Ci if maximum_delay --------------------------------------------- > 2 × N, then maximum_delay = 2 × N × C i Ci Figure 4: Burst and Continuous Operations (Note: Blocks are shown from right to left as they are input into and output from the chip in Forward Order. Block i is the first input block, block i + 1 is second input block. X K − 1 is the first input message byte of a block. Yo is the last input check symbol of a block. Notes 1 and 2 in burst operation are described in Section 2.9.1 Burst Operation - Caveats.) Burst Operation Block i+1 Y 0 . . . . . . . . . . X K-1 Input Data: 2 Output Data: Block i Y 0 . . . . . . . . . . X K-1 1 Block i+1 Block i Y 0 . . . . . . . . . . X K-1 Y 0 . . . . . . . . . . . . . . . . . . X K-1 Processing Latency Continuous Operation Block i+3 Input Data: Output Data: Block i+2 Block i+1 Block i Y0 . . . . . . . . . . X K-1 Y0 . . . . . . . . . . X K-1 Y 0 . . . . . . . . . . X K-1 Y0 . . . . . . . . . . X K-1 Block i+3 Block i+2 Block i+1 Block i Y 0 . . . . . . . . . . X K-1 Y0 . . . . . . . . . . X K-1 Y 0 . . . . . . . . . . X K-1 Y0 . . . . . . . . . . X K-1 For a 40 MHz system using the required clocks per byte, maximum latencies and data rates for forward order output are shown in the table for continuous operation. Input and Output rates are assumed the same in this table. Note: Other frequency operations are also possible. Table 3: Continuous Operation Using 40 MHz Clock and Specified Clocks/Byte, Forward Output Order CHECK BYTES ‘R’ = 20 CHECK BYTES ‘R’ = 2 MINIMUM MAXIMUM MAXIMUM MINIMUM MAXIMUM MAXIMUM BLOCK REQUIRED DATA RATE LATENCY REQUIRED DATA RATE LATENCY LENGTHS ‘N’ (clocks/byte) (MBytes/sec) (µsecs) (clocks/byte) (MBytes/sec) (µsecs) 25 6 6.67 6.35 5 8 5.33 50 5 8 9.69 5 8 9.24 100 4 10 15.23 4 10 14.78 150 4 10 21.90 4 10 21.45 200 4 10 28.57 4 10 28.12 225 4 10 31.90 4 10 31.45 255 4 10 35.90 4 10 35.45 For Intelsat IESS-308, Rev F, Inner FEC Rates, use Table 4 for a system with 40 MHz clock. Note: Other frequency operations are also possible. Page 10 of 24 PS4011C-0200 Advanced Hardware Architectures, Inc. Table 4: Continuous Operation for IESS-308 Codes Using 40 MHz Clock and Specified Clocks/Byte, Forward Output Order MINIMUM BLOCK MESSAGE ERROR REQUIRED LENGTHS ‘N’ LENGTH ‘K’ CAPABILITY ‘t’ (clocks/byte) MAXIMUM DATA RATE MAXIMUM LATENCY MAXIMUM LATENCY (MBytes/sec) (# of clocks) (µsecs) 126 112 7 4 10 742 18.55 194 178 8 4 10 1107 27.67 208 192 8 4 10 1181 29.53 219 201 9 4 10 1242 31.05 225 205 10 4 10 1276 31.90 Appendix B shows a spreadsheet table of block lengths vs. latencies for a 40 MHz clock system. 2.1 REED-SOLOMON (ECC) MODULE AND ERROR RATE PERFORMANCE The module implements a full error correcting Reed-Solomon (RS) decoder whose function is to perform the necessary corrections on the input blocks. The code used by the decoder is capable of generating corrections for up to 10 (t = 10) byteerrors in an RS block over the block length between R + 1 to 255 bytes. The number of message bytes in an RS block, K, is equal to the RS block length minus R (K = N − R). The RS code implemented uses the primitive polynomial The number of check bytes is R and can be programmed during initialization to be 2 through 20 in increments of 1. The ECC Module may be programmed to output corrections or corrected data. If “corrections” is selected, to obtain corrected data, externally XOR the output correction vector with the corresponding message or check byte. For example, if “corrections” is selected for a block of 200 bytes with errors in locations 100, 123, 153, 176 and 199; output block will be 0’s for all locations except for those positions. The bytes output at these positions are referred to as correction vectors and are XOR’d externally with the message bytes to obtain the correct value. If the output of the AHA4011C is programmed to output corrected data, the correction vector is applied internally and the corrected data is output. The Symbol Error Rate Performance of the Reed Solomon code used is shown in Figure 5. P(x) = x8 + x7 + x2 + x + 1 to generate GF(256). The generator polynomial for the code is: 119 + R ∏ G(x) = i (x – α ) i = 120 An RS block consists of message and redundancy bytes. The number of message bytes in the block, K, is programmable during initialization. Figure 5: Symbol (Byte) Error Rate Performance Curves for Codeword Length = 255 Bytes -0 10 -2 10 -4 10 -6 10 P -8 10 t=1 -10 10 -12 10 t=8 t=5 -14 10 t=10 -16 10 PS4011C-0200 t=3 -0 10 -1 10 -2 10 -3 10 -4 10 P -5 10 -6 10 -7 10 -8 10 Page 11 of 24 Advanced Hardware Architectures, Inc. The most common measures of performance for Reed-Solomon code are PUE, PSE, and CBER. PSE is the probability of symbol errors and is the ratio of the number of received symbol errors to the total number of received symbols. In the AHA4011C device the symbol length, m, is equal to 8 bits. PUE is the probability of an uncorrectable error and is the ratio of the number of uncorrectable code blocks to the total number of received code blocks. An uncorrectable error occurs when more than t received symbols are in error. CBER is the Corrected Bit Error Rate. The CBER is the reciprocal of expected number of correct bits between errors. P UE -. If input noise is random, C BER = -------------m×N If PSE = 8 × 10 – 4 with t = 5 , PUE = 10 –7 and 10 – 7 - = 4.9 × 10 –11 . C BER = ----------------- P=R The figure shows probability of symbol error and uncorrectable error for block size (N) of 255. It shows the ability of various levels of Reed-Solomon error correction to restore the integrity of the corrupted data. For example, using 255 byte blocks, if 1 out of 1000 of the received bytes have one or more bit errors, RS correction with t = 5 will restore the data to 1 error in 2 million blocks (510 million bytes). For a detailed discussion on error rate performance of Reed-Solomon code, refer to AHA Application Note, Primer: Reed-Solomon Error Correction Codes (ECC), (ANRS01). 2.3 8 × 255 2.2 DETERMINING DECODER PERFORMANCE BOUNDARIES AHA4011C supports a programmable feature that allows a system designer to determine the channel performance. This programmable feature, referred to as error threshold, P, sets a number of errors to be allowed by the chip prior to flagging the block uncorrectable. Erasure Rejection Control bit of the Control Byte register determines the condition of CRTN output pin. P and R are both independently selectable by the user during the Initialization Control Sequence. The various configurations of P and R are described as follows: P > R This is not a sensible choice since this implies that more check bytes are allocated for (correction-only) purposes than there are total check bytes (for both correction and detection). The device will work as if P was set equal to R. Page 12 of 24 This configuration maximizes the ability to correct errors, particularly if R itself has been chosen to be its maximum value of 20. This is the usual choice. This situation causes the CRTN output to flag a message block as uncorrectable at an error level exceeding that of which the device is capable. P < R This increases the level of error detection capability. This situation causes the CRTN output to flag a message block as uncorrectable at an error level below that of which the device is capable. This mode only works with erasures. Caveat: Output block may be corrupted if a block exceeds the correction ability of the ECC module. ERASURES The chip is capable of utilizing erasure information. R erasures may be corrected in any block assuming there are no unmarked errors. The correction capability is: E + 2e ≤ R Where E = number of erasures (marked errors) e = number of unmarked errors R = number of check symbols If there are more than P or R erasures the erasure information is discarded, and full error correction is attempted. The chip can be programmed to either call such a block uncorrectable or not. If programmed not to call the block uncorrectable (ERC bit set to 1), the ECC will utilize the full error correction capability to decide if the block is correctable. 3.0 OPERATIONAL DESCRIPTION This section describes the relationship of associated signals for various functions of the chip. 3.1 CLOCK The clock input to the chip must meet the timing requirements shown in Figure 6. The chip is entirely static thus allowing the clock to stop in either the active or inactive state for an indefinite period without loss of stored information. PS4011C-0200 Advanced Hardware Architectures, Inc. Figure 6: CLK Characteristics CLK 1 2 3 1 4 5 NUMBER 1 2 3 4 5 DESCRIPTION MINIMUM CLK rise time CLK high time CLK fall time CLK low time CLK period MAXIMUM UNITS 5 nsec nsec nsec nsec nsec 8 5 8 25 All timing diagrams in this specification use the clock at the CLK pin as the reference point. 3.2 INITIALIZATION This section describes the Reset and Initialization Sequence timing. For a detailed discussion on these sequences, refer to Section 2.6 Reset and Initialization Sequence. Figure 7: Initialization and Reset Timing CLK 1 2 1 2 RSTN DSIN DSON 3 DI NUMBER 1 2 3 1 2 4 3 6 at least 2 clock edges Input 6 bytes data for initialization RESET INITIALIZE DESCRIPTION at least 1 clock edge MAXIMUM 10 0 2 3.3 at least 2 clock edges Data MINIMUM RSTN and DSIN setup time RSTN and DSIN hold time RSTN and DSIN assertion Initialization bytes are strobed into the device while RSTN and DSIN are low during rising edges of CLK. The RSTN must be active low for at least two clocks before the first initialization byte is strobed in and remain active for at least one clock after the final byte. Initialization register data may be strobed at a minimum of 1 clock per byte. After power-on the initializing registers’ contents are undefined. For a detailed description of the Initialization Registers, refer to Section 2.6 Reset and Initialization Sequence. PS4011C-0200 5 UNITS nsec nsec Clock edges DATA INPUT The chip latches the input data on the DI pins on the rising edge of the CLK when DSIN and RDYIN are both active. The two figures below show the timing diagrams for buffer Ready and buffer Not Ready conditions. Page 13 of 24 Advanced Hardware Architectures, Inc. Figure 8: Data Input - Buffer Always Ready CLK RSTN DI 1 2 1 2 1 2 valid 1 2 1 2 valid 1 2 1 2 1 2 valid valid valid 1 2 1 2 valid DSIN high = erase ERASE RDYIN If RSTN is low during write, message bytes are treated as being part of the initialization sequence. If RSTN is high, the data is treated as being part of RS block. In the example above ERASE is asserted high in four sample clocks. NUMBER 1 2 DESCRIPTION MINIMUM DI, ERASE and DSIN setup time DI, ERASE and DSIN hold time Figure 9: MAXIMUM UNITS 10 0 nsec nsec Data Input - Buffer Not Ready CLK RSTN 1 2 DI 1 2 1 2 valid 1 2 1 2 1 2 1 2 valid valid valid valid DSIN 3 3 3 3 RDYIN NUMBER 1 2 3 DESCRIPTION DI, ERASE and DSIN setup time DI, ERASE and DSIN hold time RDYIN output delay MINIMUM MAXIMUM UNITS 15 nsec nsec nsec 10 0 Any input data clocked while RDYIN is inactive are ignored. This is shown in Figure 9. Page 14 of 24 PS4011C-0200 Advanced Hardware Architectures, Inc. 3.4 DATA OUTPUT The DO pins are driven from a register clocked on the rising edge of CLK. Valid data on the DO pins is indicated by RDYON being active. When RDYON is inactive, data on the DO pins is undefined, and DSON is ignored. The DSON signal acknowledges receiving the data and is used by the device to internally increment the address counter and output the next location in the buffer. This data output timing is shown in Figure 10. Figure 10: Data Output CLK 3 3 3 valid DO, ERR valid 1 2 1 2 1 2 3 valid 1 2 1 2 valid 1 2 valid 1 2 1 2 DSON 3 3 3 RDYON NUMBER 1 2 3 DESCRIPTION MINIMUM DSON setup time DSON hold time DO and RDYON output delay MAXIMUM UNITS 15 nsec nsec nsec 10 2 CRTN is valid for an RS block when the first message byte, XK−1, is strobed out of the chip. Figure 11 shows Reverse Order output. In this operation, CRTN is valid on the last byte of the block from the Output Buffer. In this example only message bytes are output, no check bytes. Figure 11: CRTN Timing - Reverse Order Output CLK 3 3 3 Block m Byte X K-3 DO 1 2 Block m Byte X K-2 1 2 1 2 3 Block m Byte X K-1 1 2 1 2 Block m+1 Byte X 0 1 2 1 2 DSON 3 error VALID CRTN See Note correctable 3 3 3 RDYON Note: CRTN is active (low) if RS block m is correctable. If the number of errors detected in block m exceeds the error threshold, P, CRTN is inactive (high). NUMBER 1 2 3 PS4011C-0200 DESCRIPTION DSON setup time DSON hold time DO and RDYON output delay MINIMUM MAXIMUM UNITS 15 nsec nsec nsec 10 2 Page 15 of 24 Advanced Hardware Architectures, Inc. 4.0 SIGNAL SPECIFICATIONS 4.1 INPUT SPECIFICATIONS PIN NUMBER SIGNAL NAME SELF LOAD (maximum in pF) TSETUP (min in nsec) THOLD (min in nsec) STROBE 43 44 1 2 3 4 5 6 42 33 35 41 34 DI[7] DI[6] DI[5] DI[4] DI[3] DI[2] DI[1] DI[0] DSIN DSON RSTN CLK ERASE 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 N/A 10 0 0 0 0 0 0 0 0 0 2 0 N/A 0 CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK N/A CLK N/A = Not Applicable (Refer to Section 4.5 DC Electrical Characteristics for pad specifications) 4.2 OUTPUT SPECIFICATIONS PIN NUMBER SIGNAL NAME LOAD CAP (maximum in pF) TDEL (min in nsec) TDEL (max in nsec) STROBE REF 26 24 23 22 21 20 19 18 31 32 28 27 DO[7] DO[6] DO[5] DO[4] DO[3] DO[2] DO[1] DO[0] RDYON RDYIN CRTN ERR 60 60 60 60 60 60 60 60 60 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0 15 15 15 15 15 15 15 15 15 15 15 15 CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK (Refer to Section 4.5 DC Electrical Characteristics for pad specifications) Page 16 of 24 PS4011C-0200 Advanced Hardware Architectures, Inc. 4.3 4.4 POWER & GROUND PINS PIN NUMBER SIGNAL NAME 8, 10, 11, 16, 17, 29, 30, 37, 40 7, 9, 12, 15, 25, 36, 38, 39 GND VDD AC ELECTRICAL CHARACTERISTICS Symbol Fclock Tlow Thigh Trise Tfall Characteristic Clock frequency Clock low time Clock high time Clock rise time Clock fall time Symbol Tsetup Thold Characteristic Input setup time Input hold time CLOCK RATE Min 0 8 8 INPUTS Min Max Units Test Conditions 40 5 5 MHz nsec nsec nsec nsec Vil to Vih Vil to Vih Max Units Test Conditions nsec nsec See Note 1 See Notes 1 and 2 10 0 Notes: 1) Setup and hold times measured from a valid high [2.4V] on the clock input pin. 2) DSON has a 2 nsec hold time. Symbol Tout Note: Characteristic Output delay OUTPUTS Min Max Units Test Conditions 0 15 nsec See Note Output delay measured from valid high [2.4V] on the clock input pad. The output loads for the AC test are given in Section 4.2 Output Specifications. PS4011C-0200 Page 17 of 24 Advanced Hardware Architectures, Inc. 4.5 DC ELECTRICAL CHARACTERISTICS Symbol ABSOLUTE MAXIMUM STRESS RATINGS Characteristic Min Max Units Tstg Storage temperature Vdd Supply voltage Vin Input voltage Package: 44-pin PLCC (JEDEC Standard) Symbol Supply voltage Idd Supply current Idd Ta P Supply current Operating temperature Power Vih Vil Iil Cin Symbol Voh Vol Ioh Iol Page 18 of 24 150 6.0 Vdd+0.5 OPERATING CONDITIONS Characteristic Min Max Vdd Symbol -55 -0.5 Vss-0.5 Characteristic Input high voltage Input low voltage Input leakage Capacitance Characteristic Output high voltage Output low voltage Output high current Output low current 4.75 0 INPUTS Min 2.0 Vss -10 OUTPUTS Min 2.4 Vss -8 deg C V V Units 5.25 V 1.0 mA 135 70 0.71 mA deg C W Max Units Vdd 0.8 10 10 V V µΑ pF Max Units Vdd 0.4 V V mA mA 8 Test Conditions Test Conditions Static; Clock stopped externally Vdd=5V Vdd=5V Test Conditions 40 MHz 0<Vin<Vdd Not 100% tested Test Conditions Ioh=8mA Iol=8mA Voh=2.4V Vol=0.4V PS4011C-0200 Advanced Hardware Architectures, Inc. 5.0 PACKAGING PLCC Dimensions Inches (Millimeters) A .050 (1.27) B C D min/max min/max min/max .685/.695 .650/.656 .165/.180 (17.40/17.65) (16.51/16.66) (4.19/4.57) E F G min .020 (0.51) ± .002 (0.051) ± .0035 (0.089) Packaging Pin 1 Identification AHA4011C-040 PJC TM C B YYWWD-(COUNTRY OF ORIGIN) LLLLL A D E F = Lead Planarity G = Lead Skew Note: YYWWD = Data Code LLLL = Lead Skew Complete Package Drawing Available Upon Request. 6.0 ORDERING INFORMATION 6.1 AVAILABLE PARTS PART NUMBER AHA4011C-040 PJC PS4011C-0200 DESCRIPTION Reed-Solomon ECC Integrated Circuit Page 19 of 24 Advanced Hardware Architectures, Inc. 6.2 PART NUMBERING AHA 4011 C- 040 P J C Manufacturer Device Number Revision Level Speed Designation Package Material Package Type Test Specification Device Number: 4011C Package Material Codes: P Plastic Package Type Codes: J J - Leaded Chip Carrier Test Specifications: C 6.3 Commercial 0°C to +70°C RELATED TECHNICAL PUBLICATIONS PART NUMBER PB4011C PS4012B PS4013 ABRS03 ABRS04 ABRS06 ABRS07 ABSTD1 ANRS01 ANRS02 ANRS03 ANRS05 ANRS12 ANRS13 RSEVAL IESS-308, Appendix F Page 20 of 24 DESCRIPTION AHA Product Brief - AHA4011C 10 MBytes/sec Reed-Solomon Error Correction Device AHA Product Specification - AHA4012B 1.5 MBytes/sec Reed-Solomon Error Correction Device AHA Product Specification - AHA4013 12.5 MBytes/sec Reed-Solomon Error Correction Device AHA Application Brief - AHA4011 and AHA4012 Device Differences AHA Application Brief - Reed-Solomon Evaluation Software Version 3.0 AHA Application Brief - AHA4011 and AHA4013 Device Differences AHA Application Brief - AHA4011B and AHA4011C Device Differences AHA Application Brief - AHA Data Compression and Forward Error Correction Standards AHA Application Note - Primer: Reed-Solomon Error Correction Codes (ECC) AHA Application Note - Interleaving for Burst Error Correction AHA Application Note - Reed-Solomon Evaluation Software Version 3.0 AHA Application Note - Serial I/O Interface to AHA4011/AHA4012 AHA Application Note - Frequently Asked Questions and Answers About the AHA4011/AHA4012 AHA Application Note - Converting from LSI Logic’s L647xx Device to AHA4011/12 Reed-Solomon Evaluation Software Version 3.0 (Windows) Concatenation of Reed-Solomon (RS) Outer Coding with the Existing Inner FEC (Not available from AHA) PS4011C-0200 Advanced Hardware Architectures, Inc. APPENDIX A Table of Elements BLOCK SIZE ‘N’ 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 101 105 109 113 117 121 125 129 133 137 141 145 149 153 157 161 165 169 173 177 181 185 PS4011C-0200 HEX VALUE 1 10 87 dd 6f ec 71 8b 1d 57 62 3c ce d8 3f fe d6 df 4f 65 4c 55 42 b5 f3 6 60 1c 47 e5 e1 a1 34 4e 75 cb 88 2d 59 82 8d 7d 4b 25 d9 2f 79 BLOCK SIZE ‘N’ 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 66 70 74 78 82 86 90 94 98 102 106 110 114 118 122 126 130 134 138 142 146 150 154 158 162 166 170 174 178 182 186 HEX VALUE 2 20 89 3d de 5f e2 91 3a ae c4 78 1b 37 7e 7b 2b 39 9e ca 98 aa 84 ed 61 c c0 38 8e 4d 45 c5 68 9c ea 11 97 5a b2 83 9d fa 96 4a 35 5e f2 BLOCK SIZE ‘N’ 3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71 75 79 83 87 91 95 99 103 107 111 115 119 123 127 131 135 139 143 147 151 155 159 163 167 171 175 179 183 187 HEX VALUE 4 40 95 7a 3b be 43 a5 74 db f f0 36 6e fc f6 56 72 bb 13 b7 d3 8f 5d c2 18 7 70 9b 9a 8a d d0 bf 53 22 a9 b4 e3 81 bd 73 ab 94 6a bc 63 BLOCK SIZE ‘N’ 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 HEX VALUE 8 80 ad f4 76 fb 86 cd e8 31 1e 67 6c dc 7f 6b ac e4 f1 26 e9 21 99 ba 3 30 e e0 b1 b3 93 1a 27 f9 a6 44 d5 ef 41 85 fd e6 d1 af d4 ff c6 Page 21 of 24 Advanced Hardware Architectures, Inc. BLOCK SIZE ‘N’ 189 193 197 201 205 209 213 217 221 225 229 233 237 241 245 249 253 HEX VALUE b b0 a3 14 c7 48 15 d7 cf c8 b8 23 b9 33 3e ee 51 BLOCK SIZE ‘N’ 190 194 198 202 206 210 214 218 222 226 230 234 238 242 246 250 254 HEX VALUE BLOCK SIZE ‘N’ 16 e7 c1 28 9 90 2a 29 19 17 f7 46 f5 66 7c 5b a2 191 195 199 203 207 211 215 219 223 227 231 235 239 243 247 251 255 HEX VALUE 2c 49 5 50 12 a7 54 52 32 2e 69 8c 6d cc f8 b6 c3 BLOCK SIZE ‘N’ 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 HEX VALUE 58 92 a a0 24 c9 a8 a4 64 5c d2 9f da 1f 77 eb For example, for a block size of 205, the value to be programed in Byte 1 of the Initialization Register is 0xc7. /*This is a C program to generate Table of Elements. Pass a value of block length, N in decimal to this, and obtain the Element value in hex.*/ int alpha(n) int n; { int i,b,c; c=01; for (i=1;i<n;i++) { b=c<<1; if (b>0377) b=b^0607; c=b; } return c; } main() { int i; printf("Enter N--> "); scanf("%d",&i); if(i<1 || i>255) printf("1<=N<=255"); else printf("\nN = %d\tALPHA = %2x\n\n", i, alpha(i)); } Page 22 of 24 PS4011C-0200 Advanced Hardware Architectures, Inc. APPENDIX B AHA4011C Data Rate Calculations in Continuous Operation Assumptions and Equations: 1) 40 MHz Clock is used. 2) Input Rate (Ci) = Output Rate (Co) C Ci – 1 i 3) Latency = Ci × ( N – 1 ) + ( R + 60 ) + N × ------------- 4) Data Rate = 40 MHz/Ci clocks/byte 5) GOOD or BAD based on inequality equation: Cm R + 60 + N × ---------------Cm – 1 ------------------------------------------------- + N ≤ 367 Ci (5) 6) GOOD or BAD based on inequality equation: Ci Cm ( N – 1 ) × C i ≥ R + 48 + N × -------------- + N × ---------------Ci – 1 Cm – 1 (6) 7) Check symbols are input into and output from the chip along with message symbols. Note: The following tables show examples of Data Rates and Latencies for various block sizes. Other block sizes are also possible. CLOCKS N /BYTE 4 4 4 4 4 4 4 4 4 4 4 4 4 25 50 53 75 100 126 194 208 219 200 225 250 255 CLOCKS N /BYTE 4 4 4 4 4 4 4 4 4 4 4 PS4011C-0200 25 50 75 100 125 150 175 200 225 250 255 T 10 10 10 10 10 7 8 8 9 10 10 10 10 T 5 5 5 5 5 5 5 5 5 5 5 MAXIMUM LATENCY DATA RATE EQUATION 5 EQUATION 6 CLOCKS µSECONDS (MB/sec) 209 343 359 476 609 742 1107 1181 1242 1143 1276 1409 1436 5.23 8.57 8.97 11.9 15.2 18.6 27.7 29.5 31.1 28.6 31.9 35.2 35.9 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD BAD BAD BAD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD MAXIMUM LATENCY DATA RATE EQUATION 5 EQUATION 6 CLOCKS µSECONDS (MB/sec) 199 333 466 599 733 866 999 1133 1266 1399 1426 4.98 8.32 11.7 15.0 18.3 21.7 25.0 28.3 31.7 35.0 35.7 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD BAD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD Page 23 of 24 Advanced Hardware Architectures, Inc. CLOCKS N /BYTE 4 4 4 4 4 4 4 4 4 4 4 25 50 75 100 125 150 175 200 225 250 255 CLOCKS N /BYTE 4 4 4 4 4 4 4 4 4 4 4 Page 24 of 24 25 50 75 100 125 150 175 200 225 250 255 T 3 3 3 3 3 3 3 3 3 3 3 T 1 1 1 1 1 1 1 1 1 1 1 MAXIMUM LATENCY DATA RATE EQUATION 5 EQUATION 6 CLOCKS µSECONDS (MB/sec) 195 329 462 595 729 862 995 1129 1262 1395 1422 4.88 8.22 11.6 14.9 18.2 21.6 24.9 28.2 31.6 34.9 35.6 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD BAD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD MAXIMUM LATENCY DATA RATE EQUATION 5 EQUATION 6 CLOCKS µSECONDS (MB/sec) 191 325 458 591 725 858 991 1125 1258 1391 1418 4.78 8.12 11.5 14.8 18.1 21.5 24.8 28.1 31.5 34.8 35.5 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 10.00 GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD BAD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD GOOD PS4011C-0200