comtech aha corporation Product Specification AHA4522 Astro LE 2K Block Turbo Product Code Encoder/Decoder This product is covered under multiple patents held or licensed by Comtech AHA Corporation. This product is covered by a Turbo Code Patent License from France Telecom - TDF - Groupe des ecoles des telecommunications. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation 2345 NE Hopkins Court Pullman WA 99163 tel: 509.334.1000 fax: 509.334.9000 www.aha.com comtech aha corporation Table of Contents 1.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.0 Data and Configuration Input/Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Configuration Writes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Configuration Reads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Configuration Cycle Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 Decoder Status Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5 Decoder Status Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.6 Encoder and Decoder - Synchronous I/O - Full Duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.7 Encoder and Decoder Synchronous - Half Duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.8 Bus Mode - Half Duplex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.9 Decoder Bus Interface, Encoder Synchronous Interface - Full Duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.0 Encoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1 CRC Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 Scrambler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 TPC Encoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.1 Encoder Code Shortening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.2 Helical Interleaver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.3 Internal Buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.4 Encoder Rapid Code Reconfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.5 Encoder Latency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.0 Decoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1 Channel Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1.1 Channel Input Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 TPC Decoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.1 Helical Deinterleaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.2 Code Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.3 Decoder Code Shortening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.4 Corrections Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.5 Descrambler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.6 CRC Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.7 Decoder Rapid Code Reconfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.8 Decoder Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2.9 Code Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.0 Phase Lock Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.0 General Output Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 7.0 Register Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 7.1 Configuration Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 7.2 Register List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 7.3 User Data Formatting Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.3.1 CRC and Scrambler Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.4 Code Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7.4.1 TPC Constituent Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7.4.2 Block Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.4.3 Buffer Configuration (Encoder Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.4.4 Shortening Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7.4.5 Feedback (Decoder Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.4.6 Iterations (Decoder Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 PS4522_0104 A subsidiary of Comtech Telecommunications Corporation i comtech aha corporation 7.5 8.0 9.0 10.0 11.0 12.0 13.0 14.0 Channel Interface Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.5.1 Quantization (Decoder Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.6 Data Input/Output Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.6.1 Transfer Word Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.7 Control and Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.7.1 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.7.2 Status and Correction Count (Decoder Only). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.7.3 Actual Iterations (Decoder Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.8 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.8.1 Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 8.1 System Control and Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 8.2 Unencoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 8.3 Encoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 8.4 Channel Data Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 8.5 Decoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 DC Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 10.1 Operating Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 10.2 Absolute Maximum Stress Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 10.3 Test Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 AC Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 11.1 SYSCLK Clock Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 11.2 U_CLK, E_CLK, C_CLK, D_CLK Clock Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 11.3 U_WR_N, E_RD_N, C_WR_N, D_RD_N Strobe Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 11.4 Synchronous Data Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 11.5 Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 11.6 Reset_n Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Package Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 12.1 Package Dimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 13.1 Available Parts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 13.2 Part Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Related Technical Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Appendix A: ii Vad Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 comtech aha corporation List of Figures Figure 1: Figure 2: Figure 3: Figure 4: Figure 5: Figure 6: Figure 7: Figure 8: Figure 9: Figure 10: Figure 11: Figure 12: Figure 13: Figure 14: Figure 15: Figure 16: Figure 17: Figure 18: Figure 19: Figure 20: Figure 21: Figure 22: Figure 23: Figure 24: Figure 25: Figure 26: Figure 27: Figure 28: Figure 29: Figure 30: Figure 31: Figure 32: Figure 33: Figure 34: Figure 35: Figure 36: Figure 37: Figure 38: Figure 39: Figure 40: Figure 41: Figure 42: Figure A1: PS4522_0104 Functional Block Diagram..................................................................................................................... 2 Configuration Cycle Followed by Block 1 ............................................................................................ 3 Configuration Header for Consecutive Blocks...................................................................................... 4 Fixed Configuration Mode .................................................................................................................... 4 Configuration Example for Gaps Between Configuration Writes.......................................................... 4 Full Duplex Connection Diagram.......................................................................................................... 6 Synchronous Data/Configuration Communication Timing - Start of Block ........................................... 8 Synchronous Data/Configuration Communication Timing - End of Block ............................................ 9 Half Duplex Connection Diagram ......................................................................................................... 9 Half Duplex Connection Diagram ........................................................................................................ 10 Bus Interface Data/Configuration Communication Timing - Start of Block .......................................... 12 Full Duplex Connection Diagram ......................................................................................................... 13 Encoder Block Diagram ....................................................................................................................... 14 CRC Encoder ...................................................................................................................................... 14 2D TPC Encoded Block with CRC ....................................................................................................... 15 Scrambler ............................................................................................................................................ 15 Structure of Shortened Code ............................................................................................................... 16 Input Block ........................................................................................................................................... 17 2D Interleaving .................................................................................................................................... 17 Encoded/Interleaved Data Output ....................................................................................................... 17 Encoder Rapid Code Reconfiguration with Helical Interleaving Disabled ........................................... 18 Encoder Rapid Code Reconfiguration with Helical Interleaving Enabled ............................................ 18 C_DATA Interface ............................................................................................................................... 19 Decoder Rapid Code Reconfiguration ................................................................................................. 20 Pinout .................................................................................................................................................. 39 Signal Timing vs. Output Load ............................................................................................................ 41 SYSCLK Clock Timing ......................................................................................................................... 42 Clock Timing ........................................................................................................................................ 43 Strobe Timing ...................................................................................................................................... 43 Encoder Interface Data Input Timing ................................................................................................... 44 Decoder Interface Data Input Timing ................................................................................................... 45 Encoder Interface Data Output Timing Using Chip Select .................................................................. 46 Encoder Interface Data Ouput Timing ................................................................................................. 47 Decoder Interface Data Output Timing Using Chip Select .................................................................. 48 Decoder Interface Data Output Timing ................................................................................................ 49 Encoder Bus Interface Data Input Timing ............................................................................................ 50 Decoder Bus Interface Data Input Timing ........................................................................................... 51 Encoder Bus Interface Data Output Timing ......................................................................................... 52 Decoder Bus Interface Data Output Timing ......................................................................................... 52 RESET_N Timing ................................................................................................................................ 53 Package Dimensions - Top View ......................................................................................................... 54 Package Dimensions - Cross Section View ........................................................................................ 54 Example External Circuit Component Configuration ........................................................................... 57 A subsidiary of Comtech Telecommunications Corporation iii comtech aha corporation List of Tables Table 1: Table 2: Table 3: Table 4: Table 5: Table 6: Table 7: Table 8: Table 9: Table 10: Table 11: Table 12: Table 13: Table 14: Table 15: Table 16: Table 17: Table 18: Table 19: Table 20: Table 21: Table 22: Table 23: iv Recommended CRC Polynomials ..........................................................................................................15 Partial Code List and Decoder Datapath Latency ...................................................................................22 Partial Code List and Performance - Synchronous Interface ..................................................................22 Partial Code List and Performance - Bus Interface ................................................................................22 Register Bits - Alphabetical .....................................................................................................................24 Summary of Code Shortening Rules ......................................................................................................30 Pinout - Pin Number Order .....................................................................................................................38 SYSCLK Clock Timing with PLLBYPASS = 0 .........................................................................................42 SYSCLK Clock Timing with PLLBYPASS = 1 .........................................................................................42 Clock Timing ...........................................................................................................................................43 Strobe Timing with PLLBYPASS = 0 ......................................................................................................43 Encoder Interface Data Input Timing ......................................................................................................44 Decoder Interface Data Input Timing ......................................................................................................45 Encoder Interface Data Output Timing Using Chip Select ......................................................................46 Encoder Interface Data Output Timing ...................................................................................................47 Decoder Interface Data Output Timing Using Chip Select .....................................................................48 Decoder Interface Data Output Timing ...................................................................................................49 Encoder Bus Interface Data Input Timing ...............................................................................................50 Decoder Bus Interface Data Input Timing ...............................................................................................51 Encoder Bus Interface Data Output Timing ............................................................................................52 Decoder Bus Interface Data Output Timing ............................................................................................52 RESET_N Timing ...................................................................................................................................53 TQFP (Thin Quad Flat Pack) 7 x 7 mm Package Dimensions ...............................................................55 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 1.0 INTRODUCTION The AHA4522 device is a single-chip Turbo Product Code (TPC) Forward Error Correction (FEC) Encoder/Decoder. This device integrates both a TPC encoder and decoder, and operates in full or half duplex modes. In addition to TPC coding, the device includes helical interleaving, CRC computation, and data scrambling. Each of the functional blocks can be independently bypassed, refer to the functional block diagram in Figure 1. The encoder and decoder accept data through an interface designed to connect directly to a DSP either through a synchronous serial port or the data bus. Separate chip select signals are provided on the encoder and decoder to allow half duplex operation. Encoder and decoder configuration registers are written and read through the same interface as the data. Configuration registers may only be accessed at the start of every block transfer. The encode datapath with all functional blocks enabled computes and inserts CRC bits, scrambles the data, inserts error correction code (ECC) bits, and helically interleaves the data. The decoder datapath is the reverse of the encoder datapath. With all functional blocks enabled, the received data is helically deinterleaved before decoding. The decoder output is descrambled and the CRC is computed to verify data integrity. Decoded data is then output in a serial bit stream. The decoder input interface includes an option to accept 4 bit parallel soft metric data symbols. The parallel decoder input is used to support symbol per transfer for fast channel input rates. PS4522_0104 1.1 FEATURES PERFORMANCE: • 28.5 Mbit/sec channel rate and 21 Mbit/sec payload data rate for (64,57)x(32,26) code with 4 iterations • Integrated 16 bit scrambler and descrambler • Integrated 32 bit CRC computation and verification • Supports two dimensional (2D) and three dimensional (3D) Turbo Product Codes • Supports 2D Enhanced Turbo Product Codes • Correction count for channel SNR estimation FLEXIBILITY: • Code Rates from 0.25 to 0.97 • Encoded Block Sizes from 64 bits to 2 Kbits • Programmable code shortening supports exact block sizes • Programmable decoder input quantization for up to 4 bit wide soft metrics • Programmable Iterations up to 255 per block • 4 programmable block configurations which are selectable for fast code changing • On chip PLL allows low frequency system clock (SYSCLK) CHANNEL INTERFACE: • Synchronous serial input and output ports designed to be compatible with DSP serial ports • Bus mode input and output ports designed to be compatible with a DSP bus • Chip selects on encoder and decoder ports for full or half-duplex operation • Pin selectable ready and accept control signal polarity • Decoder supports 4 bit parallel soft metric input data for fast decode operation • Block status is optionally output at the end of every decoded block to provide correction and CRC error information SYSTEM INTERFACE: • Datapath is used for accessing the AHA4522 configuration registers through the data ports ELECTRICAL: • 3.3V I/O, 1.8V core operation • 5V tolerant inputs • TTL signal compatible • 7 mm x 7 mm, 64 pin, TQFP Package A subsidiary of Comtech Telecommunications Corporation Page 1 of 57 1.2 GLOSSARY OF TERMS 1.3 Block (TPC) – A TPC error correction block, including user data bits, CRC bits, and TPC error correction bits. Channel Rate The bit rate output from the encoder, or input to the decoder, including all user data bits, CRC bits, and TPC error correction bits. Data Rate The bit rate input to the encoder, or output from the decoder, including only user data bits. This is sometimes referred to as the payload data rate. Figure 1: DOCUMENT CONVENTIONS The following are formatting examples for specific document elements. – SIGNAL OR PINS - Electrical connections available to the system. – Register Bit - Bit(s) within a register. When the same register exists in both the encoder and decoder, an ‘x’ is used to designate both register bits, as in ECRCEnable and DCRCEnable. – Hex values are represented with a prefix of “0x,” such as Register “0x00.” Binary values are represented with a prefix of “0b”. – Active low signals have “_N” appended to the signal name, as in E_RD_N. – Signals labelled “= 1” are tied to Vddio. Signals labelled “= 0” are tied to ground. – “configuration header or footer bit” Configuration header control bits are listed in quotes, as in “last” or “rwn”. Functional Block Diagram ENCODER U_DATA I/O Formatter E_DATA Configuration Registers CRC Computation Scrambler eTPC Helical Interleaver Encoder DECODER C_DATA D_DATA I/O Formatter Configuration Registers Helical Deinterleaver eTPC Decoder CRC Verification Descrambler Astro LE Page 2 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 2.0 DATA AND CONFIGURATION INPUT/OUTPUT The input/output ports of the AHA4522 chip may be configured to operate in synchronous mode or bus mode. Synchronous mode signals consist of a continuous port clock, a frame sync signal, and data. Bus mode signals consist of a read or write strobe, and data. Bus mode is selected for the encoder when pin E_MODE = 1 on the rising edge of RESET_N, and is selected for the decoder when pin D_MODE = 1 on the rising edge of RESET_N. Synchronous mode is selected for the encoder when pin E_MODE = 0 and for the decoder when pin D_MODE = 0. The interface modes are independent. The encoder is not required to use the same interface mode as the decoder. The input port can not be configured to use a different mode than the output port within the encoder or decoder. The interfaces into and out of the encoder and out of the decoder are always serial in either mode. The soft decision channel data into the decoder may be input symbol per transfer, up to 4 bits parallel, in either mode. The parallel channel input is selected when pin DPARINPUT = 1 on the rising edge of RESET_N. When pin DPARINPUT = 0, the channel data is input serially. A summary of the differences between synchronous and bus interface modes is: 1)Synchronous mode requires a continuous not gated - port clock. Bus mode uses a data strobe. 2)Synchronous mode requires a frame sync signal to assert 1 clock before data on each block. Bus mode does not require a frame sync. 3)Data input and output can be faster in the synchronous mode than in bus mode. The bus mode data strobe is limited to the SYSCLK frequency and the synchronous port clock allows an input clock rate of 1.5*SYSCLK (refer to Section 11.2 U_CLK, E_CLK, C_CLK, D_CLK Clock Timing and Section 11.3 U_WR_N, E_RD_N, C_WR_N, D_RD_N Strobe Timing). Figure 2: With the exception of the 4 bit parallel channel input to the decoder, the encoder interface is identical to the decoder interface. The following sections describe the interface in terms of the decoder, but all control descriptions and signal timing, except where explicitly stated, apply to the encoder signals. The encoder and decoder are shown on all connection diagrams. 2.1 CONFIGURATION WRITES The AHA4522 configuration registers are split into 2 sets of register banks, one for the encoder datapath functions and one for the decoder datapath functions. Each register bank contains 4 sets of block configuration data to allow fast configuration changes between blocks. The 4 sets of configuration data are referred to as config 0, config 1, config 2, and config 3 in this document. All encoder configuration registers are written through the encoder unencoded data input port. All decoder configuration registers are written through the decoder channel data input port. The configuration registers can be written before the start of a block transfer - not during a block transfer. Configuration data is written in a 16 bit configuration cycle format (refer to Section 2.3 Configuration Cycle Format). When writing configuration data to the decoder and the decoder is configured for a parallel input by setting pin DPARINPUT = 1, the configuration data must be input 4 bits per transfer. When writing the configuration in parallel, the first of 4 data transfers expects bit 15 to be input on CDATA[3] down to bit 12 input on CDATA[0]. All 4 CDATA inputs are always used when writing configuration data in parallel. The configuration cycle starts with a “rwn” bit to indicate whether the current configuration cycle is a read or write cycle, and is followed by the “last” bit to indicate that the current configuration cycle is the last configuration write cycle. Configuration cycles are expected to continue until a cycle is received with the “last” bit set. If the “last” bit is set, the AHA4522 expects data to immediately follow the current configuration cycle unless the last configuration cycle writes a one to the NoBlock bit, see configuration Section 7.7.1 Control. An example of the configuration cycle is shown in Figure 2. Configuration Cycle Followed by Block 1 C_FS, U_FS C_DATA, U_DATA PS4522_0104 cycle 1 cycle 2 cycle 3 last cycle A subsidiary of Comtech Telecommunications Corporation block 1 Page 3 of 57 Figure 3: Configuration Header for Consecutive Blocks C_FS, U_FS C_DATA, U_DATA Figure 4: header 1 block 1 header 2 block 2 Fixed Configuration Mode C_FS, U_FS C_DATA, U_DATA cycle 1 cycle 2 cycle 3 cycle 4 block 1 last block 2 block 3 C_ACPT, V_ACPT Figure 5: Configuration Example for Gaps Between Configuration Writes Last Bit Set No Block Set DATA cycle 1 Reg 26 cycle 2 Reg 26 cycle 3 Reg 26 FS ACPT The “last” bit is followed by a 6 bit address and then 8 bits of data to be written to the specified address. Refer to Section 7.0 Register Descriptions for configuration register functions and addresses. In general, at least one configuration write cycle must be attached as a header to each input block. A minimal input header contains a write to configuration address 0x26 to select which set of block configuration to use for the attached block. Refer to configuration register Section 7.7.1 Control. An example of the configuration header is shown in Figure 3. Some AHA4522 applications may only require a single TPC code for every block. For these applications, the AHA4522 may be configured for a fixed configuration mode with only 1 block code, and no configuration cycle headers are required with the data blocks. An example of the fixed configuration mode is shown in Figure 4. If system constraints make it necessary to allow for dead time in between configuration writes you may use the configuration timing shown in Figure 5. Cycle 1, 2, 3 are normal configuration writes followed by a register 0x26 write. Register 0x26 must have the “last” bit set and the xNoBlock bit set The fixed configuration mode is selected during the initial configuration following RESET_N. When a 1 is written to the xNoConfig bit in the control register (Refer to Section 7.7.1 Control), all data blocks are received as config 0, and no configuration headers are expected. After the chip is Page 4 of 57 configured in fixed configuration mode, there is no access to the configuration registers until RESET_N is asserted. 2.2 CONFIGURATION READS All encoder configuration read requests are written through the encoder unencoded data input port. All decoder configuration read requests are written through the decoder channel data input port. The encoder configuration registers can only be read when the encoder datapath is empty. The decoder configuration registers can only be read when the decoder datapath is empty. The AHA4522 has a general output pin that may be used to monitor the datapath empty status. Refer to Section 7.7.1 Control. All encoder configuration registers are read from the encoder encoded data output port. All decoder configuration registers are read from the decoder decoded data output port. A configuration data read request is written in a 16 bit configuration cycle format (refer to Section 2.3 Configuration Cycle Format). The configuration cycle starts with a “rwn” bit to indicate whether the current configuration cycle is a read or write cycle. When the “rwn” bit is set, the configuration cycle is a read request and it is by default the last configuration cycle. The “last” bit is irrelevant in a configuration read because each read must wait for the read data to be output before a new A subsidiary of Comtech Telecommunications Corporation PS4522_0104 read can be requested. Data can not directly follow a read configuration request. The “last” bit is followed by a 6 bit address to specify which register to read. The 8 bits of data that follow the address field of the configuration read 2.3 cycle are don’t cares, but they must be input to finish the configuration cycle. Refer to Section 7.0 Register Descriptions for configuration register functions and addresses. CONFIGURATION CYCLE FORMAT Bit 15 is input first, bit 0 is input last. bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 rwn last a[5] a[4] a[3] a[2] a[1] a[0] d[7] d[6] d[5] d[4] d[3] d[2] d[1] d[0] “rwn” - Read/Write_not. When “rwn” = 1, the configuration cycle is a read cycle. When “rwn” = 0, the configuration cycle is a write cycle. “last” - Last configuration cycle. When set, the current configuration cycle is the last configuration cycle before data begins. When cleared, the current configuration cycle will be followed by another configuration cycle. “a[5:0]” - Configuration address. Address of configuration read or write. “d[7:0]” - Configuration data. When “rwn” = 0, this is the data to be written to the addressed configuration register. When “rwn” = 1, this data is a don’t care. 2.4 DECODER STATUS OUTPUT The AHA4522 has the option to output status information with each decoded block. There is no option to output any status information with encoded blocks. The status of a decoded block is output as 16 bits at the end of every decoded block when the DStatus configuration bit is set to 1, see Section 7.7.1 Control. The structure of the status output is shown in Section 2.5 Decoder Status Output Format. The status is output in serial, msb first. 2.5 The status includes a parity error flag “perr” which is asserted when the CRC is enabled and the output block failed the CRC verification. The last status information is the number of corrections “c[11:0]”. This is a count of the number of bit errors corrected in the current block, including user data, inserted CRC bits, and ECC bits. DECODER STATUS OUTPUT FORMAT Bit 15 is output first, bit 0 is output last. bit15 bit14 bit13 bit12 bit11 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 res perr c[11] c[10] c[9] c[8] c[7] c[6] c[5] c[4] c[3] c[2] c[1] c[0] “perr” - bit10 Parity error. Asserted when CRC is enabled and the output block failed the CRC verification. “c[11:0]” - Correction count. The number of bit errors corrected in the current block including user data, inserted CRC bits, and ECC bits. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 5 of 57 2.6 ENCODER AND DECODER - SYNCHRONOUS I/O - FULL DUPLEX An AHA4522 synchronous interface full duplex connection diagram is shown in Figure 6. Data blocks and configuration information are input through the U_DATA port when encoding or the C_DATA port when decoding. The soft decision channel data into the decoder is serially input when DPARINPUT = 0 on the rising edge of RESET_N, which reduces the input rate by up to a factor of 4 when a 4 bit soft metric is used. The channel input port may be configured to allow 4 bit parallel input on C_DATA when DPARINPUT = 1 on the rising edge of RESET_N. When DPARINPUT = 1, the C_DATA port is configured in parallel mode and the configuration data is expected to be received in 4 bit parallel. When DPARINPUT = 0, the C_DATA port resets Figure 6: into serial mode and expects to receive configuration data serially. The synchronous interface timing for the decoder signals is shown in Figures 7 and 8. The signal timing for the encoder is similar. A data or configuration write is started when C_FS is asserted for one C_CLK cycle. The C_FS signal is a sync signal that is asserted once for every block when the DWordEqBlk configuration bit is set to 1 or asserted once for every word when the DWordEqBlk configuration bit is set to 0, see Section 7.6.1 Transfer Word Size. The word size is configured using the DWordSize[4:0] register also shown in Section 7.6.1 Transfer Word Size. The DWordSize[4:0] register resets to 16 bits per word. Figure 31 shows the input timing requirements for C_FS. Full Duplex Connection Diagram E_CS_N GND CLKX U_CLK (U_WR_N) DX U_DATA FSX U_FS U_ACPT synchronous Port 0 CLKR Encoder E_CLK (E_RD_N) E_DATA DR FSR E_FS E_RDY Serial I/F AHA4522 D_CS_N GND C_CLK (C_WR_N) CLKX DX C_DATA FSX C_FS C_ACPT synchronous Port 1 Decoder D_CLK (D_RD_N) CLKR DR D_DATA FSR D_FS D_RDY DPARINPUT D_MODE E_MODE GND Page 6 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 All AHA4522 configuration is done immediately following the first C_FS of a block and the interface remains in the configuration mode until a configuration cycle is input with the “last” bit set. The structure of a configuration cycle is shown in Section 2.3 Configuration Cycle Format and in the timing diagram Figure 7 in the C_DATA input data stream. In Figure 7, A[3:0] and B[3:0] following the configuration cycle indicate the start of the data block where A is a 4 bit soft metric and B is a 4 bit soft metric. If the configuration cycle is a read request, the read data is available on D_DATA on the D_CLK cycle following when the D_FS output signal is asserted for one D_CLK cycle. Data can not follow a configuration read and decoder configuration reads are only allowed when the decoder datapath is empty. The read data must be read from the D_DATA port before another configuration cycle is started. The D_FS signal timing is shown in Figures 7 and 8, the electrical characteristics are shown in Figure 34. D_FS asserts to indicate that the block is finished processing and the output data will start on the next D_CLK cycle. The D_FS signal is a sync signal that is asserted once for every block when the DWordEqBlk configuration bit is set to 1 or asserted once for every word when the DWordEqBlk configuration bit is set to 0, see Section 7.6.1 Transfer Word Size. The word size is configured using the DWordSize[4:0] register also shown in Section 7.6.1 Transfer Word Size. The DWordSize[4:0] register resets to 16 bits per word. The output data is read serially through the D_DATA port. D_RDY asserts with the DFS signal at the start of a block and stays asserted until the last data, including block status, is clocked out of the decoder (see Figures 7 and 8). Note that the encoder does not output a block status footer. D_RDY is not required for systems where the receive port is set up to expect a certain output block size, but it may be used in systems that do not count the bits in the received block. PS4522_0104 C_ACPT asserts when the input buffer is ready to accept a block and is deasserted after the data portion of the block transfer is started or a configuration read is started (see Figures 7 and 8). This signal may be used to allow the decoder to process more than one block at a time. C_ACPT is not required for systems that process one block at a time, i.e. the first block is input, processed, and output before a second block is input. The synchronous interface requires continuous port clocks C_CLK and D_CLK. Gated port clocks are not allowed. The continuous D_CLK automatically fills any padding required by a serial receive port. The following timing diagrams Figure 7 and Figure 8 show a block input and output through the decoder in serial mode (DPARINPUT = 0). The C_FS and D_FS signals shown in the following diagrams are shown assuming DWordEqBlk is set. A subsidiary of Comtech Telecommunications Corporation Page 7 of 57 Figure 7: Synchronous Data/Configuration Communication Timing - Start of Block Start of Block - Configuration Write C_CLK (input) C_FS (input) C_DATA (input) rwn last a[5] a[4] a[3] a[2] a[1] a[0] d[7] d[6] d[5] d[4] d[3] d[2] d[1] d[0] A[3] A[2] A[1] A[0] B[3] B[2] B[1] B[0] C[3] channel data configuration cycle C_ACPT (output) Decoded Start of Block - Output Data (after decoder latency) D_CLK (input) D_FS (output) D_DATA (output) a b c d e f g h i j k l m n o p xx xx xx q r s t u v w x y decoded data D_RDY (output) Start of Block - Configuration Read C_CLK (input) C_FS (input) C_DATA (input) C_ACPT rwn last a[5] a[4] a[3] a[2] a[1] a[0] xx configuration read xx xx xx xx rwn last a[5] a[4] a[3] configuration write c_data is a don’t care on read (output) Output Configuration Read Data D_CLK (input) D_FS (output) D_DATA (output) D_RDY r[7] r[6] r[5] r[4] r[3] r[2] r[1] r[0] a read data b c d e f g h i next block data (output) Page 8 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 Figure 8: Synchronous Data/Configuration Communication Timing - End of Block End of Block Write C_CLK (input) C_FS (input) C_DATA (input) Z[3] Z[2] Z[1] Z[0] rwn last a[5] a[4] a[3] a[2] a[1] a[0] d[7] data end next block configuration C_ACPT (output) Decoded End of Block Output Data D_CLK (input) D_FS data start (output) D_DATA (output) x y z s[15] s[14] s[13] s[12] s[11] s[10] s[9] s[8] s[7] s[6] s[5] s[4] s[3] s[2] s[1] s[0] data end a block status D_RDY b c next block (output) 2.7 ENCODER AND DECODER SYNCHRONOUS - HALF DUPLEX This interface is the same as the full duplex synchronous mode, except the E_CS_N and D_CS_N inputs are used to switch between the encoder and decoder. Figure 9: Half Duplex Connection Diagram GOUT[1:0] E_CS_N CLKX U_CLK (U_WR_N) DX U_DATA U_FS FSX U_ACPT synchronous Port 0 Encoder E_CLK (E_RD_N) CLKR DR E_DATA FSR E_FS E_RDY AHA4522 D_CS_N C_CLK (C_WR_N) C_DATA C_FS C_ACPT Decoder D_CLK (D_RD_N) D_DATA D_FS D_RDY DPARINPUT D_MODE E_MODE GND PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 9 of 57 The differences in the communication timing between the full duplex and half duplex synchronous configurations are the tristated D_FS and D_DATA outputs when the decoder D_CS_N is not asserted, and the tristated E_FS and E_DATA outputs when the encoder E_CS_N is not asserted. Refer to the full duplex synchronous configuration Section 2.6 Encoder and Decoder - Synchronous I/ O - Full Duplex for communication timing diagrams. 2.8 BUS MODE - HALF DUPLEX The AHA4522 bus interface half duplex connection diagram is shown in Figure 10. The bus interface is selected for the encoder when E_MODE = 1 and is selected for the decoder when D_MODE = 1. Data blocks and configuration information are input through the U_DATA port when encoding or the C_DATA port when decoding. The bus mode interface allows a 4 bit parallel channel input through the C_DATA port to allow soft metrics to be written to the decoder at a rate of one symbol per transfer. The interfaces to D_DATA, U_DATA, and E_DATA are serial. When bus mode is selected at reset, the status of the DPARINPUT pin determines if the C_DATA port is configured in serial or 4 bit parallel mode. When DPARINPUT = 1 at reset, the C_DATA port is configured in 4 bit parallel mode and the first configuration cycle is expected to be received in 4 bit parallel. Figure 10: Half Duplex Connection Diagram CS, ADDR E_CS_N U_CLK (U_WR_N) WR_N DATA[3:0] U_DATA U_FS U_ACPT Bus I/F Encoder E_CLK (E_RD_N) RD_N E_DATA E_FS INT0 INT1 INT2 E_RDY AHA4522 INT3 D_CS_N C_CLK (C_WR_N) C_DATA[3:0] C_FS C_ACPT Decoder D_CLK (D_RD_N) D_DATA D_FS Vddio D_RDY DPARINPUT D_MODE E_MODE Page 10 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 The bus interface timing for the decoder signals is shown in Figure 11. The signal timing for the encoder is typical. A data or configuration write cycle is started when C_WR_N is asserted low. There is no block start signal in bus mode. The C_WR_N signal is a write strobe signal, with data being registered on the rising edge (see Figure 37). All configuration is done immediately following reset or immediately following the end of an input block. The AHA4522 counts the number of input data bits and compares the input count to the DBlockSize configuration setting (see Section 7.4.2 Block Size) to find the end of an input block. The interface remains in the configuration mode until a configuration cycle is input with the “last” bit set. The structure of a configuration cycle is shown in Section 2.3 Configuration Cycle Format. The configuration cycle is shown as c[3:0] in Figure 11 in the C_DATA input stream. Note that the encoder does not have the parallel input option and all configuration bits must be input serially. The first 16 bits (4 writes) in the C_DATA stream are configuration write bits with bits (15:11) written first and bits (3:0) written last. The configuration starts with a “rwn” (read/write_not) bit and is followed by a “last” bit which indicates that the current configuration cycle is the last configuration cycle. The “last” bit is followed by a 6 bit address a[5:0] and then the data d[7:0] to be written to the address. The AHA4522 expects data to immediately follow the last configuration write cycle unless the last configuration cycle writes a one to the NoBlock bit (see configuration Section 7.7.1 Control). A and B following the configuration cycle indicate the start of the data block where A is a 4 bit soft metric and B is a 4 bit soft metric. If the configuration cycle is a read request, the read data is available on D_DATA when D_RDY is asserted. The configuration data is read when D_RD_N is asserted low and the data is valid until the D_RD_N rising edge (see Figure 39). Data can not follow a configuration read and decoder configuration reads are only allowed when the decoder datapath is empty. Each configuration read is considered a last configuration cycle similar to a last configuration write cycle with the NoBlock bit set. The read data must be read from the D_DATA port before another configuration cycle is started. PS4522_0104 D_RDY asserts when valid data is available to be read at the output and stays asserted until the last data, including block status, is strobed out of the decoder (see Figure 11). D_RDY can be monitored to know when to start an output read, or the output can be read after decoder block latency number of SYSCLKs. The decoder latency calculations are shown in Section 4.2.8 Decoder Latency. Any D_RD_N strobes beyond the end of a block are ignored until the D_RDY signal is asserted. C_ACPT asserts when the input buffer is ready to accept a block and deasserts after the data portion of the block transfer is started or a configuration read is started (see Figure 11). This signal may be used to allow the decoder to process more than one block at a time. C_ACPT is not required for systems that process one block at a time, i.e. the first block is input, processed, and output before a second block is input. The status of the decoded block is output in 16 bits at the end of every decoded block when the DStatus configuration bit is set to 1, see control Section 7.7.1 Control. The structure of the status output is shown in Section 2.5 Decoder Status Output Format and partially in the timing diagram Figure 11 in the D_DATA output data stream as s[8:0] (s[15:9] are not shown). There is not an option to output status information at the end of encoded blocks. In bus mode, the AHA4522 is a slave to the system. The C_WR_N and D_RD_N signals are both inputs to AHA4522. Blocks do not need to be read or written in a continuous stream in bus mode. See Section 4.2.7 Decoder Rapid Code Reconfiguration for fast code change details. The signal differences between synchronous mode and bus mode are: a) the C_CLK and U_CLK inputs become C_WR_N and U_WR_N in bus mode, b) the D_CLK and E_CLK inputs become D_RD_N and E_RD_N inputs in bus mode, c) the D_DATA bus is tristated when D_RD_N is not asserted, and d) the E_DATA bus is tristated when E_RD_N is not asserted. A subsidiary of Comtech Telecommunications Corporation Page 11 of 57 Figure 11: Bus Interface Data/Configuration Communication Timing - Start of Block Start of Block - Configuration Write C_WR_N (input) C_DATA c[3] (input) c[2] c[1] c[0] A B C D configuration C_ACPT E F G H i j k l c[3] c[2] c[1] c[0] data (output) Decoded Start of Block Output Data (after decoder latency) D_RD_N (input) D_DATA a b c d e f g h (output) decoded data D_RDY (output) Start of Block - Configuration Read C_WR_N (input) C_DATA c[3] (input) c[2] c[1] c[0] configuration configuration C_ACPT (output) Output Configuration Read Data D_RD_N (input) D_DATA r[7] (output) r[6] r[5] D_RDY r[4] r[3] r[2] r[1] r[0] a configuration read data (output) b c next data block End of Block Write C_WR_N (input) C_DATA (input) X Y Z c[3] data end c[2] c[1] configuration c[0] A B C data C_ACPT (output) Decoded End of Block Output Data D_RD_N (input) D_DATA (output) s[8] s[7] s[6] s[5] s[4] s[3] s[2] s[1] s[0] status footer D_RDY a b next block (output) Page 12 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 2.9 DECODER BUS INTERFACE, ENCODER SYNCHRONOUS INTERFACE - FULL DUPLEX The full duplex connection diagram shown in Figure 12 is used to show the flexibility of the AHA4522 interface. The decoder uses the bus connection with a 4 bit parallel channel input, while the encoder uses the synchronous port. In this configuration, the C_ACPT output is used to signal that the C_DATA input is ready to accept data. The AHA4522 decoder resets into 4 bit parallel mode when DPARINPUT = 1, so the first decoder configuration write must be done in 4 bit parallel. Fast code changing allows the decoder to input one block type while processing a second block type while outputting a third block type, refer to Section 4.2.7 Decoder Rapid Code Reconfiguration. The D_RDY signal in this configuration can be used as a data valid to signal when a block is finished unloading. Figure 12: Full Duplex Connection Diagram E_CS_N GND U_CLK (U_WR_N) CLKX U_DATA DX U_FS FSX synchronous Port 0 U_ACPT Encoder E_CLK (E_RD_N) CLKR DR E_DATA FSR E_FS E_RDY AHA4522 CS, ADDR D_CS_N WR_N C_CLK (C_WR_N) DATA[3:0] C_DATA C_FS Bus I/F INT1 C_ACPT Decoder D_CLK (D_RD_N) RD_N D_DATA D_FS D_RDY INT0 Vddio DPARINPUT D_MODE E_MODE GND PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 13 of 57 3.0 ENCODER Figure 13: Encoder Block Diagram User Data Encoded Data HELICAL INTERLEAVER U_DATA CRC ENCODER SCRAMBLER PRBS E_DATA TPC ENCODER Figure 13 shows a block diagram of the encode path. Note that all of the blocks in the encode path except the helical interleaver operate by only inserting or modifying data in the stream. Therefore, the entire encode path has low latency. Data is input serially through U_DATA. The CRC engine computes a CRC over each block of data which is inserted at the end of the uncoded data block. This data is scrambled by exclusive-ORing with the output of a Pseudo Random Binary Sequence (PRBS) generator. The scrambler ensures adequate bit transitions in the data stream, which are often required to allow improved DC balance and to accelerate clock recovery in the demodulator. The scrambled data is input to a TPC encoder, which computes ECC bits and inserts them at the appropriate locations in the data stream. The helical interleaver improves burst error performance of the decoder. However, it adds a one block latency to the datapath. The encoded block is serially output through E_DATA. 3.1 CRC ENCODER The cyclic redundancy check (CRC) encoder is a 32 bit linear feedback shift register, with a programmable polynomial. Figure 14 shows a diagram of the shift register. Each TPC block has a separate CRC encoded, with the resultant CRC bits appended to the block. The polynomial for the CRC encoder is written into the ECRCPoly register. The highest order of the polynomial (defined by ECRCSize) is assumed to be a 1, and bit 0 of the polynomial register corresponds to the 0th order of the polynomial, as shown in Figure 14. The desired size of the CRC, in bits, is written into the ECRCSize register. Table 1 gives a suggested list of polynomials for various length CRCs. The POLY column of table 1 gives the value to program into the ECRCPoly register. The detection capability column gives the probability that an incorrect block will be detected and flagged as incorrect by the CRC decoder. Figure 14: CRC Encoder ECRCPoly[0:ECRCSize-1] Shift Direction Page 14 of 57 User Data A subsidiary of Comtech Telecommunications Corporation CRC Output PS4522_0104 Table 1: Recommended CRC Polynomials CRC SIZE 4 8 12 ANSI CCITT SDLC 24 32A 32B 4 8 12 16 16 16 24 32 32 Notes: * POLY Program Value (hex)* (bits) 1f 1d5 180f 18005 11021 1a097 1805101 1404098e2 104c11db7 Figure 15: 2D TPC Encoded Block with CRC DETECTION CAPABILITY** 0.9375 0.99609 0.999756 0.999985 0.999985 0.999985 0.9999999404 0.99999999953 0.99999999977 D D E E D D D E E D D E E CRC E E 3.2 The leading ‘1’ in these values is assumed by the device, and should not be written to the register. This detection capability is the probability that an incorrect block is marked in error. The probability of an undetected block is computed by multiplying the block error rate by (1 - Detection Capability). ** D SCRAMBLER The scrambler is built with a 16 bit pseudo-random binary sequence generator with programmable polynomial, length, and initialization seed. Figure 16 shows the configuration of the scrambler. The shift register is clocked once for each bit. As shown in Figure 16, the output of the shift register is exclusiveORed with the data to be scrambled. Figure 16 shows an example configuration for the generator polynomial sequence: The shift register is reset to all 0s at the beginning of each TPC block. Data from the block is shifted into the circuit, until the number of bits programmed into EBlkSize is reached. Note that the value written into EBlkSize does not include the CRC bits. After the entire TPC block is shifted into the CRC encoder, the data input and feedback of the CRC shifter are disabled, and the contents of the CRC registers are shifted out and inserted into the data stream. Figure 15 shows the location of the CRC word inserted in a 2D TPC encoded block. D denotes data bits and E denotes computed error correction bits. 1+X 14 +X 15 This sequence is programmed into the EScramPoly register as 0b0110000000000000. The seed for the shift register that is shown in the diagram is programmed into EScramSeed as 0b0000000010101001. Every time the scrambler is reset, it is initialized with this seed value. Figure 16: Scrambler EScramPoly[0:15] 1 2 3 4 5 6 7 8 9 1 0 0 1 0 1 0 1 0 10 11 12 13 14 15 16 0 0 0 0 0 0 0 EScramSeed[0:15] Shift Direction Data Output Data Input PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 15 of 57 Note that the length of the generator is directly determined by the polynomial configuration. The sequence shown here is generated by a 15 stage shift register. Since the highest order of the polynomial is 15, the 16th bit XOR feedback will be disabled, and only 15 bits of the shift register are used. Also note that the 0th order of the polynomial is assumed to be 1. The scrambler is reset at the beginning of every TPC block. 3.3 ENCODER CODE SHORTENING There are two methods of shortening product codes. The first method is to remove an entire row or column from a 2D code, or an entire X, Y, or Z plane from a 3D code. This is equivalent to shortening the constituent codes that make up the product code, and is accomplished by writing the amount to shorten into the xShortX, xShortY, and xShortZ registers (see Section 7.4.4 Shortening Configuration). This method enables a coarse granularity on shortening, and at the same time maintaining the highest code rate possible by removing both data and parity symbols. Further shortening is obtained by removing individual bits from the first row of a 2D code (using xShortB), or from the top plane of a 3D code (using xShortR). The following examples discuss shortening in a 2D code and a 3D code. Assume a 456 bit block size is required, with code rate of approximately 0.6. The base code chosen before shortening is the (32,26)x(32,26) code which has a data size of 676 bits. Shortening all rows by 5 and all columns by 4 results in a (27,21)x(28,22) code, with a data size of 462 bits. To get the exact block size, the first row of the product is shortened by an addition 6 bits. The final code is a (750,456) code, with a code rate of 0.608. Figure 17 shows the structure of the resultant block. This shortening is programed into the device by writing xShortX to 5, xShortY to 4, and xShortB to 6. Page 16 of 57 Shorten 6 Additional Bits 26 bits 6 bits 26 bits Unshortened Block TPC ENCODER The TPC encoder supports 2D or 3D codes, with constituent code lengths of up to 64 bits, and overall block size up to 2048 bits. The encoder supports both extended Hamming and parity only constituent codes, and supports 2D enhanced TPCs. See Section 7.4.1 TPC Constituent Code for a description of supported codes and shortening configurations. 3.3.1 Figure 17: Structure of Shortened Code 6 bits Data Bits 28 bits ECC Bits 27 bits 3.3.2 HELICAL INTERLEAVER Helical interleaving transmits data in a helical fashion. When the channel introduces a burst of errors, the helical deinterleaver in the decoder will spread these errors across all axes of the code. The use of helical interleaving increases the burst error correcting capability of the code, and increases the block latency. Refer to Section 3.3.5 Encoder Latency. The helical interleaver is enabled by setting EHelical to one (see Section 7.4.1 TPC Constituent Code). When helical interleaving is enabled, the EShortX, EShortB, and EShortR values must be set to 0. For 3D codes, EShortY must also be set to 0 (see Section 7.4.4 Shortening Configuration). This constrains the shortening resolution to one row for 2D codes, and one plane for 3D codes. All of the blocks in the encode datapath must be either interleaved or not interleaved. A mixture of interleaving blocks and non-interleaving blocks in the encoder datapath at the same time is not allowed. Helical interleaving is applied along a diagonal path through the encoded block. Data is output along diagonal lines from the upper left to lower right corner (for a 2D code). The first diagonal output starts with the bit row 1, column 1 followed by the diagonal starting at row 1, column 2. For 3D codes, instead of reading diagonally through the 2D array, interleaving reads diagonally through a cube of data. The example below shows how interleaving is applied for a 2D (64,57)x(32,26) code. A subsidiary of Comtech Telecommunications Corporation PS4522_0104 Figure 18: Input Block Note: 3.3.3 0 1 2 3 ... 64 65 66 67 . . . 127 128 129 . . . ... . . . 191 ... ... ... ... 1984 1985 . . . ... . . . 2047 ... 63 ... The number reflects the bit order, including generated ECC bits. The encoded, interleaved data output is taken along diagonal lines starting with bit zero as shown below. The order of the interleaving is noted for each diagonal line. Figure 19: 2D Interleaving 1 2 4 63 0 1 2 3 ... 64 65 66 67 . . . 127 128 129 130 . . . . . . 191 192 193 . . . ... ... ... ... ... ... ... ... 1984 1985 . . . ... . . . 2047 3 ... 95 63 For the (64,57)x(32,26) block, the data output is: 0, 65, 130,..., 2047, 1, 66,..., 1984, 2, 67,...,..., 63, 64,..., 2046 for a total of 2048 bits output. The AHA4522 operating as a decoder deinterleaves the block to restore it to its original order. Figure 20: Encoded/Interleaved Data Output 0 65 130 . . . . . . 2047 1 66 131 . . . . . . 1984 2 67 132 . . . ... ... 3 68 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 63 Data bits are output from the encoder in row order from left to right. 3D interleaving or deinterleaving is done by reading or writing cells diagonally through the x, y, and z dimensions. PS4522_0104 INTERNAL BUFFERING An internal encoder buffer is used to allow data to stream into and out of AHA4522. The encoder buffer is always enabled because the data flow into the encoder is not throttled by AHA4522 in either bus mode or synchronous mode. The logical size of the encoder input buffer is set via EBufferSize. Refer to Section 7.4.3 Buffer Configuration (Encoder Only) for an equation to calculate EBufferSize. 3.3.4 ENCODER RAPID CODE RECONFIGURATION The AHA4522 supports rapid code changing for up to 4 different block types. This is useful in systems that require consecutive blocks of different code types to be encoded. For example, a multichannel system that uses the same encoder to encode multiple channels, each with a different code type. In this case, the encoder is rapidly switching between code types. The AHA4522 encoder configuration registers are split into 4 sets of block configuration data to allow fast configuration changes between blocks. The 4 sets of configuration data are referred to as config 0, config 1, config 2, and config 3. The block configuration set is selected in the configuration cycle. The control register ConfigSelect bits (see Section 7.7.1 Control) are written to select the block configuration of the immediately following block. The following registers may be changed for each block: ECodeX, ECodeY, ECodeZ, EEnhanced, EHelical, EShortX, EShortY, EShortZ, EShortB, EShortR, EBufferSize, and EBlkSize. Each of these registers is mirrored for each configuration, so that one block can be processing while another is unloading. A new block type can be started when U_ACPT is asserted. U_ACPT deasserts after the block transfer is started. The CRC and scrambler configurations do not change with configuration changes. If CRC and scrambler changes are necessary for different blocks, they must be written in the configuration cycle preceding the block. Figures 19 and 20 show how data blocks are processed through the encoder. In Figure 19, helical interleaving is not enabled so the encoder datapath processes 1 block at a time. In Figure 20, helical interleaving is enabled and a data block can be loaded while another block is unloaded. A subsidiary of Comtech Telecommunications Corporation Page 17 of 57 Figure 21: Encoder Rapid Code Reconfiguration with Helical Interleaving Disabled LOAD UNLOAD BLOCK 0 BLOCK 1 BLOCK 0 BLOCK 2 BLOCK 1 BLOCK 2 Figure 22: Encoder Rapid Code Reconfiguration with Helical Interleaving Enabled LOAD BLOCK 0 BLOCK 0 UNLOAD 3.3.5 BLOCK 1 BLOCK 2 BLOCK 1 BLOCK 2 ENCODER LATENCY The encoder latency is defined as the time from when the first un-encoded bit is input, until the E_RDY signal is asserted to indicate that a block is ready to be output. When helical interleaving is disabled and E_MODE = 0, the approximate encoder latency in SYSCLKs when PLLBYPASS = 0 is: ( EBufferSize × 16 ) + 31 SYSCLK (MHz) SYSCLK (MHz) ------------------------------------------------------------ + ⎛⎝ 2 × ------------------------------------------⎞⎠ + ⎛⎝ 2 × ------------------------------------------⎞⎠ 2 U _CLK (MHz) E_CLK (MHz) When helical interleaving is disabled and E_MODE = 1, the approximate encoder latency in SYSCLKs is: ( EBufferSize × 16 ) + 36 -----------------------------------------------------------2 The EBufferSize input buffer is used to guarantee a streaming input and output. Helical interleaving adds one block of latency. When helical interleaving is enabled, the encoder input buffer is not used. The worst case encoder latency in SYSCLKs when helical interleaving is enabled and E_MODE = 0 is: (MHz) SYSCLK (MHz) SYSCLK (MHz) ⎛ 1 encoded block size × SYSCLK ------------------------------------------⎞ + ⎛ 2 × ------------------------------------------⎞ + 24 + ⎛ 2 × ------------------------------------------⎞ ⎝ ⎠ ⎝ ⎠ ⎝ U_CLK (MHz) U_CLK (MHz) E_CLK (MHz) ⎠ When helical interleaving is enabled and E_MODE = 1, the worst case encoder latency in SYSCLKs is: (MHz) ⎛ 1 encoded block size × SYSCLK ------------------------------------------⎞ + 26 ⎝ U_CLK (MHz) ⎠ If the PLL is bypassed (PLLBYPASS = 1), then the latency result in SYSCLKs must be multiplied by 4. Page 18 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 4.0 DECODER 4.2.1 The decode path of AHA4522 includes a counterpart for each encoder module. The encoder and decoder are isolated paths. This allows full duplex operation, where the encoder and decoder may be operating with different code types and data rates. 4.1 CHANNEL INTERFACE The channel interface formats the channel data for decoding by the Turbo Product Code decoder. For best decoder performance, soft metric information from the channel is necessary. 4.1.1 CHANNEL INPUT FORMATTING When decoding, data may be input either serially or one quantization value per handshake on C_DATA[q-1:0] where q is the number of input quantization bits. The number of quantization bits is configurable based on the setting of QBIT[1:0] within the Quantization register in Section 7.5.1. The QMODE[1:0] bits within the Quantization register determine the type of input data. The input data may be 2’s complement, sign/magnitude, or unsigned. All unused C_DATA inputs are ignored except in configuration cycles. Note that all C_DATA[3:0] inputs are used for configuration cycles in parallel mode. In parallel configuration cycles, configuration bits (15:11) are written first with configuration bit 15 input on C_DATA[3]. In parallel data cycles, the lsb of the soft metric value is input on C_DATA[0] and the msb is determined by QBits[1:0]. Figure 23 shows example connections when QBits[1:0] = “11” (3 input bits). Figure 23: C_DATA Interface AHA4522 C_DATA[2] C_DATA[1] C_DATA[0] C_DATA[3] C_DATA[2] - msb C_DATA[1] C_DATA[0] - lsb For QBits = “11” connect C_DATA as shown 4.2 TPC DECODER The Turbo Product Code decoder supports block sizes up to 2048 encoded bits. The decoder supports iterative decoding of 2D or 3D codes built from extended Hamming or parity only constituent codes of length up to 64 bits. The decoder supports decoding of 2D enhanced TPCs to improve low bit error rate (BER) performance. PS4522_0104 HELICAL DEINTERLEAVER The helical deinterleaver is enabled by setting DHelical to 1 in the configuration register shown in Section 7.4.1 TPC Constituent Code. See Section 3.3.2 for a description of helical interleaving. 4.2.2 CODE CONFIGURATION Turbo Product Codes are specified by the constituent codes of each axis in the code. The code configuration registers in Section 7.4.1 TPC Constituent Code specify the code type (extended Hamming or Parity) and length of each axis, as well as enabling the 2D enhanced TPC axis. To generate a specific block size, the product code is shortened. Shortening is discussed in detail in Section 4.2.3. The decoder can be configured to run specific number of iterations by programming the number of Iterations in the configuration register shown in Section 7.4.6 Iterations (Decoder Only). The decoder can be set to detect when a block converges and stop iterating. This allows the decoder to spend more time, up to the number of iterations specified in Iterations, on difficult blocks and less time on less difficult blocks. This feature is enabled by setting StopIter in the configuration register shown in Section 7.4.5 Feedback (Decoder Only). 4.2.3 DECODER CODE SHORTENING Refer to Section 3.3.1 Encoder Code Shortening. 4.2.4 CORRECTIONS COUNT In order to assist the system with estimation of channel bit error rates, the AHA4522 device reports the number of bits corrected in each block decoded. The Corrections register, see Section 7.7.2 Status and Correction Count (Decoder Only), contains the number of corrections between incoming (channel) data and outgoing (decoded) data. This corrections value is the corrections done on all bits in the TPC block, including user data, CRC, and TPC ECC bits. The correction count is updated in the Corrections register after each block is decoded and is also optionally output at the end of every block as a status footer (see Section 2.5 Decoder Status Output Format). Note that any reads from the Corrections register can only occur when the decoder datapath is empty. The Corrections value will apply to the last decoded block. A subsidiary of Comtech Telecommunications Corporation Page 19 of 57 4.2.5 DESCRAMBLER 4.2.7 The descrambler is built with a 16 bit pseudorandom binary sequence generator with programmable polynomial, length, and initialization seed. The descrambler logic matches that of the scrambler, shown in Figure 16, refer to Section 3.2. The generator polynomial sequence is programmed into the DScramPoly register. The seed for the shift register shown in Figure 16 is programmed into DScramSeed. Every time the descrambler is reset, it initializes to the DScramSeed value. The descrambler is reset at the start of every block. 4.2.6 CRC CHECKING The CRC parity bits are checked after decoding. Each packet has a separate CRC, with variable length up to 32 bits. The CRC comparator circuit matches that of the encoder, shown in Figure 14. The shift register is reset at the beginning of each TPC block. Data from the TPC block is shifted into the circuit, until the number of bits programmed into DBlkSize is reached. At this point, the contents of the CRC shift register are examined. If all bits are 0, then the CRC is correct. Otherwise, a CRC error is detected, and the CRCErr status flag is set in the decoder status footer (see Section 2.5 Decoder Status Output Format). The CRCErr flag can also be read from the status register shown in Section 7.7.2 Status and Correction Count (Decoder Only). DECODER RAPID CODE RECONFIGURATION Similar to the encoder (see Section 3.3.4 Encoder Rapid Code Reconfiguration), the AHA4522 decoder supports rapid code changing. This is useful in systems that require consecutive blocks of different code types to be decoded. The AHA4522 decoder configuration registers are split into 4 sets of block configuration data to allow fast configuration changes between blocks. The 4 sets of configuration data are referred to as config 0, config 1, config 2, and config 3. The block configuration set is selected in the input configuration cycle. The control register ConfigSelect bits (see Section 7.7.1 Control) are written to select the configuration for the following block. The CRC and scrambler configuration do not change with configuration changes. If CRC and scrambler changes are necessary for different blocks, they must be written in the configuration cycle preceding the block. The following registers may be changed for each block configuration: DCodeX, DCodeY, DCodeZ, DEnhanced, DHelical, DShortX, DShortY, DShortZ, DShortB, DShortR, DBlkSize, FeedbackX, FeedbackY, FeedbackZ, FeedbackH, FeedbackHP, StopIter, and Iterations. Each of these registers is mirrored for each configuration, so that one block type can be loading while another block type is processing while another block type is unloading. A new block type may be started when C_ACPT is asserted. C_ACPT deasserts after the block transfer is started. Figure 24 shows the block timing when using decoder rapid code reconfiguration. The figure shows a code type for block 1 that is larger than for blocks 0 and 2. Figure 24: Decoder Rapid Code Reconfiguration LOAD DECODE UNLOAD Page 20 of 57 BLOCK 0 BLOCK 1 BLOCK 0 BLOCK 2 BLOCK 1 BLOCK 0 BLOCK 2 BLOCK 1 A subsidiary of Comtech Telecommunications Corporation BLOCK 2 PS4522_0104 4.2.8 DECODER LATENCY The decoder latency is defined as the time from when the last channel bit is input, until the D_RDY signal is asserted to indicate that a block is ready to be output. In the following equations, DCodeX is DCodeX[2:0], DCodeY is DCodeY[2:0], and DCodeZ is DCodeZ[2:0]. The approximate decoder latency in SYSCLKs when PLLBYPASS = 0 is: If DCodeX is not 0, DCodeX DCodeY DCodeZ DCodeX DCodeZ DCodeX DCodeY 2 × (2 – DShortY ) × ( 2 – DShortZ ) DCodeX x_latency = ------------------------------------------------------------------------------------------------------------------------------------------ + 2 + 16 4 If DCodeX = 0, x_latency = 0. If DCodeY is not 0, DCodeY × (2 – DShortX ) × ( 2 – DShortZ ) 2 DCodeY y_latency = ------------------------------------------------------------------------------------------------------------------------------------------ + 2 + 16 4 If DCodeY = 0, y_latency = 0. If DCodeZ is not 0, DCodeZ × (2 – DShortX ) × ( 2 – DShortY ) 2 DCodeZ + 16 z_latency = ------------------------------------------------------------------------------------------------------------------------------------------- + 2 4 If DCodeZ = 0, z_latency = 0. If enhanced = 1, DCodeY DCodeX 2 ×2 DCodeY e_latency = --------------------------------------------- + 2 + 16 4 If enhanced = 0, e_latency = 0. iter_clocks = ( x_latency + y_latency + z_latency + e_latency ) × Iterations When D_MODE = 1, DCodeX ) + DShortB iter_clocks ( DShortR × 2 latency = 29 + -------------------------- + ---------------------------------------------------------------------------------4 2 When D_MODE = 0, DCodeX 2 × SYSCLK (MHz) 2 × SYSCLK (MHz) iter_clocks ( DShortR × 2 ) + DShortB latency = --------------------------------------------------- + 27 + --------------------------------------------------- + -------------------------- + ----------------------------------------------------------------------------------C_CLK (MHz) D_CLK (MHz) 2 4 If the PLL is bypassed (PLLBYPASS = 1), then the latency result in SYSCLKs must be multiplied by 4. Table 2 gives an abridged list of possible codes supported by AHA4522, along with the latency in SYSCLKs for 4, 6, and 12 iterations with the CRC disabled. This table applies to a synchronous (D_MODE = 0) port configuration with the internal PLL enabled (PLLBYPASS = 0) and assumes that the frequency of C_CLK = SYSCLK. This is a very small subset of supported codes. AHA can provide software to assist the code selection process. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 21 of 57 Table 2: Partial Code List and Decoder Datapath Latency CODE (X)x(Y)x(Z) BLOCK SIZE DATA SIZE (bits) (bits) (64,63)x(32,30)+ (64,57)x(32,26) (16,11)x(16,11)x(8,4) (32,26)x(32,30)+ (32,26)x(32,26) (16,11)x(16,11)x(4,3) 2048 2048 2048 1024 1024 1024 4 ITERATIONS 6 ITERATIONS 12 ITERATIONS (SYSCLKs)* 1890 1482 484 780 676 363 3421 2333 3277 1837 1245 1733 (SYSCLKs)* 5117 3485 4901 2741 1853 2585 (SYSCLKs)* 10205 6941 9773 5453 3677 5141 * The number of SYSCLKs is assuming the PLL is enabled (PLLBYPASS=0) and is accurate to within 2%. If the PLL is not enabled (PLLBYPASS=1), then the latency in SYSCLKs must be multiplied by 4. Table 3: Partial Code List and Performance - Synchronous Interface CODE (X)x(Y)x(Z) (64,63)x(32,30)+ (64,57)x(32,26) (16,11)x(16,11)x(8,4) (32,26)x(32,30)+ (32,26)x(32,26) (16,11)x(16,11)x(4,3) * DATA SIZE (bits) (bits) 2048 2048 2048 1024 1024 1024 1890 1482 484 780 676 363 CODE RATE 6 ITER CODING GAIN (dB) 0.923 0.724 0.236 0.762 0.660 0.354 4 ITER Channel/ Data* 6 ITER Channel/ Data* 12 ITER Channel/ Data* (Avg Mbit/sec) (Avg Mbit/sec) (Avg Mbit/sec) 4.9 7.2 8.2 5.3 7.2 7.4 19.6/17.1 28.5/21.0 20.6/5.0 18.4/14.2 27.2/18.2 19.7/7.3 13.2/12.3 19.4/14.2 14.0/3.3 12.4/9.6 18.4/12.3 13.3/4.8 6.7/6.2 9.9/7.2 7.0/1.6 6.2/4.8 9.9/6.2 6.7/2.4 The input and output rates assume a 31 MHz SYSCLK frequency when the PLL is enabled, or a 124 MHz SYSCLK frequency when the PLL is bypassed. The port clocks C_CLK and D_CLK are assumed to be running at 46.5 MHz. Enhanced TPC. In enhanced codes, the Y axis is shortened by 1. The shortening and addition of enhanced axis is included in the code description. + Table 4: Partial Code List and Performance - Bus Interface CODE (X)x(Y)x(Z) (64,63)x(32,30)+ (64,57)x(32,26) (16,11)x(16,11)x(8,4) (32,26)x(32,30)+ (32,26)x(32,26) (16,11)x(16,11)x(4,3) * BLOCK SIZE DATA SIZE (bits) (bits) 2048 2048 2048 1024 1024 1024 1890 1482 484 780 676 363 CODE RATE 6 ITER CODING GAIN (dB) 0.923 0.724 0.236 0.762 0.660 0.354 4 ITER Channel/ Data* 6 ITER Channel/ Data* 12 ITER Channel/ Data* (Avg Mbit/sec) (Avg Mbit/sec) (Avg Mbit/sec) 4.9 7.2 8.2 5.3 7.2 7.4 18.8/17.5 23.0/17.1 19.7/4.9 17.7/13.7 23.0/15.6 19.2/7.1 12.9/11.9 18.6/13.7 13.5/3.3 12.1/9.3 7.7/12.0 12.9/4.7 6.6/6.1 9.7/7.1 6.9/1.6 6.2/4.7 9.2/6.2 6.6/2.4 The input and output rates assume a 31 MHz SYSCLK frequency when the PLL is enabled, or a 124 MHz SYSCLK frequency when the PLL is bypassed. The read and write strobes C_WR_N and D_RD_N are assumed to be running at 31 MHz. Enhanced TPC. In enhanced codes, the Y axis is shortened by 1. The shortening and addition of enhanced axis is included in the code description. + 4.2.9 BLOCK SIZE CODE PERFORMANCE Table 3 and Table 4 give code rate, coding gain, and maximum channel and user (decoded) data rates for the same abridged list of possible codes that was shown in Table 2. The data rate calculations Page 22 of 57 assume that the frequency of SYSCLK is 31 MHz. The coding gain is measured on a Binary Input Additive White Gaussian Noise (AWGN) channel at 10-6 Bit Error Rate (BER) and 6 iterations. AHA can provide software to assist in code BER performance analysis. A subsidiary of Comtech Telecommunications Corporation PS4522_0104 5.0 PHASE LOCK LOOP The AHA4522 contains an internal PLL which is used to multiply the input SYSCLK frequency by 4 for internal clocking. The internal PLL has a minimum input SYSCLK frequency of 20 MHz and a maximum input SYSCLK frequency of 31 MHz, see Section 11.1 SYSCLK Clock Timing. The PLL can not lock to frequencies below 20 MHz. The internal PLL is enabled when pin PLLBYPASS = 0. If PLLBYPASS = 1, the internal PLL is bypassed, and the input SYSCLK directly drives the internal logic. When the PLL is bypassed, the latency and throughput are reduced by a factor of 4 given the same input SYSCLK frequency. The throughput and latency are identical when the PLL is bypassed and a 4x SYSCLK frequency is used when compared to the throughput and latency when the PLL is enabled and a 1x SYSCLK frequency is used. Refer to Section 3.3.5 Encoder Latency and Section 4.2.8 Decoder Latency. PS4522_0104 6.0 GENERAL OUTPUT SIGNALS The AHA4522 contains a general output signal for the encoder and a general output signal for the decoder that can be used to control external logic, or for system debugging. The signals can be driven to a 1 or 0, or can be driven according to events within the device, including load complete, decode complete, empty, etc. See Section 7.7.1 for a complete list of available status outputs. A subsidiary of Comtech Telecommunications Corporation Page 23 of 57 7.0 REGISTER DESCRIPTIONS 7.1 CONFIGURATION SEQUENCE 7.2 The following sequence should be followed when configuring the device. The encoder and decoder configuration sequences are identical. The following configuration sequence is described in terms of the decoder, but all descriptions, except where explicitly stated, apply to the encoder. The decoder is reset when RESET_N = 0. After the rising edge of RESET_N, the decoder is idle. The first write to the decoder is expected to start a configuration cycle. The order of configuration is not important. The last configuration cycle is specified by either the “rwb” bit = 1 or “last” bit = 1 (see Section 2.3 Configuration Cycle Format). Data is not expected to follow the configuration cycles if the last configuration cycle is a read, or if the DNoBlock bit was set (see Section 7.7.1 Control). Table 5: There are 2 complete register sets in the AHA4522 device, one for the encoder and one for the decoder. Registers used in both the encoder and decoder have the same address but are accessed through either the encoder or decoder data interface. In Table 5, the register bit name does not include the E for encoder register or D for decoder register when the register is common to both the encoder and decoder. Registers that are specific to the encoder or decoder are labelled with the E for encoder or D for decoder. All register bits labelled as “res” are reserved and must be written to 0. Reads from reserved registers return unpredictable values. Register Bits - Alphabetical REGISTER BIT NAME ActualIterations[7:0] ConfigSelect[1:0] Corrections[11:8] Corrections[7:0] CRCEnable CONFIG ADDRESS read only 0x3d 0 0x11 1 0x11 2 0x12 3 0x12 0 0x13 1 0x14 2 0x15 3 0x16 0 0x09 1 0x0b 2 0x0d 3 0x0f 0 0x09 1 0x0b 2 0x0d 3 0x0f 0 0x0a 1 0x0c 2 0x0e 3 0x10 all 0x26 read only 0x3b read only 0x3c all 0x00 CRCErr read only BlkSize[11:8] BlkSize[7:0] CodeX[3:0] CodeY[3:0] CodeZ[3:0] Page 24 of 57 REGISTER LIST 0x3b BIT REGISTER SECTION 7:0 Section 7.7.3 Actual Iterations (Decoder Only) 3:0 7:4 3:0 7:4 Section 7.4.2 Block Size 7:0 7:4 3:0 Section 7.4.1 TPC Constituent Code 3:0 1:0 3:0 7:0 5 Section 7.7.1 Control Section 7.7.2 Status and Correction Count (Decoder Only) Section 7.3.1 CRC and Scrambler Configuration Section 7.7.2 Status and Correction Count 4 (Decoder Only) A subsidiary of Comtech Telecommunications Corporation PS4522_0104 REGISTER BIT NAME CRCPoly[31:24] CRCPoly[23:16] CRCPoly[15:8] CRCPoly[7:0] CRCSize[4:0] DOutputECC DStatus EBufferSize[8] Enhanced EPassThrough FeedbackH[4:0] FeedbackHP[4:2] FeedbackHP[1:0] FeedbackX[4:0] FeedbackY[4:2] FeedbackY[1:0] FeedbackZ[4:0] GOutConfig[2:0] Helical PS4522_0104 CONFIG all all all all 0 1 2 3 0 1 2 3 all 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 all 0 1 2 3 ADDRESS 0x01 0x02 0x03 0x04 0x00 0x0a 0x26 0x28 0x29 0x2a 0x2b 0x0a 0x0c 0x0e 0x10 0x0a 0x30 0x31 0x32 0x34 0x30 0x33 0x33 0x34 0x31 0x33 0x33 0x35 0x28 0x2a 0x2c 0x2e 0x28 0x2a 0x2c 0x2e 0x29 0x2b 0x2d 0x2f 0x29 0x2b 0x2d 0x2f 0x26 0x0a 0x0c 0x0e 0x10 BIT 7:0 REGISTER SECTION Section 7.3.1 CRC and Scrambler Configuration 4:0 5 Section 7.4.1 TPC Constituent Code 6 Section 7.7.1 Control 7:0 4 Section 7.4.3 Buffer Configuration (Encoder Only) Section 7.4.1 TPC Constituent Code 6 4:0 6:2 4:0 7:5 6:4 7:5 1:0 3:2 1:0 4:0 Section 7.4.5 Feedback (Decoder Only) 7:5 1:0 6:2 5:3 Section 7.7.1 Control 7 Section 7.4.1 TPC Constituent Code A subsidiary of Comtech Telecommunications Corporation Page 25 of 57 REGISTER BIT NAME Iterations[7:0] NoBlock NoConfig QBits[1:0] QMode[1:0] ScramEnable ScramPoly[15:8] ScramPoly[7:0] ScramSeed[15:8] ScramSeed[7:0] ShortB[5:2] ShortB[1:0] ShortR[5:0] ShortX[5:0] ShortY[5:4] ShortY[3:0] ShortZ[3:0] StopIter Version[7:0] WordEqBlk WordSize[4:0] Page 26 of 57 CONFIG ADDRESS 0 0x36 1 0x37 2 0x38 3 0x39 all 0x26 all all 0x3a all all 0x00 all 0x05 all 0x06 all 0x07 all 0x08 0 0x18 1 0x1b 2 0x1e 3 0x21 0 0x19 1 0x1c 2 0x1f 3 0x22 0 0x19 1 0x1c 2 0x1f 3 0x22 0 0x17 1 0x1a 2 0x1d 3 0x20 0 0x17 1 0x1a 2 0x1d 3 0x20 0 0x18 1 0x1b 2 0x1e 3 0x21 0 0x23 1 0x23 2 0x24 3 0x24 0 0x29 1 0x2b 2 0x2d 3 0x2f read only 0x3f all 0x27 all 0x27 BIT REGISTER SECTION 7:0 Section 7.4.6 Iterations (Decoder Only) 2 Section 7.7.1 Control 7 3:2 Section 7.5.1 Quantization (Decoder Only) 1:0 6 7:0 Section 7.3.1 CRC and Scrambler Configuration 7:4 1:0 7:2 5:0 Section 7.4.4 Shortening Configuration 7:6 3:0 3:0 7:4 3:0 7:4 7 Section 7.4.5 Feedback (Decoder Only) 7:0 Section 7.8.1 Version 5 Section 7.6.1 Transfer Word Size 4:0 Section 7.6.1 Transfer Word Size A subsidiary of Comtech Telecommunications Corporation PS4522_0104 7.3 USER DATA FORMATTING REGISTERS 7.3.1 CRC AND SCRAMBLER CONFIGURATION Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 address 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 bit7 res bit6 bit5 bit4 bit3 bit2 bit1 xScramEnable xCRCEnable xCRCSize[4:0] xCRCPoly[31:24] xCRCPoly[23:16] xCRCPoly[15:8] xCRCPoly[7:0] xScramPoly[15:8] xScramPoly[7:0] xScramSeed[15:8] xScramSeed[7:0] bit0 xCRCEnable - CRC Enable. When set, the encoder will compute and insert CRC bits, and the decoder will compute, check and remove CRC. xCRCSize[4:0] - CRC Size. A value of 0 represents 32 bits. This value must always be less than or equal to xBlockSize[11:0]. xCRCPoly[31:0] - CRC Polynomial. Refer to Table 1 on page 15 for configuration of the polynomial. xScramEnable - Scrambler/Descrambler Enable. When set, the scrambler or descrambler will scramble the data according to the polynomial. When cleared, the scrambler or descrambler is disabled. xScramPoly[15:0] - Scrambler/Descrambler polynomial. For each exponential term in the polynomial, XN, a binary one should be loaded at bit location N-1. X0 is assumed to be a term in the polynomial. For example, the polynomial 1+X3+X5+X8 is programmed as 0b0000000010010100. Note that the length of the PRBS is determined by the most significant bit location containing a one in xScramPoly[15:0]. Refer to Figure 16 on Page 15 for configuration of the polynomial. xScramSeed[15:0] - Seed for scrambler and descrambler. The PRBS is reset to this seed at the beginning of every TPC block. Refer to Figure 16 on Page 15 for configuration of the seed. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 27 of 57 7.4 CODE CONFIGURATION REGISTERS 7.4.1 TPC CONSTITUENT CODE Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 address 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 bit7 xHelical - config 0 xHelical - config 1 xHelical - config 2 xHelical - config 3 bit6 bit5 bit4 xCodeX[3:0] - config 0 EPass DOutput xEnhanced - config 0 Thru ECC xCodeX[3:0] - config 1 res xEnhanced - config 1 xCodeX[3:0] - config 2 res xEnhanced - config 2 xCodeX[3:0] - config 3 res xEnhanced - config 3 bit3 bit2 bit1 bit0 xCodeY[3:0] - config 0 xCodeZ[3:0] - config 0 xCodeY[3:0] - config 1 xCodeZ[3:0] - config 1 xCodeY[3:0] - config 2 xCodeZ[3:0] - config 2 xCodeY[3:0] - config 3 xCodeZ[3:0] - config 3 xCodeX[3:0] - X axis code. xCodeX[3] determines whether the code is an extended Hamming or parity only code. When set, the code is a parity only code, when cleared, it is an extended Hamming code. xCodeX[2:0] determines the size of the code, as follows: Code[2:0] EXTENDED HAMMING PARITY ONLY 0x2 0x3 0x4 0x5 0x6 N/A (8,4) (16,11) (32,26) (64,57) (4,3) (8,7) (16,15) (32,31) (64,63) xCodeY[3:0] - Y axis code. Defined the same as xCodeX[3:0]. The maximum length for y-code is 32 bits. xEnhanced - Enhanced TPC Enable. When set, a diagonal axis is added to the code. This adds 1 additional row of parity bits to 2D codes. This bit is not valid for 3D codes. When xEnhanced is set with a 2D code, xShortY must be greater than or equal to 1. xCodeZ[3:0] - Z axis code. Defined the same as xCodeX[3:0]. Set xCodeZ[3:0] to 0 for 2D codes. The maximum length for code Z is 16 bits. EPassThru - Encoder Pass Through. When set, the encoder does not add ECC bits. The block size is still configured by the code configuration, but the encoder simply passes bits through from the input to the output. This is a reserved bit in the decoder configuration register stack. DOutputECC - Decoder Output ECC. When set, the decoder will output both the user data and the TPC ECC bits. Descrambling and CRC checking must be disabled when this bit is set. This is a reserved bit in the encoder configuration register stack. xHelical - Helical Interleaver/Deinterleaver Enable. See Section 3.3.2 for a description of helical interleaving. The following rules must be followed when helical interleaving. If a 2D code is used, the length of the x dimension vector (xCodeX - xShortX) must be a multiple of 2. If a 3D code is used, the length of the x dimension and the length of the y dimension (xCodeY - xShortY) must be a multiple of 2. xShortR and xShortB must be 0. When fast code changing is used, all of the blocks in the encode path must be either interleaved or not interleaved. A mixture of interleaving blocks and non-interleaving blocks in the encoder datapath at the same time is not allowed. Page 28 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 7.4.2 BLOCK SIZE Read/Write Reset Value (hex) = 00 00 00 00 00 00 address 0x11 0x12 0x13 0x14 0x15 0x16 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 xBlockSize[11:8] - config 1 xBlockSize[11:8] - config 0 xBlockSize[11:8] - config 3 xBlockSize[11:8] - config 2 xBlockSize[7:0] - config 0 xBlockSize[7:0] - config 1 xBlockSize[7:0] - config 2 xBlockSize[7:0] - config 3 xBlockSize - Block Size. This is the number of input bits per block when encoding or decoding. When decoding, DBlockSize includes the CRC bits if they were inserted by the encoder. When encoding, EBlockSize does not include CRC bits. EBlockSize + ECRCSize must always be less than 2048 bits. When set to 0, xBlockSize is 2048 bits. The minimum number of data bits in a block is 16, and the number of data bits must be greater than or equal to xCRCSize[4:0]. An example of (16,11) × (16,11) with 16 bit CRC gives D BlockSize = 16 × 16 = 256 = 0 × 100 E BlockSize = (11 × 11) - 16 = 105 = 0 × 069 When decoding, DBlockSize is equal to the channel block for a maximum of 4096 bits.When encoding EBlockSize is equal to the data block size minus CRC bits. 7.4.3 BUFFER CONFIGURATION (ENCODER ONLY) Read/Write Reset Value (hex) = 00 00 00 00 address 0x28 0x29 0x2a 0x2b bit7 bit6 bit5 bit4 bit3 EBufferSize[7:0] - config 0 EBufferSize[7:0] - config 1 EBufferSize[7:0] - config 2 EBufferSize[7:0] - config 3 bit2 bit1 bit0 EBufferSize[7:0] - Encoder Logical Buffer Size * 16. The encoder input buffer is used to allow data blocks to stream into and out of the TPC encoder. When set to 0, EBufferSize[7:0] is 256. EBufferSize[7:0] should be set according to the following equations: If the frequency of U_CLK is greater than or equal to the frequency of E_CLK, or if EHelical = 1, then EBufferSize = 1. If the frequency of E_CLK is greater than the frequency of U_CLK and EHelical = 0, then in order to stream out a block continuously, EBufferSize = cr [ n x × n y × ( n z – k z ) + n x × ( n y – k y ) + n x – k x ] ------ × ( ( eclk ) ⁄ ( uclk ) ) 16 Where the codes (nx,kx), (ny,ky) and (nz,kz) refer to the shortened constituent codes and cr is the code rate of the input block. The code rate is the number of input bits divided by the number of output bits including bits inserted by the CRC encoder. For 2D and enhanced 2D codes, nz and kz are zero. ky includes the enhanced axis parity bits. If EBufferSize*16 is calculated to be greater than EBlockSize, then EBufferSize = EBlockSize/16 PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 29 of 57 7.4.4 SHORTENING CONFIGURATION Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 address 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 bit7 bit6 bit5 bit4 xShortY[5:4] - config 0 xShortB[5:2] - config 0 xShortR[5:0] -config 0 xShortY[5:4] - config 1 xShortB[5:2] - config 1 xShortR[5:0] -config 1 xShortY[5:4] - config 2 xShortB[5:2] - config 2 xShortR[5:0] -config 2 xShortY[5:4] - config 3 xShortB[5:2] - config 3 xShortR[5:0] -config 3 xShortZ[3:0] - config 1 xShortZ[3:0] - config 3 bit3 bit2 bit1 bit0 xShortX[5:0] - config 0 xShortY[3:0] - config 0 xShortB[1:0] - config 0 xShortX[5:0] - config 1 xShortY[3:0] - config 1 xShortB[1:0] - config 1 xShortX[5:0] - config 2 xShortY[3:0] - config 2 xShortB[1:0] - config 2 xShortX[5:0] - config 3 xShortY[3:0] - config 3 xShortB[1:0] - config 3 xShortZ[3:0] - config 0 xShortZ[3:0] - config 2 xShortX[5:0] - Number of bits to shorten from the X axis code. This value must be set to an even value when helical interleaving or enhanced TPC is enabled. The X axis must always contain at least 2 data bits. xShortY[5:0] - Number of bits to shorten from the Y axis code. For 2D codes, this value must be greater than or equal to 1 if enhanced TPC is enabled. For 3D codes, this value must be set to an even value when helical interleaving is enabled. xShortZ[3:0] - Number of bits to shorten from the Z axis code. For 2D codes, this value must be set to 0. xShortB[5:0] - Number of bits to shorten from the first row of a 2D code, or from the xShortR+1 row of the top plane of a 3D code. This value must be set to 0 when helical interleaving is enabled. xShortR[5:0] - Number of full rows to shorten from the top plane of a 3D code. For 2D codes, this value must be set to 0. This value must be set to 0 when helical interleaving is enabled. Table 6: Summary of Code Shortening Rules Code Type 2D 2D Enhanced 2D Helical 2D Enhanced and Helical 3D 3D Helical Page 30 of 57 ShortX ShortY ShortZ even even >= 1 even even even ShortB ShortR not allowed not allowed not allowed not allowed not allowed not allowed not allowed not allowed not allowed not allowed not allowed not allowed A subsidiary of Comtech Telecommunications Corporation PS4522_0104 7.4.5 FEEDBACK (DECODER ONLY) Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 address 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 FeedbackY[4:2] - config 0 FeedbackX[4:0] - config 0 StopIter - config 0 FeedbackZ[4:0] - config 0 FeedbackY[1:0] - config 0 FeedbackY[4:2] - config 1 FeedbackX[4:0] - config 1 StopIter - config 1 FeedbackZ[4:0] - config 1 FeedbackY[1:0] - config 1 FeedbackY[4:2] - config 2 FeedbackX[4:0] - config 2 StopIter - config 2 FeedbackZ[4:0] - config 2 FeedbackY[1:0] - config 2 FeedbackY[4:2] - config 3 FeedbackX[4:0] - config 3 StopIter - config 3 FeedbackZ[4:0] - config 3 FeedbackY[1:0] - config 3 FeedbackHP[4:2] - config 0 FeedbackH[4:0] - config 0 res FeedbackH[4:0] - config 1 FeedbackHP[1:0] - config 0 FeedbackHP[4:2] - config 2 FeedbackH[4:0] - config 2 res FeedbackHP[4:0] - config 1 FeedbackHP[1:0] - config 2 FeedbackHP[4:2] - config 3 FeedbackH[4:0] - config 3 res FeedbackHP[1:0] - config 3 FeedbackX[4:0] - Feedback for the X axis. The output of the SISO is multiplied by FeedbackX[4:0], then shifted by 5 (divided by 32) before being input to following iterations. FeedbackY[4:0] - Feedback for the Y axis. FeedbackZ[4:0] - Feedback for the Z axis. FeedbackH[4:0] - Feedback for the enhanced axis. FeedbackHP[4:0] - Feedback for the enhanced parity row. StopIter - When set, decoder will stop iterating before reaching the maximum number of iterations specified in the Iterations register if convergence is detected (see Section 7.4.6 Iterations (Decoder Only)). When clear, the decoder will iterate the full number of Iterations. 7.4.6 ITERATIONS (DECODER ONLY) Read/Write Reset Value (hex) = 00 00 00 00 address 0x36 0x37 0x38 0x39 bit7 bit6 bit5 bit4 bit3 Iterations[7:0] - config 0 Iterations[7:0] - config 1 Iterations[7:0] - config 2 Iterations[7:0] - config 3 bit2 bit1 bit0 Iterations[7:0] - Maximum number of iterations to perform. When set to 0, the decoder outputs the hard decision values for each bit with no corrections. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 31 of 57 7.5 CHANNEL INTERFACE REGISTERS 7.5.1 QUANTIZATION (DECODER ONLY) Read/Write Reset Value (hex) = 00 address 0x3a bit7 bit6 bit5 bit4 bit3 bit2 QBits[1:0] res bit1 bit0 QMode[1:0] QBits[1:0] - Quantization bits. A value of 0 represents 4 bits. QBits = 01 is not valid unless QMode = 00. QMode[1:0] - Quantization Mode for soft input data. When set to “11,” input data is assumed to be in signed 2’s complement notation (mid-tread). When set to “01,” data is assumed to be mid-riser sign/ magnitude notation. When set to “00,” data is assumed to be mid-riser unsigned. When set to “10,” data is assumed to be in “half 2’s complement” mid-riser notation. The confidence mapping for each mode is shown below with four bit quantization. QMode[1:0] 00 01 10 11 INPUT DATA TYPE Unsigned Sign/Magnitude Half 2’s Compl 2’s Complement HARD DECISION 0 CONFIDENCE RANGE Max ... Min 0000 0111 1000 1000 ... ... ... ... 0111 0000 1111 1111 7.6 DATA INPUT/OUTPUT CONFIGURATION 7.6.1 TRANSFER WORD SIZE HARD DECISION NO 1 CONFIDENCE RANGE CONFIDENCE N/A N/A N/A 0000 Min ... Max 1000 1000 0000 0001 ... ... ... ... 1111 1111 0111 0111 Read/Write Encoder Reset Value (hex) =e0 Decoder Reset Value (hex) =e0 address 0x27 bit7 bit6 res bit5 xWordEqBlk bit4 bit3 bit2 bit1 xWordSize[4:0] bit0 xWordEqBlk - Word size equals block size. Only valid when port is configured as a synchronous port (x_MODE = 0). When set, the input port expects 1 x_FS per block and the output will generate 1 x_FS per block. When cleared, the input port expects 1 x_FS pulse for every xWordSize[4:0] input bits and the output port generates 1 x_FS pulse for every xWordSize[4:0] output bits. xWordSize[4:0] - Word size. Only valid when port is configured as a synchronous port (x_MODE = 0) and xWordEqBlk is cleared. The input port expects 1 x_FS pulse for every xWordSize[4:0] input bits and the output port generates 1 x_FS pulse for every xWordSize[4:0] output bits. Valid values for xWordSize[4:0] range from 2 to 32 bits. When set to 0, xWordSize[4:0] is 32 bits. Page 32 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 7.7 CONTROL AND STATUS 7.7.1 CONTROL Read/Write Reset Value (hex) = 00 address bit7 0x26 xNoConfig bit6 DStatus bit5 bit4 bit3 xGOutConfig[2:0] bit2 xNoBlock bit1 bit0 xConfigSelect[1:0] xGOutConfig[2:0] - General output control. These registers control the state of the general output signals (E_GOUT and D_GOUT). The general outputs can be driven to a 1 or 0, or any one of six signals can be muxed to either of the general output signals. This is used for system debugging or control of an external device. The following table shows the options for each GOUT signal. Note that xGOutConfig[2] is only used in the decoder. DGOut Config[2:0] 0 1 2 3 4 5* EGOut Config[1:0] 0 1 2 3* SELECTED OUTPUT SIGNAL Drive D_GOUT to 0 (low). Drive D_GOUT to 1 (high). Drive decoder load complete event. D_OUT will change state each time the decoder completes loading one block of data. Drive decode complete event. D_GOUT will change state each time the decoder completes decoding one block of data. Drive unload complete event. D_GOUT will change state each time the decoder completes unloading one block of data. Drive D_GOUT to 1 when the decoder datapath is empty, 0 when not empty. SELECTED OUTPUT SIGNAL Drive E_GOUT to 0 (low). Drive E_GOUT to 1 (high). Drive encoder load complete event. E_GOUT will change state each time the encoder completes loading one block of data. This is only valid when helical interleaving is enabled. Drive E_OUT to 1 when the encoder datapath is empty and not processing a block, 0 when not empty or processing a block. * The datapath empty flags may assert between a configuration read request and the read data output. xNoBlock - No block input following configuration. This bit is written to indicate that the configuration write cycle will not be followed by data. The xNoBlock bit must be written to a 1 for each set of configuration cycles that is not finished with a configuration read, or followed by a data block. The xNoBlock bit is automatically cleared between blocks. Reads of xNoBlock will always return a 0. xNoConfig - No configuration cycles. This bit is written after configuration 0 is programmed and no further configuration is needed. The configuration cycle with xNoConfig set must be the last configuration cycle. The AHA4522 expects data to follow this configuration cycle unless xNoBlock is set. DStatus - Decoder Status. When this bit is asserted, a status footer is attached at the end of every decoded block. The status footer contains the Corrections count and the CRCErr flag. xConfigSelect[1:0] - Configuration Select. Used to select one of the four programmed block configurations. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 33 of 57 7.7.2 STATUS AND CORRECTION COUNT (DECODER ONLY) Read Only Reset Value (hex) = 00 00 address 0x3b 0x3c bit7 bit6 res bit5 bit4 bit3 CRCErr Corrections[7:0] bit2 bit1 Corrections[11:8] bit0 Corrections[11:0] - Corrections per block. The total number of bits corrected by the TPC decoder in the previous block. This value may be output as a footer at the end of the TPC block when DStatus is set. The Corrections count value can only be read when the decoder datapath is empty. The Corrections value applies to the last decoded block. Writes to these bits have no effect. CRCErr - CRC verification error. This decoder signal is asserted when the data block did not pass the CRC verification. This value may be output as a footer at the end of the TPC block when DStatus is set. The CRCErr status is updated with the last read of a block and is valid until the last read of the next block. A write to this bit has no effect. 7.7.3 ACTUAL ITERATIONS (DECODER ONLY) Read Only Reset Value (hex) = 00 address 0x3d bit7 bit6 bit5 bit4 bit3 ActualIterations[7:0] bit2 bit1 bit0 ActualIterations[7:0] - Iterations per block. This is the actual number of iterations performed on the previous block. This number will always equal Iterations when StopIter is not asserted. The ActualIterations count value can only be read when the decoder datapath is empty. The ActualIterations value applies to the last decoded block. ActualIterations may be used as a tool to tune the Iterations setting for specific noise levels. Writes to these bits have no effect. 7.8 MISCELLANEOUS 7.8.1 VERSION Read Only Reset Value (hex) = 2b address 0x3f bit7 bit6 bit5 bit4 bit3 xVersion[7:0] bit2 bit1 bit0 xVersion[7:0] - Version number of the device. Page 34 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 8.0 SIGNAL DESCRIPTIONS This section contains descriptions for all the pins. Each signal has a type code associated with it. The type codes are described in the following table. TYPE CODE I O 8.1 DESCRIPTION Input only pin Output only pin SYSTEM CONTROL AND MISCELLANEOUS SIGNAL TYPE DESCRIPTION RESET_N TRISTATE_N TESTMODE SCANMODE I I I I DPARINPUT I PLL_BYPASS I E_MODE I D_MODE I E_CS_N I D_CS_N I SYSCLK I E_GOUT O D_GOUT O RDYPOLARITY I ACPTPOLARITY I Refer to Section 11.6 Reset_n Timing for RESET_N timing rules. When low, all outputs are tristated. Tie high for normal operation. Test mode input signal. Tie low for normal operation. Scan mode input signal. Tie low for normal operation. Decoder parallel input. When DPARINPUT = 1 on the RESET_N rising edge, C_DATA[3:0] is configured as a 4 bit input bus. When DPARINPUT = 0 on the RESET_N rising edge, C_DATA[0] is configured as a serial input. PLL bypass input signal. Tie low for normal operation. Encoder interface mode. When E_MODE = 0 on the RESET_N rising edge, the encoder interface is configured as a synchronous port. When E_MODE = 1 on the RESET_N rising edge, the encoder interface is configured as a bus interface. Decoder interface mode. When D_MODE = 0 on the RESET_N rising edge, the decoder interface is configured as a synchronous port. When D_MODE = 1 on the RESET_N rising edge, the decoder interface is configured as a bus interface. Encoder chip select, active low. When deasserted, E_DATA and E_FS are tristated. Decoder chip select, active low. When deasserted, D_DATA and D_FS are tristated. System Clock. The maximum frequency is 40 MHz. Encoder general output signal. The functionality of this signal is configured in Section 7.7.1 Control. This signal is driven from an internal clock domain.There is no timing relationship between the external clocks and the GOUT signals. Decoder general output signal. The functionality of this signal is configured in Section 7.7.1 Control. This signal is driven from an internal clock domain.There is no timing relationship between the external clocks and the GOUT signals. Ready polarity signal. When RDYPOLARITY = 1, E_RDY and D_RDY are active high. When RDYPOLARITY = 0, E_RDY and D_RDY are active low. This can only change when RESET_N is asserted. Accept polarity signal. When ACPTPOLARITY = 1, U_ACPT and C_ACPT are active high. When ACPTPOLARITY = 0, U_ACPT and C_ACPT are active low. This input can only change when RESET_N is asserted. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 35 of 57 8.2 UNENCODED DATA INTERFACE SIGNAL U_CLK or U_WR_N U_DATA TYPE I I U_FS I U_ACPT O 8.3 DESCRIPTION Unencoded Data Clock. Refer to Section 11.2 U_CLK, E_CLK, C_CLK, D_CLK Clock Timing for timing rules. Unencoded Input Data. When E_MODE = 0, U_DATA is synchronous to U_CLK. Data is transferred into the device on the rising edge of U_CLK. When E_MODE = 1, U_DATA is latched on the rising edge of U_WR_N. Unencoded Frame Sync. Only used when E_MODE = 0, U_FS is synchronous to U_CLK. Indicates to the device that data will be transferred on the next rising edge of U_CLK. Unencoded Data Accept. Indicates that the device can accept U_DATA. The polarity of this signal is selected with the ACPTPOLARITY pin. ENCODED DATA INTERFACE SIGNAL E_CLK or E_RD_N E_DATA TYPE DESCRIPTION I Encoded Data Clock. Refer to Section 11.2 U_CLK, E_CLK, C_CLK, D_CLK Clock Timing for timing rules. O E_FS O E_RDY O Page 36 of 57 Encoded Output Data. When E_MODE = 0, E_DATA is synchronous to E_CLK. Data is transferred into the device on the rising edge of E_CLK. When E_MODE = 1, E_DATA is transferred on the rising edge of E_RD_N. Encoded Frame Sync. Only used when E_MODE = 0, E_FS is synchronous to E_CLK. Indicates to the device that data will be transferred on the next rising edge of E_CLK. Encoded Data Ready. Indicates that the device has data ready to be transferred across E_DATA. The polarity of this signal is selected with the RDYPOLARITY pin. A subsidiary of Comtech Telecommunications Corporation PS4522_0104 8.4 CHANNEL DATA INTERFACE SIGNAL C_CLK or C_WR_N TYPE DESCRIPTION I Channel Data Clock. Refer to Section 11.2 U_CLK, E_CLK, C_CLK, D_CLK Clock Timing for timing rules. Channel Input Data. When D_MODE = 0, C_DATA[3:0] is synchronous to C_CLK. Data is transferred into the device on the rising edge of C_CLK. C_DATA[3:0] I C_FS I C_ACPT O 8.5 When D_MODE = 1, C_DATA[3:0] is latched on the rising edge of C_WR_N. If DPARINPUT = 1 on the rising edge of RESET_N, data is received in parallel on C_DATA[3:0]. If DPARINPUT = 0 on the rising edge of RESET_N, data is received serially on C_DATA[0]. Channel Frame Sync. Only used when D_MODE = 0, C_FS is synchronous to C_CLK. Indicates to the device that data will be transferred on the next rising edge of C_CLK. Channel Data Accept. Indicates that the device can accept C_DATA. The polarity of this signal is selected with the ACPTPOLARITY pin. DECODED DATA INTERFACE SIGNAL D_CLK or D_RD_N D_DATA TYPE DESCRIPTION I Decoded Data Clock. Refer to Section 11.2 U_CLK, E_CLK, C_CLK, D_CLK Clock Timing for timing rules. O D_FS O D_RDY O PS4522_0104 Decoded Output Data. When D_MODE = 0, D_DATA is synchronous to D_CLK. Data is transferred into the device on the rising edge of D_CLK. When D_MODE = 1, D_DATA is transferred on the rising edge of D_RD_N. Decoded Frame Sync. Only used when D_MODE = 0, D_FS is synchronous to D_CLK. Indicates to the device that data will be transferred on the next rising edge of D_CLK. Decoded Data Ready. Indicates that the device has data ready to be transferred across D_DATA. The polarity of this signal is selected with the RDYPOLARITY pin. A subsidiary of Comtech Telecommunications Corporation Page 37 of 57 9.0 PINOUT Table 7: PIN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Page 38 of 57 Pinout - Pin Number Order SIGNAL C_ACPT GNDIO VDDIO DPARINPUT GND C_CLK VDD C_FS RDYPOLARITY ACPTPOLARITY C_DATA[3] C_DATA[2] VDD GND C_DATA[1] C_DATA[0] SCANMODE E_CS_N VDD GND E_FS E_DATA GNDIO VDDIO E_CLK VDD GND E_RDY GND E_GOUT VDD E_MODE PIN 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 SIGNAL U_ACPT GNDIO VDDIO U_CLK U_FS GND VDD U_DATA SYSCLK AGND VAD PLL_BYPASS VDD GND TRISTATE_N TESTMODE VDD GND RESET_N D_CS_N VDD D_FS GND D_DATA GNDIO VDDIO D_CLK VDD GND D_RDY D_GOUT D_MODE A subsidiary of Comtech Telecommunications Corporation PS4522_0104 PLL_BYPASS VAD AGND SYSCLK U_DATA VDD GND U_FS U_CLK VDDIO GNDIO U_ACPT 44 43 42 41 40 39 38 37 36 35 34 33 TESTMODE TRISTATE_N GND VDD GND E_RDY GND VDD E_CLK VDDIO GNDIO E_DATA E_FS GND VDD E_CS_N SCANMODE 14 15 16 13 E_MODE VDD E_GOUT C_DATA[2] VDD GND C_DATA[1] C_DATA[0] 5 6 7 8 9 10 11 12 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 LLLLL YYWWD GND C_CLK VDD C_FS RDYPOLARITY ACPTPOLARITY C_DATA[3] 56 57 58 59 60 61 62 63 64 1 2 3 4 D_DATA GNDIO VDDIO D_CLK VDD GND D_RDY D_GOUT D_MODE AHA4522A031 PTC C_ACPT GNDIO VDDIO DPARINPUT GND 49 50 51 52 53 54 55 VDD GND RESET_N D_CS_N VDD D_FS 48 47 46 45 Figure 25: Pinout Note: YYWWD = Date Code; LLLLL = Lot Number PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 39 of 57 10.0 DC ELECTRICAL SPECIFICATIONS Information in this section represents design goals. While every effort will be made to meet these goals, values presented should be considered targets until characterization is complete. Please consult with Advanced Hardware Architectures for the most up-to-date values. 10.1 OPERATING CONDITIONS SYMBOL Vdd Vddio Vad Idd Iddio Idd Iddio Idd Iddio Ta Vil Vih Iin Vol Voh Iol Ioh Ioz Cin Cio Cout PARAMETER Core Supply voltage (1.8V nominal) Input/Output Supply Voltage (3.3V nominal) Analog PLL Supply Voltage (1.8V nominal) Supply current (static) Input/Output Supply current (static) Supply current (active) Input/output supply current (active) Supply current (active) Input/Output Supply current (active) Ambient temperature Input low voltage Input high voltage Input leakage current Output low voltage (Iol=-2mA) Output high voltage (Ioh=2mA) Output low current Output high current Output leakage current during tristate Input capacitance Input/Output capacitance Output load capacitance MIN MAX UNITS NOTES 1.7 3.0 1.7 1.9 3.6 1.9 1 0.6 136 8 70 6 70 0.8 5.5 5 0.4 V V V mA mA mA 7 7 3 0 -0.3 2.0 -5 mA mA °C V V uA V V mA mA uA pF pF pF 2.4 8 8 5 10 10 30 -5 5 5 6 6 2 4 1 Notes: 1) Timings referenced to this load. 2) May require external heat sink. 3) See Appendix A for Vad recommendations. 4) Measured at 0V and VDDIO nominal. 5) At maximum SYSCLK frequency, nominal Vdd and Vddio, and Full Duplex operation. 6) At maximum SYSCLK.frequency, nominal Vdd and Vddio, and Enclode operation. 7) During power on sequencing, Vdd must reach 1.7V concurrent or before Vddio reaches 1.7V. 10.2 ABSOLUTE MAXIMUM STRESS RATINGS SYMBOL Tstg Vsupply Vpin Page 40 of 57 PARAMETER Storage temperature Supply voltage Voltage applied to any signal pin MIN MAX UNITS -50 -0.5 150 4.6 6.0 °C V V A subsidiary of Comtech Telecommunications Corporation NOTES PS4522_0104 10.3 TEST CONDITIONS PARAMETER VALUE AC timing reference * 1.4 V The timing diagrams for these signals assume a capacitive load of 30pF. The specified signal timings must be derated by the factor shown in Figure 26 when operating at loads other than 30pF. Multiplication Factor Figure 26: Signal Timing vs. Output Load LOAD MULTIPLICATION CAPACITANCE FACTOR 1.15 10 pF 20 pF 30 pF 40 pF 50 pF* 0.86 10 PS4522_0104 20 30 40 Load Capacitance (pF) 50 0.86 0.92 1.00 1.07 1.15 *Production test conditions A subsidiary of Comtech Telecommunications Corporation Page 41 of 57 11.0 AC ELECTRICAL SPECIFICATIONS 11.1 SYSCLK CLOCK TIMING Figure 27: SYSCLK Clock Timing 1 2 2.0V 1.4V 0.8V SYSCLK 3 4 5 Table 8: NUMBER 1 2 3 4 5 Table 9: NUMBER 1 2 3 4 5 Page 42 of 57 SYSCLK Clock Timing with PLLBYPASS = 0 PARAMETER SYSCLK rise time SYSCLK fall time SYSCLK high time SYSCLK low time SYSCLK period (Tcp) SYSCLK frequency Cycle to cycle jitter Long term jitter MIN MAX UNITS 1 1 12 12 32 20 -125 -200 31 125 200 ns ns ns ns ns MHz ps ps MIN MAX UNITS 1 1 ns ns ns ns ns MHz ps ps SYSCLK Clock Timing with PLLBYPASS = 1 PARAMETER SYSCLK rise time SYSCLK fall time SYSCLK high time SYSCLK low time SYSCLK period (Tcp) SYSCLK frequency Cycle to cycle jitter Long term jitter A subsidiary of Comtech Telecommunications Corporation 3 3 8 -125 -200 124 125 200 PS4522_0104 11.2 U_CLK, E_CLK, C_CLK, D_CLK CLOCK TIMING Figure 28: Clock Timing 1 2 2.0V 1.4V 0.8V x_CLK 3 4 5 Table 10: Clock Timing NUMBER 1 2 3 4 5 5 PARAMETER MIN U_CLK, E_CLK, C_CLK, D_CLK rise time U_CLK, E_CLK, C_CLK, D_CLK fall time U_CLK, E_CLK, C_CLK, D_CLK high time U_CLK, E_CLK, C_CLK, D_CLK low time U_CLK, E_CLK, C_CLK, D_CLK frequency with PLLBYPASS = 0. U_CLK, E_CLK, C_CLK, D_CLK frequency with PLLBYPASS = 1. MAX UNITS 2 2 ns ns ns ns 8 8 1.5*SYSCLK MHz SYSCLK/2.7 MHz 11.3 U_WR_N, E_RD_N, C_WR_N, D_RD_N STROBE TIMING Figure 29: Strobe Timing 1 2 2.0V 1.4V 0.8V x_WR_N, x_RD_N 3 4 5 Table 11: NUMBER 1 2 3 4 5 5 PS4522_0104 Strobe Timing with PLLBYPASS = 0 PARAMETER U_WR_, E_RD_N, C_WR_N, D_RD_N rise time. U_WR_, E_RD_N, C_WR_N, D_RD_N fall time. U_WR_, E_RD_N, C_WR_N, D_RD_N high time. U_WR_, E_RD_N, C_WR_N, D_RD_N low time. U_WR_, E_RD_N, C_WR_N, D_RD_N frequency with PLLBYPASS = 0. U_WR_, E_RD_N, C_WR_N, D_RD_N frequency with PLLBYPASS = 1. A subsidiary of Comtech Telecommunications Corporation MIN MAX UNITS 2 2 ns ns ns ns SYSCLK MHz SYSCLK/4 MHz 10 10 Page 43 of 57 11.4 SYNCHRONOUS DATA INTERFACE Figure 30: Encoder Interface Data Input Timing U_CLK (input) t1 t2 U_FS (input) t3 t4 U_DATA (input) configuration data U_ACPT (output) t5 E_CS_N (input) Table 12: NUMBER t1 t2 t3 t4 t5 Encoder Interface Data Input Timing PARAMETER U_FS setup to U_CLK. U_FS hold from U_CLK. U_DATA setup to U_CLK. U_DATA hold from U_CLK. E_CS_N setup to U_CLK rising edge that U_FS is asserted. MIN MAX UNITS 5 3 5 3 ns ns ns ns 9 ns NOTES Notes: 1) U_ACPT is driven from an internal clock domain. There is no timing relationship between U_CLK and U_ACPT. The function of U_ACPT is to indicate that the encoder can accept a block of data. U_ACPT deasserts following the first data transfer or after a configuration read is started. 2) There is no timing relationship between U_CLK and SYSCLK. Page 44 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 Figure 31: Decoder Interface Data Input Timing C_CLK (input) t1 t2 C_FS (input) t3 t4 C_DATA[0] (input) configuration data C_ACPT (output) t5 D_CS_N (input) Table 13: NUMBER t1 t2 t3 t4 t5 Decoder Interface Data Input Timing PARAMETER C_FS setup to C_CLK. C_FS hold from C_CLK. C_DATA[0] setup to C_CLK. C_DATA[0] hold from C_CLK. D_CS_N setup to C_CLK rising edge that C_FS is asserted. MIN MAX UNITS 5 3 5 3 ns ns ns ns 9 ns NOTES Notes: 1) C_ACPT is driven from an internal clock domain. There is no timing relationship between C_CLK and C_ACPT. The function of C_ACPT is to indicate that the encoder can accept a block of data. C_ACPT deasserts following the first data transfer or after a configuration read is started. 2) There is no timing relationship between C_CLK and SYSCLK. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 45 of 57 Figure 32: Encoder Interface Data Output Timing Using Chip Select E_CLK (input) t1 E_FS t2 HIGH-Z HIGH-Z (output) t6 E_DATA t2 HIGH-Z first typical HIGH-Z last (output) t3 t1 t7 E_RDY (output) t5 t4 E_CS_N (input) Table 14: Encoder Interface Data Output Timing Using Chip Select NUMBER PARAMETER t1 E_FS, E_DATA delay from E_CLK. E_FS, E_DATA valid from E_CLK following E_CS_N asserted. E_FS, E_DATA hold from E_CLK. E_RDY delay from E_CLK. E_CS_N setup to E_CLK. last E_DATA read to E_CS_N deasserted. E_CS_N asserted to E_FS, E_DATA valid. E_CS_N deasserted to E_FS, E_DATA tristate. t1 t2 t3 t4 t5 t6 t7 MIN MAX UNITS 11 ns 11 ns 1 11 9 5 11 8 ns ns ns SYSCLK ns ns NOTES 1 1 Notes: 1) It is valid for E_CS_N to always be asserted. 2) There is no timing relationship between E_CLK and SYSCLK. Page 46 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 Figure 33: Encoder Interface Data Ouput Timing E_CLK (input) t1 t2 E_FS (output) t2 E_DATA first typical last (output) t1 t1 E_RDY (output) E_CS_N (input) Table 15: Encoder Interface Data Output Timing NUMBER PARAMETER t1 E_FS, E_RDY, E_DATA delay from E_CLK. E_FS, E_RDY, E_DATA valid from E_CLK following E_CS_N asserted. E_FS, E_DATA hold from E_CLK. E_RDY delay from E_CLK. t1 t2 t3 MIN MAX UNITS 11 ns 11 ns 11 ns ns 1 NOTES 1 Notes: 1) It is valid for E_CS_N to always be asserted. 2) There is no timing relationship between E_CLK and SYSCLK. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 47 of 57 Figure 34: Decoder Interface Data Output Timing Using Chip Select D_CLK (input) t1 D_FS t2 HIGH-Z HIGH-Z (output) t6 D_DATA t2 HIGH-Z first typical HIGH-Z last (output) t3 t1 t7 D_RDY (output) t5 t4 D_CS_N (input) Table 16: Decoder Interface Data Output Timing Using Chip Select NUMBER PARAMETER t1 D_FS, D_DATA delay from D_CLK. D_FS, D_DATA valid from D_CLK following D_CS_N asserted. D_FS, D_DATA hold from D_CLK. D_RDY delay from D_CLK. D_CS_N setup to D_CLK. last D_DATA read to D_CS_N deasserted. D_CS_N asserted to D_FS, D_DATA valid. D_CS_N deasserted to D_FS, D_DATA tristate. t1 t2 t3 t4 t5 t6 t7 MIN MAX UNITS 11 ns 11 ns 1 11 9 5 11 8 ns ns ns SYSCLK ns ns NOTES 1 1 Notes: 1) It is valid for D_CS_N to always be asserted. 2) There is no timing relationship between D_CLK and SYSCLK. Page 48 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 Figure 35: Decoder Interface Data Output Timing D_CLK (input) t1 t2 D_FS (output) t2 D_DATA first typical last (output) t1 t1 D_RDY (output) D_CS_N (input) Table 17: Decoder Interface Data Output Timing NUMBER PARAMETER t1 D_FS, D_RDY, D_DATA delay from D_CLK. D_FS, D_RDY, D_DATA valid from D_CLK following D_CS_N asserted. D_FS, D_DATA hold from D_CLK. D_RDY delay from D_CLK. t1 t2 t3 MIN MAX UNITS 11 ns 11 ns 11 ns ns 1 NOTES 1 Notes: 1) It is valid for D_CS_N to always be asserted. 2) There is no timing relationship between D_CLK and SYSCLK. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 49 of 57 11.5 BUS INTERFACE Figure 36: Encoder Bus Interface Data Input Timing U_WR_N (input) t2 t1 t3 U_DATA (input) configuration data U_ACPT (output) t4 E_CS_N (input) Table 18: NUMBER t1 t1 t2 t3 t4 Encoder Bus Interface Data Input Timing PARAMETER U_WR_N frequency with PLLBYPASS = 0. U_WR_N frequency with PLLBYPASS = 1. U_DATA setup to U_WR_N rising edge. U_DATA hold from U_WR_N rising edge. E_CS_N valid before U_WR_N strobe rising edge. MIN MAX UNITS NOTES SYSCLK SYSCLK/4 2, 3 2, 3 5 3 MHz MHz ns ns 9 ns Notes: 1) U_ACPT is driven from an internal clock domain. There is no timing relationship between U_WR_N and U_ACPT. The function of U_ACPT is to indicate that the encoder can accept a block of data. U_ACPT deasserts following the first data transfer or after a configuration read is started. 2) There is no timing relationship between U_WR_N and SYSCLK. 3) U_WR_N is used internally as a clock. U_WR_N must not glitch. Page 50 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 Figure 37: Decoder Bus Interface Data Input Timing C_WR_N (input) t2 t1 t3 C_DATA (input) configuration data C_ACPT (output) t4 D_CS_N (input) Table 19: Decoder Bus Interface Data Input Timing NUMBER PARAMETER t1 t1 t2 t3 t4 C_WR_N frequency with PLLBYPASS = 0. C_WR_N frequency with PLLBYPASS = 1. C_DATA setup to C_WR_N rising edge. C_DATA hold from C_WR_N rising edge. D_CS_N valid before C_WR_N strobe rising edge. MIN MAX UNITS NOTES SYSCLK SYSCLK/4 MHz MHz ns ns ns 2, 3 2, 3 5 3 9 Notes: 1) C_ACPT is driven from an internal clock domain. There is no timing relationship between C_CLK and C_ACPT. The function of C_ACPT is to indicate that the encoder can accept a block of data. C_ACPT deasserts following the first data transfer or after a configuration read is started. 2) There is no timing relationship between C_WR_N and SYSCLK. 3) C_WR_N is used internally as a clock. C_WR_N must not glitch. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 51 of 57 Figure 38: Encoder Bus Interface Data Output Timing E_RD_N (input) t1 E_DATA t2 t3 HIGH-Z (output) t4 E_RDY (output) t5 E_CS_N (input) Table 20: Encoder Bus Interface Data Output Timing NUMBER t1 t1 t2 t3 t4 t5 PARAMETER MIN E_RD_N frequency with PLLBYPASS = 0. E_RD_N frequency with PLLBYPASS = 1. E_DATA valid from E_RD_N falling edge. E_DATA hold from E_RD_N rising edge. E_RDY delay from E_RD_N rising edge. E_CS_N setup to E_RD_N rising edge. 1 MAX UNITS NOTES SYSCLK SYSCLK/4 11 5 11 MHz MHz ns ns ns ns 1, 2 1, 2 MAX UNITS NOTES SYSCLK SYSCLK/4 11 5 11 MHz MHz ns ns ns ns 1, 2 1, 2 9 Notes: 1) There is no timing relationship between E_RD_N and SYSCLK. 2) E_RD_N is used internally as a clock. E_RD_N must not glitch. Figure 39: Decoder Bus Interface Data Output Timing D_RD_N (input) t1 D_DATA t2 t3 HIGH-Z (output) t4 D_RDY (output) t5 D_CS_N (input) Table 21: Decoder Bus Interface Data Output Timing NUMBER PARAMETER t1 t1 t2 t3 t4 t5 D_RD_N frequency with PLLBYPASS = 0. D_RD_N frequency with PLLBYPASS = 1. D_DATA valid from D_RD_N falling edge. D_DATA hold from D_RD_N rising edge. D_RDY delay from D_RD_N rising edge. D_CS_N setup to D_RD_N rising edge. MIN 1 9 Notes: 1) There is no timing relationship between D_RD_N and SYSCLK. 2) D_RD_N is used internally as a clock. D_RD_N must not glitch. Page 52 of 57 A subsidiary of Comtech Telecommunications Corporation PS4522_0104 11.6 RESET_N TIMING Figure 40: RESET_N Timing VDD x_CLK t2 t1 RESET_N Table 22: RESET_N Timing NUMBER PARAMETER t1 RESET_N pulsewidth with E_MODE = 1, D_MODE = 1, and PLLBYPASS = 0. RESET_N pulsewidth with E_MODE = 1, D_MODE = 1, and PLLBYPASS = 1. RESET_N pulsewidth with E_MODE = 0 or D_MODE = 0. PLL lock time t1 t1 t2 MIN MAX UNITS NOTES 10 SYSCLK 40 SYSCLK 10 TxCLK 1,2,3,4 us 5 10 Notes: 1) If E_MODE = 0 and PLLBYPASS = 0, TxCLK is the period of the lowest frequency of U_CLK, E_CLK and SYSCLK. 2) If E_MODE = 0 and PLLBYPASS = 1, TxCLK is the period of the lowest frequency of U_CLK, E_CLK and SYSCLK/4. 3) If D_MODE = 0 and PLLBYPASS=0, TxCLK is the period of the lowest frequency of C_CLK, D_CLK and SYSCLK. 4) If D_MODE = 0 and PLLBYPASS=1, TxCLK is the period of the lowest frequency of C_CLK, D_CLK and SYSCLK/4. 5) SYSCLK must be running for 10us to lock the internal PLL before RESET_N is asserted. PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 53 of 57 12.0 PACKAGE SPECIFICATIONS 12.1 PACKAGE DIMENSIONS Figure 41: Package Dimensions - Top View D D1 P 49 50 B AHA4522A 031 PTC (LCA) E1 E LLLLL YYWWD 63 64 15 16 (LCB) Note: YYWWD = Date Code; LLLLL = Lot Number Figure 42: Package Dimensions - Cross Section View A A2 A L Page 54 of 57 A subsidiary of Comtech Telecommunications Corporation A1 PS4522_0104 Table 23: TQFP (Thin Quad Flat Pack) 7 x 7 mm Package Dimensions (All dimensions are in mm) NUMBER OF PIN AND SPECIFICATION DIMENSION 64 SYMBOL MIN (LCA) (LCB) A A1 A2 D D1 E E1 L P B Notes: NOM 16 16 1.1 0.1 1.0 9.0 7.0 9.0 7.0 0.60 0.40 0.18 0.05 0.95 0.45 0.13 MAX 1.2 0.15 1.05 0.75 0.23 All dimensions are in millimeters More detailed mechanical information is available upon request 13.0 ORDERING INFORMATION 13.1 AVAILABLE PARTS PART NUMBER DESCRIPTION AHA4522A-031 PTC Astro LE 2K Block Turbo Product Code Encoder/Decoder 13.2 PART NUMBERING AHA 4522 A- 031 P T C Manufacturer Device Number Revision Level Speed Designation Package Material Package Type Test Specification Device Number: AHA4522 Revision Letter: A Speed Designation: 31 MHz operating frequency Package Material Codes: P Plastic Package Type Codes: T Thin Quad Flat Pack Test Specifications: C Commercial PS4522_0104 0°C to +70°C A subsidiary of Comtech Telecommunications Corporation Page 55 of 57 14.0 RELATED TECHNICAL PUBLICATIONS DOCUMENT # PB4501 PB4501EVM PB4501EVSW PB4522 PB4524 PB4540 PBGALAXY PBGALAXY_STK PS4501 PS4540 ANTPC01 ANTPC02 ANTPC03 ANTPC04 ANTPC05 ANTPC06 ANTPC07 ANTPC08 TPCEVAL Page 56 of 57 DESCRIPTION AHA Product Brief – AHA4501 Astro 36 Mbits/Sec Turbo Product Code Encoder/Decoder AHA Product Brief – AHA4501 TPC EVM ISA Evaluation Module AHA Product Brief – AHA4501 TPC Windows Evaluation Software AHA Product Brief – AHA4522 Astro LE 2K Block Turbo Product Code Encoder/Decoder AHA Product Brief – AHA4524 Astro LE 4K Block Turbo Product Code Encoder/Decoder AHA Product Brief – AHA4540 Astro OC-3 155 Mbits/Sec Turbo Product Code Encoder/Decoder AHA Product Brief – Galaxy Core Generator Turbo Product Code Decoder Cores AHA Product Brief – AHA Galaxy Simulation Tool Kit AHA Product Specification – AHA4501 Astro 36 Mbits/Sec Turbo Product Code Encoder/Decoder AHA Product Specification – AHA4540 Astro OC-3 155 Mbits/Sec Turbo Product Code Encoder/Decoder AHA Application Note – Primer: Turbo Product Codes AHA Application Note – Use and Performance of Shortened Codes with the AHA4501 TPC Encoder/Decoder) AHA Application Note – Turbo Product Code Encoder/Decoder with Quadrature Amplitude Modulation (QAM) AHA Application Note – Use and Performance of the AHA4501 TPC Encoder/ Decoder with Differential Phase Shift Keying (DPSK) AHA Application Note – AHA4501 Turbo Product Code Encoder/Decoder Designers Guide AHA Application Note – AHA4501 Turbo Product Code Encoder/Decoder Frequently Asked Questions (FAQ) AHA Application Note – Turbo Product Codes for LMDS AHA Application Note – Using Multiple AHA4501 Devices in Parallel for Higher Data Rates AHA Evaluation Software – Turbo Product Codes - Windows Evaluation Software A subsidiary of Comtech Telecommunications Corporation PS4522_0104 APPENDIX A: VAD RECOMMENDATIONS Analog Power Supply Filter for PLL usage The analog power supply for the internal PLL (Vad) ideally comes from an analog power supply having low pass filter characteristics of -3dB at < 1KHz, and < -70dB in the absorption band. Actual component selection will limit the -3dB point and good board layout is vital to achieving good high frequency absorption. An R-C or R-L-C filter can be used, with the “C” being composed of multiple devices to achieve a wide spectrum of noise absorption. For DC reasons the series resistance of this filter should be limited. There should be considerably less than 5% voltage drop across the resistor under worst-case conditions. High quality series inductors should be used with a series resistor to prevent a high gain series resonator from being created. For the low-frequency cutoff an electrolytic capacitor should be used in the filter design. The filter also needs to sustain its attenuation into high frequencies, (e.g. > 100 MHz), so additional nonelectrolytic capacitance should be added in parallel. All leads of the high frequency capacitor(s) should be kept short. This includes the board wires, vias, and component leads, and within the component package (so select the component carefully). Board layout around the high-frequency capacitance and the path from there to the pads is critical. It is vital that the quiet ground and power are treated like analog signals. The power (Vad) path must be a single trace from the IC package pin to the high frequency capacitance, then to the low frequency capacitance, then through the series element (e.g. resistor) then to board power (Vdd). The distance from the IC pin to the high frequency cap should be kept as short as possible. Figure A1: The ground (AGND) path should be from the IC pin to the high frequency capacitance, to the low frequency capacitance, with the distances being very short. The PLL has the DC ground connection made on chip, so the external Gnd pin must not be connected to PCB ground, but only to the power supply filter. The power and ground traces should be run close and parallel as far as possible, with large spacing between adjacent traces. This will help minimize noise, especially non common-mode noise The power loop consisting of the high frequency capacitor, Vad and Gnd traces to the IC, and the IC itself must be designed to keep area and impedance to a minimum. Layout the board to enable the total analog power circuit to be small with short and adjacent wire traces. No extra connections should be made to board power planes; only connect as described above. Care should be exercised in component selection to insure that there are no resonant absorptions or resonant non-absorptions throughout the attenuating frequency range,. This means that the series element will either be a resistor or a very poor (i.e. resistive) inductor. For a series element with high impedance (eg. 100 ohms), the electrolytic is often chosen as the biggest capacitance tantalum available which fits reasonably on the board (e.g. 25uF). Similarly, the other capacitor is typically the largest value high frequency capacitor available in a small package (e.g. 100nF). Example Schematic This schematic represents an example of both the circuit and the device placement. Actual component values may be different. Example External Circuit Component Configuration 100 Ω Vad Vdd Board 25µF 100nF Chip AGND PS4522_0104 A subsidiary of Comtech Telecommunications Corporation Page 57 of 57