comtech aha corporation ADVANCED* Product Specification AHA4540 Astro OC-3 155 Mbits/sec 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.. PS4540_1202 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 Frame Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.0 Encoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1 Data Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 CRC Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 Scrambler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.4 TPC Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.5 Modulation Symbol Interleaving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.6 Helical Interleaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.7 Frame Sync Mark Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.8 Symbol Mapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.0 Decoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1 Data Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 Channel Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2.1 Channel Input Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2.2 Input Symbol Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2.3 Soft Metric Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2.4 LLR Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2.5 Frame Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3 TPC Decoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3.1 Helical Deinterleaver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3.2 Code Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3.3 Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3.4 Code Shortening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.4 Modulation Symbol Deinterleaving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.4.1 Code Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.4.2 Decoder Data Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.4.3 Data Rate Calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.4.4 Decoder Latency Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.4.5 Corrections Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5 Decoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5.1 Packet Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5.2 Descrambler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5.3 CRC Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.0 Data Flow Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.1 Data Input Transfers vs. Data Output Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.1.1 xTransfers with xBlockMode = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.1.2 xTransfers with xBlockMode = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2 Flow Control Disabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.3 Internal Buffering Enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.4 Flow Control via Handshaking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.5 Flow Control via Clock Frequency Synthesis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.6 Decoder Data Buffer with Variable Iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.0 Clocking Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.1 Frequency Synthesizer Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.0 General Output Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 8.0 Microprocessor Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 9.0 Register Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 9.1 Configuration Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation i comtech aha corporation 9.2 9.3 9.4 9.5 10.0 11.0 12.0 13.0 14.0 ii Encoder Rapid Code Reconfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Decoder Rapid Code Reconfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Register List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 User Data Formatting Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 9.5.1 Packet Configuration (EPACKCON0-3, DPACKCON0-3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 9.5.2 CRC Configuration (ECRCCON0-4, DCRCCON0-4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.5.3 Scrambler Configuration (ESCRAMCON0-4, DSCRAMCON0-4) . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.5.4 CRC Failure Threshold (DCRCTHRSH). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 9.6 Code Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 9.6.1 TPC Constituent Code (ETPCCODE0-1, DTPCCODE0-1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 9.6.2 Shortening Configuration (ESHORTCON0-4, DSHORTCON0-4) . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.6.3 Feedback (DFEEDBCK0-3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.6.4 Iterations (DITER). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.7 Channel Interface Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 9.7.1 Frame Synchronization Mark Configuration (EFRMSYNC0-7, DFRMSYNC0-7) . . . . . . . . . . . . . . 47 9.7.2 Encoder Symbol Mapping (ENCMAP0-1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.7.3 Decoder Modulation Format (DECMOD0-3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.7.4 Decoder Synchronization Control (DECSYNC0-3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 9.8 Data Input/Output Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 9.8.1 Data Flow Configuration (EDATACON0-7, DDATACON0-7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 9.8.2 Buffer Configuration (EBUFCON, DBUFCON0-1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 9.8.3 Signal Polarity (POLARITY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 9.9 Control and Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9.9.1 Control (ECONTROL, DCONTROL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9.9.2 Status (STATUS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 9.9.3 General Output (OUTPUT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 9.9.4 Correction Count (DCORRCNT0-1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.9.5 Interrupt (INTERRUPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.9.6 Interrupt Mask (INTMASK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.10 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.10.1 Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 10.1 System Control and Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 10.2 Microprocessor Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 10.3 Unencoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 10.4 Encoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 10.5 Channel Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 10.6 Decoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 DC Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 12.1 Operating Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 12.2 Absolute Maximum Stress Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 12.3 Test Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 AC Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 13.1 DPCLK Clock Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 13.2 ECLK, UCLK, CCLK, DCLK, and EPCLK CLOCK Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 13.3 Unencoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 13.4 Encoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 13.5 Channel Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 13.6 Decoded Data Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 13.7 Microprocessor Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 13.8 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Package Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 14.1 Package Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 15.0 Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 15.1 Available Parts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 15.2 Part Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 16.0 Related Technical Publications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation iii comtech aha corporation 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 43: Figure 44: Figure 45: Figure 46: Figure 47: Figure 48: Figure 49: Figure 50: Figure 51: Figure 52: Figure 53: Figure 54: iv Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Frame Structure (xBlockMode = 0, Stream Mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Frame Structure (xBlockMode = 1, Block Mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Encoder Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 CRC Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Scrambler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Input Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2D Interleaving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Encoded/Interleaved Data Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Decoder Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Channel Interface Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Mode 0 or Mode 1 Input Data Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Mode 2 Input Data Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Mode 3 Input Data Wiring Up to 4 Bits Per Symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Mode 3 Input Data Wiring Greater than 4 Bits Per Symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 QPSK Symbol Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8-PSK Symbol Definition (PreRotate=0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8-PSK Symbol Definition (PreRotate=1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 16 QAM Symbol Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 64 QAM Symbol Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 256 QAM Symbol Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 LLR Normalization with 16-QAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Structure of Shortened Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Structure of Shortened 3D Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Decoded Data Interface Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Flow Control Frame Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Flow Control Disabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Handshake with Channel Interface Master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Decoder Clock Frequency Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Frequency Synthesizer Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Encoder Rapid Code Reconfiguration with Helical Interleaving Disabled . . . . . . . . . . . . . . . . . . . . . . . . 32 Encoder Rapid Code Reconfiguration with Helical Interleaving Enabled . . . . . . . . . . . . . . . . . . . . . . . . 32 Decoder Rapid Code Reconfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Signal Timing vs. Output Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 DPCLK Clock Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ECLK, UCLK, CCLK, DCLK, and EPCLK Clock Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Unencoded Data Interface – Data Input Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Encoded Data Interface – Data Output Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Channel Symbol Input Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Decoded Data Interface – Data Output Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . 73 Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . 74 Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=1 . . . . . . . . . . . . . . . . . . . . . . . 75 Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=1 . . . . . . . . . . . . . . . . . . . . . . . 76 Microprocessor Interface Timing (Write); PROCMODE=1, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . 77 Microprocessor Interface Timing (Read); PROCMODE=1, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . 78 Interrupt Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 RESETN Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 GOUT, ROTATE Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Flow Control Timing (xCLKADJ Mode = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Flow Control Timing (xCLKADJ Mode = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Package Dimensions - Top View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Package Dimensions - Cross Section View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 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: Table 24: PS4540_1202 Recommended CRC Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Partial Code List and Performance at 155 Mbit/sec Data Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Partial Code List and Achievable Data Rate (Payload) at Various Iterations . . . . . . . . . . . . . . . . . . . . . . . 19 Register Bits - Alphabetical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Register Description by Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Pinout - Pin Number Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 DPCLK Clock Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ECLK, UCLK, CCLK, DCLK, and EPCLK Clock Timings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Unencoded Data Interface – Data Input Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Encoded Data Interface – Data Output Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Channel Symbol Input Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Decoded Data Interface – Data Output Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . . 73 Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . . 74 Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=1 . . . . . . . . . . . . . . . . . . . . . . . . 75 Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=1 . . . . . . . . . . . . . . . . . . . . . . . . 76 Microprocessor Interface Timing (Write); PROCMODE=1, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . . 77 Microprocessor Interface Timing (Read); PROCMODE=1, MUXMODE=0 . . . . . . . . . . . . . . . . . . . . . . . . 78 Interrupt Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 RESETN Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 GOUT, ROTATE Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Flow Control Timing (xCLKADJ Mode = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Flow Control Timing (xCLKADJ Mode = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 MQFP (Metric Quad Flat Pack) 28 x 28 mm Package Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation v comtech aha corporation 1.0 INTRODUCTION AHA Astro OC-3, is a single-chip Turbo Product Code (TPC) Forward Error Correction (FEC) Encoder/Decoder capable of 155 Mbit/sec (OC-3) data rates. This device integrates both a TPC encoder and decoder, and can be operated in a full duplex mode. In addition to TPC coding, support is included for helical interleaving, synchronization mark insertion and detection, CRC computation, scrambling, and higher order modulation symbol mapping. Figure 1 shows the functional block diagram. The channel interface supports direct connection to various modulators and demodulators. Support for an arbitrary constellation mapping is included with external logic. The encode path accepts byte-wide data, computes and inserts a CRC, and scrambles the data before TPC encoding. After the error correction code (ECC) bits are inserted by the encoder, the data is helically interleaved, and block synchronization marks are inserted to assist the decoder. Finally, the data is mapped according to the constellation and output from the device. The decoder accepts input symbols via the demodulated in-phase (I) and quadrature (Q) components. An internal block synchronizer searches for synchronization marks, rotating the input symbol phase as necessary. After synchronization is achieved, the data is helically deinterleaved and decoded by the TPC decoder. The output of the decoder is descrambled, and the CRC is computed to verify data integrity. Decoded data is output in a parallel, byte-wide fashion. Each of the above described functions can be disabled for support of user-defined data formatting schemes. Internal circuitry enables the transfer rate across all ports, generating a constant, non-burst data flow. In addition, control of an external VCO can be used to generate data clocks, greatly simplifying system clocking issues. PS4540_1202 1.1 FEATURES CHANNEL INTERFACE: • Accepts in-phase and quadrature (I & Q) inputs, up to 8 bits each • High data rate input bus supports direct input of soft metrics at up to 4 soft metrics of 4 bits each • Internal support for BPSK, QPSK, 8-PSK, 16QAM, 64-QAM, and 256-QAM modulations • Supports additional modulation formats with external logic • Symbol rates up to 43 MSym/sec • Channel rates up to 174 Mbit/sec • Automatic phase ambiguity resolution • Automatic mapping from input symbol to decoder soft metric • Encoder and decoder pass through modes • Built in synchronization mark insertion and detection for sync marks up to 32 bits TPC ENCODER/DECODER: • Block Sizes up to 16 Kbits • Code Rates from 1/4 to 0.98 • Buffering to support variable iterations per block • Payload rates of at least 155 Mbit/sec for all codes of rate 0.90 and above. • Supports enhanced Turbo Product Codes • Corrections count and averaging for channel SNR estimation DATA INTERFACE: • 8-bit Parallel Data Input/Output • Programmable CRC Insertion and Checking up to 32 bits • Support for packet level synchronization • Flow control to generate constant data input/ output. • Support for external VCO to generate data clocks. MICROPROCESSOR INTERFACE: • Selectable microprocessor interface for Intel or Motorola processors Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 1 of 83 comtech aha corporation 1.2 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. GLOSSARY OF TERMS Packet – A group of user data bits. Block (TPC) – A TPC error correction block, including user data bits (1 or more packets), CRC bits, and TPC error correction bits. Sync Mark/Bits – Bits inserted in the data stream to allow location of the beginning of a TPC block. Frame – An entire group of data bits, including user data, CRC, error correction, and synchronization bits. Channel Rate The bit rate output from the encoder, or input to the decoder, including all frame bits. 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 EBlockMode and DBlockMode. – Interrupt - Register bit that provides status. – Hex values are represented with a prefix of “0x,” such as Register “0x00.” Binary values are represented with a prefix of “0b”. Functional Block Diagram EPCLK Figure 1: 1.3 URDY UACPT UCLKADJ[2:0] UDATA[7:0] UNENCODED DATA INTERFACE TPC ENCODER ENCODED DATA INTERFACE ERDY EACPT ESTART EEND EDATA[7:0] or I[3:0]/Q[3:0] UCLK ECLK DCLK CCLK DRDY DACPT DCLKADJ[2:0] DDATA[7:0] PSTART PEND PERR DECODED DATA INTERFACE TPC DECODER CHANNEL INTERFACE CRDY CACPT CSTART CLSB CDATA[15:0] or I[7:0]/Q[7:0] ROTATE RESETN TRISTATEN Page 2 of 83 DPCLK MDATA[7:0] MUXMODE PROCMODE MCSN MA[2:0] MRDN_DSN MWRN_RWN MALE MINTN_INTR MRDY_DTACKN MICROPROCESSOR INTERFACE Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 2.0 FRAME STRUCTURE There are two frame structures supported by the Astro OC-3 decoder. Both contain synchronization marks, TPC error correction bits, CRC bits, and packet data. Figure 2 and Figure 3 show the frame structures supported by the device. Note that other frame structures are handled by disabling the various features within the device (frame synchronization, CRC, etc.), and handling framing in external logic. The construction of the frames will be described by how they are encoded. For each user packet input, a CRC of programmable length is computed over the data field. The resultant CRC value is appended to the data stream. If required, a packet synchronization mark is inserted into the data stream at the beginning of each packet. These packets, including sync and CRC are scrambled (randomized) by summing each bit with the output of a Pseudo Random Binary Sequence (PRBS) generator to ensure adequate bit transitions. The TPC encoder then computes ECC bits, which are inserted into the data stream at the appropriate locations. Finally, a series of block synchronization marks are added to the data stream. These marks will allow the decoder to detect the beginning of the TPC block. To decrease the required synchronization time, sync marks are placed throughout the TPC block, with inverted sync marks placed at the beginning of the block, as shown in Figure 2. Each of the above described functions can be disabled for support of user defined data formatting schemes. Figure 2 gives a diagram of a 2-dimensional TPC frame structure with xBlockMode = 0. This structure (hereafter called Stream Mode) is optimum for streaming systems that do not require data packets to line up with ECC blocks. For example, broadcast video transmissions have an MPEG data packet size of 188 bytes. The ECC block size can be much larger than this packet size, giving better error correction performance. However, the CRC must be computed over each packet so that the MPEG packet error signal can be generated. Note that since the TPC data section may not be equal to an integer multiple number of data packets, a given packet may straddle two adjacent TPC blocks, as shown in the figure. The alignment of data packets is handled in the decoder by PS4540_1202 synchronizing to the packet sync marks. One drawback to this method is that extra sync marks are required to determine the beginning of a user data packet within the decoded frame (these marks are denoted as PSM in the figure). In addition, the scrambler is reset at the beginning of a group of packets. This is indicated by an inverted packet synchronization mark. Figure 3 gives a diagram of the same TPC block with xBlockMode = 1. This structure (hereafter called Block Mode) is designed for block systems, such as systems that perform ARQ, or systems with frame level modulation (DMT). In these cases, a single data packet is encoded with CRC and TPC, and transmitted by itself. Using this mode, there is no need for packet synchronization marks, as the CRC and scrambler are reset at the beginning of each TPC block. When using Block Mode, the user data section of the TPC block must be a multiple of 8 bits. However, depending on system issues, this constraint may not be met. In these cases, pad bits are inserted after the user data and CRC bits to fill out the entire uncoded TPC section. Similarly, with both frame modes, the length of the encoded TPC block may not line up with the synchronization mark configuration, requiring pad bits to be placed before the inverted sync mark of each block. All required pad bits are automatically inserted and removed by the device. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 3 of 83 comtech aha corporation Figure 2: Frame Structure (xBlockMode = 0, Stream Mode) IFSM IPSM TPC Block USER PACKET DATA CRC FSM PSM USER PACKET DATA CRC FSM PSM USER PACKET DATA CRC FSM PSM USER PACKET DATA CRC FSM PSM USER PACKET DATA ECC Bits PAD IFSM END OF PREVIOUS USER PACKET CRC PSM USER PACKET DATA IFSM = Inverted Frame Sync Mark FSM = Frame Sync Mark IPSM = Inverted Packet Sync Mark PSM = Packet Sync Mark Figure 3: Frame Structure (xBlockMode = 1, Block Mode) IFSM TPC Block FSM USER PACKET DATA FSM FSM CRC PAD ECC Bits PAD IFSM USER PACKET DATA IFSM = Inverted Frame Sync Mark FSM = Frame Sync Mark Page 4 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation Figure 4: Encoder Block Diagram User Data HELICAL INTERLEAVER UDATA[7:0] CRC ENCODER & PACKET SYNC INSERTION 3.0 SCRAMBLER PRBS 3.1 Figure 4 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 very low latency. Data is input in a byte-wide fashion across the UDATA[7:0] bus. The first bit location in the TPC block comes in on UDATA[0]. The CRC engine computes a CRC over each packet of data which is inserted at the end of the packet. 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. After interleaving, a programmable sync mark is inserted into the data stream. Finally, the bits are mapped to symbols according to the programmed constellation. The symbols are output over the EDATA[7:0] bus, at a rate of one symbol per clock. The frame structure for the encoder is defined by EBlockMode. When cleared, the encoder operates in Stream Mode, according to Figure 2. When set, the encoder operates in Block Mode, according to Figure 3. SYMBOL MAPPER EDATA[7:0] FRAME SYNC INSERTION TPC ENCODER ENCODER Figure 5: Encoded Data DATA INPUT AND OUTPUT Astro OC-3 supports many data flow control features, described in detail in Section 5.0. All data transfers into the encoder are synchronous to the unencoded data clock, UCLK. When required, handshaking is accomplished via a fully synchronous, ready/accept handshake. Data is transferred across the UDATA[7:0] interface on the rising edge of UCLK when both URDY and UACPT are asserted. Data transfers out of the encoder are synchronous to the encoded data clock, ECLK. Data is transferred across the EDATA[7:0] interface on the rising edge of clock when both ERDY and EACPT are asserted. The ESTART signal is asserted with the first symbol transfer of each frame. This signal is handshaked with the associated signal; i.e., it is asserted when ERDY is asserted with the first transfer, and deasserts the clock after the first symbol is handshaked. 3.2 CRC ENCODER The cyclic redundancy check (CRC) encoder is a 32 bit linear feedback shift register, with a programmable polynomial. Figure 5 shows a diagram of the shift register. Each user data packet has a separate CRC encoded, with the resultant CRC bits appended to the packet. When using Stream Mode, a sync mark must exist in the data stream (EPSyncEnable=1) at the decoder so that packet synchronization can be achieved. This sync mark may either be inserted by the encoder, or it may be generated externally and input with the data stream. When EBlockMode = 1, there is one CRC computed for each TPC block. CRC Encoder ECRCPoly[0:31] Shift Direction PS4540_1202 User Data Comtech AHA is a subsidiary of Comtech Telecommunications Corporation CRC Output Page 5 of 83 comtech aha corporation If a packet synchronization mark insertion is required, the EPSyncInsert bit is set to a 1. If the data already contains a synchronization mark at the beginning of each packet, the CRC encoder must ignore this during encoding. In this case, the EPSyncInsert bit is set to a 0. In both cases, the sync mark can be 4 to 16 bits in length, as configured by EPSyncLength. If inserting sync marks, the value of the sync mark is written into the EPSyncMark register. Note that the scrambler does not scramble the packet synchronization marks. The polynomial for the CRC encoder is written into the ECRCPoly register. The highest order of the polynomial (defined by CRCLength) is assumed to be a 1, and bit zero of the polynomial register corresponds to the 0th order of the polynomial, as shown in Figure 5. 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 polynomial field gives the value to program into the ECRCPoly register. The detection capability gives the probability that an incorrect block will not be detected and flagged as incorrect by the CRC decoder. The shift register is reset at the beginning of each user packet. Data from the packet (excluding the sync mark, if present) is shifted into the circuit, until the number of bytes programmed into EPSize is reached. Note that the value written into EPSize does not include the packet sync mark or CRC bits. After the entire packet 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. When using Block Mode, the sum of the packet data (EPSize x 8) and the CRC bits (ECRCSize) should equal the data size of the TPC packet. This can accomplished via shortening the TPC block. If this is not possible, Astro OC-3 will automatically pad any bits remaining in the block with zeros. For example, if the packet size plus CRC bits is 300 bytes (2400 bits), and the closest achievable TPC data size is 2402 bits, the device will pad zeros in the remaining 2 bit location. Note that these 0 pad bits are inserted before scrambling so as to not affect the required bit transitions. Table 1: The scrambler is built with a 16 bit pseudorandom binary sequence generator with programmable polynomial, length, and initialization seed. Figure 6 shows the configuration of the scrambler. The shift register is clocked once for each bit. As shown in the figure, the output of the shift register is exclusive-ORed with the data to be scrambled. CRC 4 8 12 ANSI CCITT SDLC 24 32A 32B Recommended CRC Polynomials SIZE (bits) 4 8 12 16 16 16 24 32 32 POLY Program Value (hex)* 1f 1d5 180f 18005 11021 1a097 1805101 1404098e2 104c11db7 DETECTION CAPABILITY** 0.9375 0.99609 0.999756 0.999985 0.999985 0.999985 0.9999999404 0.99999999953 0.99999999977 3.3 SCRAMBLER Notes: * The leading ‘1’ in these values is assumed by the device, and does not need to be written to the register. ** This detection capability is the probability that an incorrect block is not marked in error. The probability of a undetected block is computed by multiplying the block error rate by (1 - Detection Capability). Page 6 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation Figure 6: 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 Figure 6 shows an example configuration for the scrambler that follows the DVB standard. The generator polynomial for this sequence is: 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. 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 EScramPer packets, where a value of 0 represents 16. The packet synchronization marks at the beginning of every EScramPer packets are inverted to allow the descrambler to reset at the same point in the data stream as the scrambler. The first bit out of the PRBS is applied to the first data bit after the inverted packet synchronization mark. This inversion does not occur when EScramPer is set to 1, since the scrambler is reset at every sync mark. When using Block Mode or when the scrambler is disabled, EScramPer should by set to 1. Note that the packet synchronization marks are not scrambled by the scrambler. However, when EPSyncInsert = 0, the PRBS shift register continues to shift over the synchronization marks. When EPSyncInsert = 1, the PRBS does not shift over the synchronization marks. PS4540_1202 3.4 TPC ENCODER The TPC encoder supports two or three dimensional codes, with constituent code lengths of up to 128 bits, and overall block size up to 16 K bits. The encoder supports both extended-Hamming and parity only constituent codes, and supports enhanced TPCs. See Section 4.3 TPC Decoder for a description of supported codes and shortening configurations. 3.5 MODULATION SYMBOL INTERLEAVING Modulation symbol interleaving is used to spread the less confident bits in a modulation symbol across all axes of the code so that these less confident bits do not line up in one row, column, or z-column. When using 2D or 3D codes without helical interleaving, EModRowRotate should be set if the shortened X-axis length is a multiple of the symbol size. When using 2D codes with helical interleaving, EModRowRotate should be set if the shortened Y-axis length (including the hyper row, if enabled) is a multiple of the symbol size. When using 3D codes with helical interleaving, EModRowRotate should be set if the shortened Zaxis length (including the hyper plane, if enabled) is a multiple of the symbol size. When using 3D codes without helical interleaving, EModPlaneRotate should be set if the product of the shortened X-axis length and the Yaxis length is a multiple of the symbol size. When using 3D codes with helical interleaving, EModPlaneRotate should be set if the product of the shortened Z-axis length (including the hyper plane, if enable) and the shortened X-axis length is a multiple of the symbol size. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 7 of 83 comtech aha corporation 3.6 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 greatly increases the burst error correcting capability of the code. The helical interleaver is enabled by setting EHelical to a 1. When helical interleaving is enabled, the xShortX, xShortB, and xShortR values must be set to 0. For 3-dimensional codes, xShortY must also be set to 0. This constrains the shortening resolution to one row for 2-dimensional codes, and one plane for 3-dimensional codes. 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(64,57) code. Figure 7: Note: Input Block Figure 8: 2D Interleaving 1 2 4 127 0 1 2 3 ... 64 65 66 67 . . . 127 128 129 130 . . . . . . 191 192 193 . . . ... ... ... ... ... ... ... ... 4032 4033 . . . ... . . . 4095 3 ... 126 63 For the (64,57)x(64,57) block, the data output from the Astro OC-3 is: 0, 65, 130, ..., 4095, 1, 66, ..., 4031, 4032, 2, 67, ..., ..., 63, 64, ..., 4094 for a total of 4096 bits output. The Astro OC-3 operating as a decoder deinterleaves the block to restore it to its original order. Figure 9: Encoded/Interleaved Data Output 0 65 130 . . . 4030 4095 1 66 131 . . . 4031 4032 0 1 2 3 ... 63 2 67 132 . . . 3968 4033 64 65 66 67 . . . 127 3 68 ... ... ... ... 128 129 130 . . . . . . 191 ... ... ... ... ... ... 192 193 . . . ... ... ... 63 64 129 . . . 4029 4094 ... ... ... ... ... ... 4032 4033 . . . ... . . . 4095 Data bits are output from the encoder in row order from left to right. 3D interleaving/ deinterleaving is done by reading/writing cells diagonally through the x, y, and z dimensions. The number reflects the bit order, including generated ECC bits. The encoded, interleaved data output is taken along diagonal lines starting with bit 0 as shown below. The order of the interleaving is noted for each diagonal line. Page 8 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 3.7 FRAME SYNC MARK INSERTION In order for the decoder to acquire block synchronization, a programmable sync mark must be inserted into the data stream before transmission over the channel. Astro OC-3 supports synchronization marks up to 32 bits in length. Synchronization marks are placed at the beginning of each TPC block. In addition, sync marks may be placed throughout the block, with inverted sync marks placed at the beginning of each TPC block. This accelerates the synchronization process when using large TPC block sizes. The sync mark length is written into the EFSyncLength register. A value of 0 disables sync mark insertion. The sync period is the number of bits from the start of a sync mark to the start of the next sync mark. This is written into EFSyncPer. Sync marks can be placed throughout a TPC block, with inverted sync marks placed at the beginning of the TPC block. When using this feature, the total number of sync periods containing one inverted sync mark is written into EFSyncFreq. If only one sync mark is to be used per block, EFSyncFreq is written to 1. In this case, the sync mark at the beginning of the block is a non-inverted mark. EFSyncPer × EFSyncFreq should be set equal to or greater than the TPC block size. If it is greater than the TPC block size, the encoder will automatically pad the remaining locations with zeros. Note that these pad bits are not scrambled, and therefore the number of pad bits should be kept to a minimum. PS4540_1202 3.8 SYMBOL MAPPER Symbol data is handshaked out of the device over the EDATA[7:0] bus. The format for this output bus is fully configurable using an internal lookup table. Data out of the encoder is grouped into symbols of size ESymSize bits. If the symbol map is disabled, each symbol is output to the EDATA[ESymSize-1:0] bus. The symbol mapper is enabled by setting ESymMapEnable. The symbol map lookup table is a 256 x 8 bit lookup table. Each location in the table can be programmed to a user defined value. After encoding and grouping into symbols, a lookup is made into the symbol mapper table. The value stored at the addressed location is then output to the EDATA[7:0] bus. For example, when using 16 QAM, EDATA[7:4] can be configured as the I component, and EDATA[3:0] can be configured as the Q component. When using a QAM modulator that has its own internal symbol mapper that does not match what the Astro OC-3 decoder expects, the symbol map table can be used to translate between what the modulator produces and what Astro OC-3 expects. It can also be used to ‘pre-distort’ the signal constellations for non-linear channels. The symbol map table is programmed by writing the value for each location into the ESymMap register. The address written is determined by an internal pointer that is reset to the beginning of the table at power-up, or by writing the ResetMapPtr bit to a 1. The pointer increments for each write to the ESymMap register. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 9 of 83 comtech aha corporation 4.0 DECODER The decode path of Astro OC-3 includes a counterpart for each encode module as shown in Figure 10. The encoder and decoder are isolated paths. This allows full duplex operation, where the encoder and decoder are operating with different frame structures, code types, and data rates. Figure 10: Decoder Block Diagram Channel Data CHANNEL FORMATTING CDATA[15:0] (Mode[1:0]) DDATA[7:0] FRAME SYNCHRONIZATION LLR CRC DETECTOR HELICAL DEINTERLEAVER PACKET SYNCHRONIZATION TPC DECODER PRBS Descrambler 4.1 DATA INPUT AND OUTPUT Astro OC-3 supports many data flow control features, described in detail in Section 5.0. The decoder channel input bus is synchronous to CCLK. Data is transferred across the CDATA[15:0] bus on the rising edge of CCLK when both CRDY and CACPT are asserted. The decoded data output bus is synchronous to DCLK. Data is transferred across the DDATA[7:0] bus on the rising edge of DCLK when both DRDY and DACPT are asserted. 4.2 CHANNEL INTERFACE The channel interface formats the channel data for decoding by the Turbo Product Code decoder. For best decoder performance, soft (confidence) information from the channel is necessary. When using BPSK/QPSK, this information comes directly from the in-phase (I) or quadrature (Q) component of the received symbol. However, when using higher-order modulations, the soft metrics for each bit in the constellation must be computed. This is accomplished using the Log-Likelihood Ratio (LLR). In addition to soft metric generation, the TPC decoder must know the location of the first bit of a TPC block. This is accomplished in the channel interface by searching through the input bit stream for the predefined synchronization marks. The channel interface is designed to connect directly to the in-phase and quadrature (I & Q) outputs of a demodulator for internal soft metric computation. These inputs must be digitized, either with the use of a digital demodulator, or by an external Analog to Digital (A/D) Convertor. Alternately, metric computation can be done externally, in which case the internal computation is bypassed. The channel interface is broken up into four major functions: channel input formatting, input symbol rotation, soft metric computation, and synchronization. Figure 11 shows a block diagram of the channel interface. Figure 11: Channel Interface Block Diagram Soft Metrics For All Symbol Bits From Channel CDATA[15:0] CLSB ROTATE Page 10 of 83 INPUT FORMAT PHASE ROTATION I Q LLR FOR SOFT METRIC COMPUTATION Sync SYNCHRONIZATION Data Rotate Phase Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation CHANNEL INPUT FORMATTING There are four modes of input formatting, defined by ChannelFormat[1:0]. Mode 0 (ChannelFormat = 0b00) is used when the modulation format is 8-PSK, 16-QAM, 64-QAM, or 256-QAM, and the internal LLR generation logic is enabled. The data input is expected to be one inphase (I) and one quadrature (Q) channel. The number format is determined by QMode. The DSymSize register must be set to according to the chosen modulation. The number of bits input for each channel (I or Q) is written into QBit. The following diagram shows the wiring for mode 0. Figure 13: Mode 2 Input Data Wiring Second Channel Symbol Q1[2:0] CDATA[15] CDATA[14:12] I1[2:0] CDATA[11] CDATA[10:8] Astro OC-3 First Channel Symbol CDATA[7] CDATA[6:4] CDATA[3] CDATA[2:0] Q0[2:0] I0[2:0] Figure 12: Mode 0 or Mode 1 Input Data Wiring Q[4:0] CDATA[15] CDATA[14] CDATA[13] CDATA[12:8] Astro OC-3 I[4:0] CDATA[7] CDATA[6] CDATA[5] CDATA[4:0] Qbits = 5 Mode 1 (ChannelFormat = 0b01) is identical to mode 0, but is used for BPSK or QPSK modulation. The wiring is shown in Figure 12 for the case where Qbits is set to 5. If higher data rates are required, mode 3 should be used for binary (BPSK) modulation formats, and mode 2 for QPSK modulation formats. Mode 2 (ChannelFormat = 0b10) is used for high data rate QPSK systems. The data input is expected to be the in-phase (I) and quadrature (Q) components of two channel symbols. The number format is determined by QMode. The DSymSize register must be set to 0b011. The number of bits input for each channel is written into QBit, with a maximum of 4 bits per channel. Figure 13 shows the wiring for mode 2. PS4540_1202 Qbits = 3 Mode 3 (ChannelFormat = 0b11) is used for higher order modulations with external soft metric computation and symbol rotation. The number format and bits are configured by QMode and QBits, respectively. In this mode, the maximum number of soft bits per metric is 4. The number of data bits per constellation symbol is written into the DSymSize register. For modulations up to 4 bits per symbol, all metrics for the symbol are input with one transfer. The wiring for this case is shown in Figure 14 with 4 bits per symbol. Figure 14: Mode 3 Input Data Wiring Up to 4 Bits Per Symbol CDATA[15] CDATA[14] CDATA[13] CDATA[12] Third Soft Metric SM2[1:0] Second Soft Metric SM1[1:0] First Soft Metric SM0[1:0] CDATA[11] CDATA[10] CDATA[9:8] CDATA[7] CDATA[6] CDATA[5:4] CDATA[3] CDATA[2] CDATA[1:0] Astro OC-3 4.2.1 Qbits = 2 Modulation = 2 (3 metrics per symbol) Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 11 of 83 comtech aha corporation Seven Soft Metrics SM0 is first, SM6 is last Figure 15: Mode 3 Input Data Wiring Greater than 4 Bits Per Symbol SM6[3:0] SM5[3:0] SM4[3:0] SM3[3:0] SM2[3:0] SM1[3:0] SM0[3:0] CDATA[15:12] 0 CDATA[11:8] 1 Astro OC-3 0 CDATA[7:4] 1 0 1 CDATA[3:0] CLSB Qbits = 4 Modulation = 6 (7 metrics per symbol) For modulations greater than 4 bits per symbol, the metrics for each symbol are input to the device in two consecutive transfers. The first transfer loads the least significant metrics for the symbol, while the second transfer loads the most significant metrics for the symbol. To eliminate any ambiguity between LSB versus USB transfers, the CLSB signal must be asserted when the data on the CDATA[15:0] is the least significant metrics of the symbol. When using 6 or 8 bits per symbol, half of the metrics in the symbol are transferred with the LSB, and half are transferred with the MSB. When using 5 bits per symbol, 3 metrics are transferred with the LSB, while 2 metrics are transferred with the MSB. Similarly, when using 7 bits per symbol, 4 metrics are transferred with the LSB, and 3 metrics are transferred with the MSB. This is shown in Figure 15. 4.2.2 INPUT SYMBOL ROTATION 3) Wait for FSyncTime sync mark periods without detecting synchronization, then rotate the phase by one step (90 degrees for QPSK, 45 degrees for 8-PSK). 4) Repeat steps 2 & 3 until synchronization is achieved. After synchronization occurs, the current phase rotation of the incoming stream can be read from the Rotation register bits. The RotateEnable bit determines if rotation is handled internally. It must be set to zero when ChannelFormat = 0b11. When the LLR computation is handled externally, the ROTATE signal is asserted for one CCLK cycle each time the synchronization block reaches FSyncTime without detecting synchronization. This can be used by external logic to rotate the phase. Note that the synchronizer can be configured to automatically sync to an inverted bit stream, regardless of the RotateEnable setting. Phase Shift Keying modulation formats result in a phase ambiguity at the output of the demodulator. BPSK demodulators will produce either the correct phase output, or a 180 degree (inverted) output. QPSK and QAM demodulators will output 0, 90, 180, or 270 degree phase rotations, and 8-PSK demodulators will output rotations of 45 degree increments. The input symbols must be rotated to the correct phase before decoding. Astro OC-3 uses the following algorithm to determine phase rotation: 1) Attempt synchronization with 0 degree rotation. 2) If synchronization is detected with this phase rotation, immediately begin decoding. Page 12 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 4.2.3 SOFT METRIC COMPUTATION Figure 16: QPSK Symbol Definition Q Data out of the TPC encoder is grouped into m bits, where m is the number of bits per symbol. This group of bits is mapped to a symbol and transmitted over the channel. Figure 16 shows the constellation map for QPSK symbols, and Figure 17 shows the constellation map for 8-PSK symbols. Figures 19, 20 and 21 show the constellation map for 16, 64 and 256-QAM respectively. When grouping bits before mapping, the first bit of a block becomes the LSB of the constellation symbol, while the m’th bit becomes the MSB of the constellation symbol. After derotation of the constellation, the device converts the input symbol I & Q to a soft metric for each bit in the symbol. For BPSK and QPSK, no conversion is necessary, as the input values map directly to one or two soft metrics, respectively. When using 8-PSK, 16-QAM, 64-QAM, or 256QAM, the Log-Likelihood Ratio is computed, generating 3, 4, 6 or 8 soft metrics, respectively. For 8-PSK, if the demodulator does not align the incoming signals at 22.5 degrees and 67.5 degrees in each quadrant, according to Figure 17, but instead aligns the symbols with the axis (0 degrees and 45 degrees, according to Figure 18), then the PreRotate control bit must be set. This causes the device to first rotate the incoming symbol by Π/8 (22.5 degrees) before processing. 10 11 I 00 01 Figure 17: 8-PSK Symbol Definition (PreRotate=0) Q 011 001 010 000 I 100 101 110 111 Figure 18: 8-PSK Symbol Definition (PreRotate=1) Q 011 010 001 000 110 111 I 100 101 Figure 19: 16 QAM Symbol Definition q 1000 1001 1011 1010 1111 1110 1 3 0111 0110 0011 0010 3 1100 1101 1 -3 0100 -1 0101 i -1 0000 0001 -3 PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 13 of 83 comtech aha corporation Figure 20: 64 QAM Symbol Definition q 100000 100001 100011 100010 100110 100111 100101 100100 101110 101111 101101 101100 111110 111111 111101 111100 110110 110111 110101 110100 1 3 010110 010111 010101 010100 011110 011111 011101 011100 001110 001111 001101 001100 000110 000111 000101 000100 7 101000 101001 101011 101010 5 111000 111001 111011 111010 3 110000 110001 110011 110010 1 -7 -5 -3 -1 010000 010001 010011 010010 5 i 7 -1 011000 011001 011011 011010 -3 001000 001001 001011 001010 -5 000000 000001 000011 000010 -7 Figure 21: 256 QAM Symbol Definition q 10000000 10000001 10000011 10000010 10000110 10000111 10000101 10000100 10001100 10001101 10001111 10001110 10001010 10001011 10001001 10001000 10011101 10011111 10011110 10011010 10011011 10011001 10011000 10111101 10111111 10111110 10111010 10111011 10111001 10111000 10101100 10101101 10101111 10101110 10101010 10101011 10101001 10101000 11101100 11101101 11101111 11101110 11101010 11101011 11101001 11101000 11111100 11111101 11111111 11111110 11111010 11111011 11111001 11111000 11011100 11011101 11011111 11011110 11011010 11011011 11011001 11011000 11001100 11001101 11001111 11001110 11001010 11001011 11001001 11001000 15 10010000 10010001 10010011 10010010 10010110 10000111 10010101 10010100 10011100 13 10110000 10110001 10110011 10110010 10110110 10110111 10110101 10110100 10111100 11 10100000 10100001 10100011 10100010 10100110 10100111 10100101 10100100 9 11100000 11100001 11100011 11100010 11100110 11100111 11100101 11100100 7 11110000 11110001 11110011 11110010 11110110 11110111 11110101 11110100 5 1101000 11010001 11010011 11010010 11010110 11010111 11010101 11010100 3 11000000 11000001 11000011 11000010 11000110 11000111 11000101 11000100 1 -15 -13 -11 -9 -7 -5 -3 -1 01000000 01000001 01000011 01000010 01000110 01000111 01000101 01000100 01010000 01010001 01010011 01010010 01010110 01010111 01010101 01010100 1 3 5 7 9 01001100 01001101 01001111 01001110 01001010 01001011 01001001 01001000 01011101 01011111 01011110 01011010 01011011 01011001 01011000 01111101 01111111 01111110 01111010 01111011 01111001 01111000 01101101 01101111 01101110 01101010 01101011 01101001 01101000 00101101 00101111 00101110 00101010 00101011 00101001 00101000 00111101 00111111 00111110 00111010 00111011 00111001 00111000 00011101 00011111 00011110 00011010 00011011 00011001 00011000 00001101 00001111 00001110 00001010 00001011 00001001 00001000 -1 01011100 11 13 15 i -3 01110000 01110001 01110011 01110010 01110110 01110111 01110101 01110100 01111100 -5 01100000 01100001 01100011 01100010 01100110 01100111 01100101 01100100 01101100 -7 00100000 00100001 00100011 00100010 00100110 00100111 00100101 00100100 00101100 -9 00110000 00110001 00110011 00110010 00110110 00110111 00110101 00110100 00111100 -11 00010000 00010001 00010011 00010010 00010110 00010111 00010101 00010100 00011100 -13 00000000 00000001 00000011 00000010 00000110 00000111 00000101 00000100 00001100 -15 Page 14 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 4.2.4 LLR NORMALIZATION When using internal LLR computation with 8-PSK, 16-QAM, 64-QAM, or 256-QAM, the position of the constellation points relative to the input quantization range must be input to the device. This relationship is input using the LLRMantissa and LLRExponent registers. The equation for the LLR Normalization value is shown below. cd Constellation delta. This is the distance between the origin and the first constellation point, measured along the X axis. It is represented in terms of the programmed quantization. For 8PSK, it is the distance between the origin and the unit circle. 1 LLRNormalization = -----cd For example, if a system is using 16-QAM, with 2s complement notation and 4 bits each for I and Q, Figure 22 shows the measurement for cd. So, the value for LLR Normalization is 1/1.75, or 0.5714. This value is written into the LLRMantissa and LLRExponent registers as a floating point number (See Section 9.7.3). After determining a correct cd (constellation delta) the LLR Normalization factor can be calculated as follows in terms of LLRMantissa and LLRExponent register parameters (See Section 9.7.3). ( LLRExponent – 8 ) 1 LLRMantissa LLRNormalization = ------ = 1 + ----------------------------------- × 2 cd 256 Following are formulas for estimating the LLRMntissa and LLRExponent. Note, the solution for LLRExponent is required to solve for LLRMantissa. ln(LLRNormalization ) LLRExponent = ------------------------------------------------------------ + 8 ln(2) Rounded down to the nearest whole number. LLRMantissa = [ ( 2 ( 8 – LLRExponent ) × LLRNormalization ) – 1 ] × 256 Rounded to the nearest whole number. Figure 22: LLR Normalization with 16-QAM q 7 6 5 4 3 1.75 2 1 -7 -6 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 i -1 -2 -3 -4 -5 -6 -7 PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 15 of 83 comtech aha corporation 4.2.5 FRAME SYNCHRONIZATION Astro OC-3 supports automatic block synchronization prior to TPC decoding. All synchronization is done at the bit level, after mapping from symbols to soft metrics. Astro OC-3 supports synchronization marks of length up to 32 bits. Inverted synchronization marks are placed at the start of a TPC block. Non-inverted marks may be distributed throughout the block to allow for decreased synchronization time. The synchronizer looks at multiple points in the data stream, separated by the period of the synchronization marks. The decoder uses the frame synchronization mark defined by DFSyncLength, DFSyncMark, DFSyncFreq, and DFSyncPer to determine where sync marks are expected (See Section 3.7 for frame sync description). The FBitThresh value determines how many bits in a sync mark can be incorrect, and still be considered a valid sync mark. If FSyncInv is set, the synchronizer also attempts to synchronize to an inverted bit stream. If synchronization is found in the inverted stream, the synchronizer inverts all following data bits. The sync acquisition detection circuit is an up/ down counter that is incremented for each valid sync mark (less than or equal to FBitThresh errors), and decremented for each invalid mark. When the count equals FSyncOn, the FSynced bit is set and data is input to the decoder. If packet synchronization is disabled (DPSyncEnable = 0), then the SyncAcq interrupt is also set. If packet synchronization is enabled, the SyncAcq interrupt is set after both frame and packet sync are acquired. When synchronized, the device has two built in methods to detect loss of synchronization. An up/ down counter monitors the synchronization marks coming over the channel. It is incremented for each invalid mark (greater than FBitThresh errors), and decremented for each valid mark. If the count equals FSyncOff, a loss of synchronization is assumed, and a resynchronization is executed. In addition, the CRC comparator keeps a count of consecutive failed CRC blocks. If this count equals the CRCSyncOff threshold, a loss of synchronization is assumed, and a resynchronization is executed. A different interrupt is generated for each of the above cases, and one or both loss of sync methods can be disabled. The microprocessor can also issue a resynchronization at any time by writing a one to the Resync bit. This does not generate an interrupt. When an automatic or manual resync occurs, all data in the decode path is discarded. The internal frame synchronizer can be disabled by clearing the DFSyncEnable bit. When cleared, synchronization must be achieved with external logic. The CSTART signal must be asserted with Page 16 of 83 the first transfer of each frame. Any bits inserted beyond the end of the TPC block, and the beginning of the next frame are discarded by the device. The beginning of each frame must be aligned with the transfer. This requires padding externally if the frame is not a multiple of the bits per symbol. In addition, at the end of a block, if no further data is to be input to the device, 8 additional bits must be input to the device to flush internal pipes and allow the previous block to be decoded and output. These bits will automatically be discarded by the device, since they are not marked with a CSTART. CSTART should not be issued in the middle of a frame. If a resynchronization is required, the microprocessor must first issue a Resync, followed by data marked with CSTART. CSTART must be tied inactive when DFSyncEnable is set. 4.3 TPC DECODER The Turbo Product Code decoder supports block sizes up to 16,384 encoded bits. The decoder supports iterative decoding of two or three dimensional codes built from extended Hamming or parity only codes of length up to 128 bits. The decoder supports decoding of product codes with hyper axis to improve low bit error rate (BER) performance. 4.3.1 HELICAL DEINTERLEAVER The helical deinterleaver is enabled by setting DHelical to a 1. See Section 3.6 for a description of helical interleaving. 4.3.2 CODE CONFIGURATION Turbo Product Codes are specified by the constituent codes of each axis in the code. The code configuration registers specify the code type (extended Hamming or Parity) and length of each axis, as well as enabling hyper axis support. To generate a specific block size, the product code can be shortened using the shortening configuration registers. Using the xShortX, xShortY, xShortZ, xShortB, and xShortR registers, an exact data size can be configured. The decoder can be configured to run a variable number of iterations per block. This allows the decoder to spend more time on difficult blocks, making up for this with less difficult blocks. In an AWGN channel, for example, this feature can allow decoder performance of 30 iterations, while only running an average of 10 iterations per block. The gain may vary in other channels. This feature is enabled by setting StopIter. Astro OC-3 contains internal buffering to support this feature, as described in Section 5.6. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 4.3.3 FEEDBACK The TPC algorithm uses feedback, or weighting values for performance tuning. After each axis iteration, the output of the Soft Input Soft Output (SISO) decoder is multiplied by the feedback constant for that axis. These values are then fed back into the SISO for future iterations. The feedback multiplier values used for each code axis vary from 1/32 to 31/32. The feedback multipliers must be tuned to give optimum decoder performance in a given system. The choice of feedback multiplier has no effect on throughput or latency. The following paragraphs describe the tuning process. For 2D square (XCODE[3:0] = YCODE[3:0]) codes, a typical feedback multiplier value for both axes at 4 iterations is 16/32. For 3D cubic (XCODE[3:0] = YCODE[3:0] = ZCODE[3:0]) codes, a typical feedback multiplier value at 6 iterations is 14/32. When using non-square or cubic codes, the following general rules should be applied. Parity codes should have their feedback multiplier values set higher than Hamming codes when mixed. For example, in a (32,26)x(32,26)x(4,3) code, the X and Y feedback multipliers should be set to 12/32 while the Z feedback should be set to 18/32 or 20/32. When mixing Hamming codes with shorter Hamming codes, the feedback multiplier should be set slightly higher for the shorter code. For example, in a (64,57)x(32,26) code, the X feedback multiplier could be set to 16/32, while the Y feedback multiplier could be set to 18/32. When using eTPCs there are two added feedback terms. These are Enhanced Feedback and Enhanced Parity Feedback. The Enhanced Feedback is the feedback multiplier for the Enhanced TPC mode. The recommended starting value for this parameter is 24/32. The Enhanced Parity Feedback is the feedback multiplier for the Enhanced Mode parity axis. The recommended starting value for the Enhanced Parity Feedback is 24/32. The feedback values must be tuned for the number of iterations allowed in a system. For less iterations than the above guidelines, the feedback values should be increased slighly. For more iterations, the values should be decreased. For example, when using a (64,57)x(64,57) code with only 2 iterations, the feedback multiplier for both axes should be set to 20/32. Conversely, in a system that allows 12 or more iterations, the value for the feedback should be set to 14/32. The feedback parameters may also need to be tuned depending on the number of soft input bits (QBits2:0]). This will only affect the optimum feedback multiplier values slightly, meaning that PS4540_1202 they should be adjusted by only 1/32 to 4/32 to allow for these differences. Since systems vary widely, the system designer should experiment with various feedback multiplier values to obtain the best performance. AHA also has available the Galaxy simulation software which is a very useful tool for modeling the effects of the Feedback parameters for all codes supported by the AHA4540 device. Please contact AHA applications engineering for more information about the Galaxy software. 4.3.4 CODE SHORTENING There are two methods of shortening product codes. The first method is to remove an entire row or column from a 2-dimensional code, or an entire X, Y, or Z plane from a 3-dimensional 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. 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 2-dimensional code (using xShortB), or from the top plane of a 3dimensional code (using xShortR). Shortening will be described using a 2dimensional code example, and a 3-dimensional code example. 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 additional 6 bits. The final code is a (750,456) code, with a code rate of 0.608. Figure 23 shows the structure of the resultant block. This shortening is programmed into the device by writing xShortX to 5, xShortY to 4, and xShortB to 6. For the 3-dimensional example, suppose a 0.40.45 rate code is required with a data block size of 1100 bits. Starting with a (32,26)x(32,26)x(4,3) base code, the optimum shortening for this code is to remove rows and columns, while leaving the already very short z axis alone. Therefore, since we desire a 1100 bit 3D code, we can find the desired vector data size by taking the square root of 1100/3, and rounding up. This yields a row/column size of about 20. In fact, having a row size of 20, a column size of 19, and a z column size of 3 gives us the closest block size to 1100 bits. This is accomplished by writing xShortX to 6, xShortY to 7, and xShortZ to 0. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 17 of 83 comtech aha corporation The code size is now a (26,19)x(25,20)x(4,3) = (2600,1140). To get the exact data size, we further shorten the first plane of the code by 40 bits. This is accomplished by shortening 2 full rows from the first plane (xShortR), with each row removing 19 bits from the data block, and shortening another 2 bits from the next row (xShortB). This results in a (2546,1100) code, with rate = 0.43. Figure 24 shows the original code, along with the physical location of the shortened bits. This is accomplished by writing xShortB to 2 and xShortR to 2. Figure 23: Structure of Shortened Code Shorten 6 Additional Bits 26 bits 6 bits 26 bits Data Bits 28 bits Unshortened Block ECC Bits 6 bits 27 bits Figure 24: Structure of Shortened 3D Block 1 Shorten by 7 3 Original Unshortened Block 6 26 Data Bits 25 26 Shorten Front Plane by 2 Rows and 2 Bits 6 ECC Bits Shorten by 6 4.4 MODULATION SYMBOL DEINTERLEAVING This option improves performance for systems using higher order modulation. For a detailed description of the function, see Section 3.5. Page 18 of 83 Final Shortened Block 26 4.4.1 CODE PERFORMANCE Table 2 gives an abridged list of possible codes supported by Astro OC-3, along with the code rate and performance of each code. The performance is measured assuming a user (uncoded) data rate of 155 Mbits/sec. This is a very small subset of supported codes. AHA can provide software to assist the code selection process. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation Table 2: Partial Code List and Performance at 155 Mbit/sec Data Rate CODE (X)x(Y)x(Z) (128,127)x(128,126)+ (128,120)x(128,126)+ (128,127)x(64,62)+ (128,120)x(64,62)+ (64,63)x(64,62)+ (64,63)x(32,30)+ * + BLOCK SIZE DATA SIZE RATE CODING GAIN* # of ITERATIONS (bits) (bits) (dB) at 155 Mbps 16002 15120 7874 7440 3906 1890 0.977 0.923 0.961 0.908 0.954 0.923 4.3 5.5 4.4 5.5 4.5 4.5 4 4 3 3 3 2 Estimated Coding Gain is measured on a Binary Input Additive White Gaussian Noise (AWGN) channel at 10-6 Bit Error Rate (BER) and Uncoded Data Rate of 155 Mbps. enhanced TPC (includes hyper axis). For 2D codes, the Y axis is shortened by 1, and for 3D codes, the Z axis is shortened by 2. The shortening and addition of hyper axis is included in the code description. Table 3: Partial Code List and Achievable Data Rate (Payload) at Various Iterations CODE (X)x(Y)x(Z) (128,127)x(128,126)+ (128,120)x(128,126)+ (128,120)x(128,120) (64,57)x(16,15)x(16,15) (32,26)x(32,26)x(16,15) (128,127)x(64,62)+ (128,120)x(64,62)+ (128,120)x(64,57) (32,26)x(16,15)x(16,15) (32,26)x(32,26)x(8,7) (64,63)x(64,62)+ (64,57)x(64,57) (64,63)x(32,30)+ (64,57)x(32,26) (32,26)x(32,26) + 16384 16384 8192 8192 4096 2048 RATE 4 ITERATIONS 6 ITERATIONS 12 ITERATIONS (Mbit/sec) (Mbit/sec) (Mbit/sec) 0.977 0.923 0.879 0.783 0.619 0.961 0.908 0.84 0.714 0.577 0.954 0.793 0.923 0.724 0.660 168 158 151 134 106 153 144 143 123 99 128 136 101 112 77 114 108 151 107 85 102 96 128 91 73 85 104 67 74 51 57 54 77 53 42 51 48 64 46 36 42 52 33 37 25 enhanced TPC (includes hyper axis). For 2D codes, the Y axis is shortened by 1, and for 3D codes, the Z axis is shortened by 2. The shortening and addition of hyper axis is included in the code description. 4.4.2 DECODER DATA RATES Table 3 shows the data (payload) rates for various codes at 4, 6, and 12 iterations. This table assumes a decoder processing clock (DPCLK) of 86 MHz. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 19 of 83 comtech aha corporation 4.4.3 DATA RATE CALCULATION DCodeX is DCodeX[2:0], DCodeY is DCodeY[2:0], and DCodeZ is DCodeZ[2:0]. Determine clocks per iteration: if z code is > 0 DCodeX DCodeY DCodeZ DCodeX DCodeY DCodeX DCodeZ DCodeY DCodeZ DCodeX DCodeY DCodeZ × (2 – DShortY ) × ( 2 – DShortZ ) 2 2 x_axis = ----------------------------------------------------------------------------------------------------------------------------------------------- + 10 + --------------------64 2 × (2 – DShortX ) × ( 2 – DShortZ ) 2 2 y_axis = ----------------------------------------------------------------------------------------------------------------------------------------------- + 10 + --------------------64 2 × (2 – DShortX ) × ( 2 – DShortY ) 2 2 z_axis = ----------------------------------------------------------------------------------------------------------------------------------------------- + 10 + -------------------64 2 enhanced_axis = z_axis (if enabled) total_clks = x_axis + y_axis + y_axis + enhanced_axis + 10 if z code = 0 DCodeX DCodeY DCodeX DCodeY DCodeX DCodeY × (2 – DShortY ) 2 2 x_axis = ---------------------------------------------------------------------------------- + 10 + --------------------64 2 × (2 – DShortX ) 2 2 y_axis = ---------------------------------------------------------------------------------- + 10 + --------------------64 2 enhanced_axis = y_axis (if enabled) total_clks = x_axis + y_axis + enhanced_axis + 10 dpclk freq × ( total # bits in the block ) channel rate = -------------------------------------------------------------------------------------------iterations per block × total_clks × 2 dpclk freq × ( data bits in the block ) data rate = --------------------------------------------------------------------------------------iterations per block × total_clks × 2 Page 20 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 4.4.4 DECODER LATENCY CALCULATIONS 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]. Determine clocks per iteration first. If DCodeZ > 0, DCodeX DCodeY DCodeZ DCodeY DCodeX DCodeZ DCodeZ DCodeX DCodeY 2 × (2 – DShortY ) × ( 2 – DShortZ ) DCodeX x_axis = ----------------------------------------------------------------------------------------------------------------------------------------------- + 19 + 2 64 2 × (2 – DShortX ) × ( 2 – DShortZ ) DCodeY y_axis = ----------------------------------------------------------------------------------------------------------------------------------------------- + 19 + 2 64 × (2 – DShortX ) × ( 2 – DShortY ) 2 DCodeZ z_axis = ----------------------------------------------------------------------------------------------------------------------------------------------- + 29 + 2 64 Enhanced_axis = z_axis - 5 (if enabled) total_clks = ( x_axis + y_axis + y_axis + enhanced_axis ) × Iterations If z code is 0 DCodeX DCodeY DCodeY DCodeX × (2 – DShortY ) 2 DCodeX x_axis = ---------------------------------------------------------------------------------- + 19 + 2 64 2 × (2 – DShortX ) DCodeY y_axis = ---------------------------------------------------------------------------------- + 19 + 2 64 Enhanced_axis = y_axis (if enabled) total_clks = ( x_axis + y_axis + y_axis + enhanced_axis ) × Iterations total_block size/4 decoder_latency = total_clks + the greater of or total_clks Total latency (seconds) = [ 8 × CCLK_period ] + ( DPCLK_period ) ( decoder_latency + 23 ) × ------------------------------------------ + [ 5 × DCLK_period ] 2 Note: add [16 x CCLK_period] if demodulation is enabled. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 21 of 83 comtech aha corporation 4.4.5 CORRECTIONS COUNT In order to assist the system with estimation of channel bit error rates, the Astro OC-3 device reports the number of bits corrected in each block decoded. The device can also be configured to compute a running average of the number of corrections per block over a programmable number of blocks. When CorrAvg is set to 0, the Corrections register 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, packet sync marks, CRC, and TPC ECC bits. It is updated with every DecComp interrupt. When CorrAvg is set to a non-zero value, the corrections per block is averaged using a running average over the previous 2CorrAvg blocks. The Corrections register is updated with every DecComp interrupt, giving the running average value. 4.5 DECODED DATA INTERFACE The decoded data interface checks the CRC for data integrity, and outputs this data to the DDATA[7:0] output port. Figure 25 shows the block diagram of the decoded data interface. Figure 25: Decoded Data Interface Block Diagram From Decoder PACKET SYNCHRONIZER DESCRAMBLER When using Stream Mode, the decoded data interface searches through the decoded stream to find the beginning of user data packets. When using Block Mode, the beginning of the packet is assumed to be the beginning of the TPC block. The CRC engine computes CRC on each user packet, and compares the computed CRC to that appended to the data. The packet stream is output from the device, along with packet start and packet error signals. 4.5.1 PACKET SYNCHRONIZATION Page 22 of 83 Decoded Data The size of the packet synchronization mark can be 4, 8, 12 or 16 bits, selected with the DPSyncLength value. The value for the synchronization marks should be written into the DPSyncMark register. The PSyncOn register determines how many valid packet sync marks must be seen before declaring packet synchronization is acquired. The SyncAcq interrupt is set when both frame and packet synchronization occur. In addition, the PSynced bit is set when packet synchronization is achieved. 4.5.2 When using Stream Mode, the user data packets out of the decoder may not line up with the beginning of a TPC block. Therefore, it is necessary to locate the beginning of each packet so that a CRC can be computed over the packet. This is accomplished by searching for the packet sync marks in the stream out of the decoder. Since this data stream is post-decoder data, its bit error rate is extremely low, and there is no phase ambiguity. Therefore, synchronization marks must be perfect to be considered valid (there is no FBitThresh equivalent as in the frame synchronization function). Packet synchronization is automatically enabled when xBlockMode is set to 0. If the packet synchronization marks are to be removed from the data stream, the DPSyncRemove bit should also be set. If this bit is not set, the synchronization marks remain in the data stream and are output with the user packet data. This can be used when the data stream already contains synchronization marks (such as MPEG). CRC CHECKING DESCRAMBLER 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 6. Figure 6 shows an example configuration for the descrambler that matches the DVB standard scrambler. The descrambler programming matches that of the scrambler, described in Section 3.3. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation The packet synchronizer expects to find inverted packet sync marks at every DScramPer packets, where a value of 0 represents 16. The descrambler is reset at each inverted sync mark. If the packet synchronization marks are still in the data stream, they are inverted to return them to the original state. Note that when DScramPer is set to 1 the descrambler is reset at every packet sync mark, and no inversion of the sync marks is done. When using Block Mode or when the descrambler is disabled, DScramPer should by set to 1. Note that the packet synchronization marks are not descrambled by the descrambler. However, the PRBS shift register continues to shift over the synchronization marks. 4.5.3 CRC CHECKING CRC checking is executed 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 5. The shift register is reset at the beginning of each packet. Data from the packet (excluding the packet synchronization mark) is shifted into the circuit, until the number of bytes programmed into DPSize plus the number of bits in the CRC field is reached. At this point, the contents of the CRC shift register are examined. If all bits are zero, then the CRC is correct. Otherwise, a CRC error is detected, and the PERR output signal is asserted at the end of the output of the packet, at the same time as the PEND signal is asserted. In addition, the CRC failure count is incremented, and will cause a resync and interrupt if the CRCSyncOff threshold is met. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 23 of 83 comtech aha corporation 5.0 DATA FLOW CONTROL The encoding and decoding processes of the Astro OC-3 device require data input and output in a bursty fashion. However, the device contains internal buffering to allow continuous data input and output for both encoding and decoding. The relationship between the number of transfers input to the decoder relative to the number of transfers output from the decoder is dependent on the user packet size, TPC code rate, sync mark size, user packet size, CRC, pad bits, and symbol size. Since there are so many constraints that affect the transfer rate, system clocking issues can be difficult to solve. The Astro OC-3 device contains internal logic to greatly simplify these system design issues, and reduce external logic requirements. In addition, transfer per clock input and output is supported with the use of an external Voltage Controlled Oscillator (VCO). The logic implemented is the same for the encoder and decoder. Therefore, the description given can be applied to both. The maximum data throughput of the encoder is EPCLK frequency times 4 (bits). Setting up flow control to a data rate higher than this will cause the input accept (UACPT) to deassert. The decoder maximum data rate is limited by DPCLK times 2 (bits). In addition, the maximum rate through the encoder may be limited by the code and number of iterations. 5.1 DATA INPUT TRANSFERS vs. DATA OUTPUT TRANSFERS The importance of a flow control frame can be appreciated as follows. If the input output transfer ratio were defined using only one frame, the ratio would not be exact. For example, frame 1 in Figure 26 contains 5 user bytes (3 bytes in packet 1, 2 bytes in packet 2). Using this frame would result in a ratio of 5 user bytes in for every 8 bytes out. However, frame 2 contains only 4 user bytes. Using this frame would result in a different ratio of 4 user bytes in for every 8 bytes out. The correct ratio can be found using the concept of a flow control frame, and is equal to 9 user bytes in for every 16 user bytes out. Figure 26: Flow Control Frame Example Packet 1 CRC 1 Packet 2 Frame 1 CRC 1 Packet 3 CRC 1 Frame 2 Flow Control Frame For the encoder, the number of unencoded input transfers per flow control frame is written into the UTransfers register. The number of encoded output transfers per flow control frame is written into the ETransfers register. Similarly, for the decoder, the number of decoded data transfers per flow control frame is written into the DTransfers register. The number of channel interface transfers per flow control frame is written into the CTransfers register. The following equations can be used to find the value for each of these registers. In order for the device to determine the rate at which data must be input and/or output, the ratio of the overall input vs. output transfer rates is programmed into the device. This ratio must take into account all data inserted and/or removed in the data stream, and the symbol size. When using Stream Mode, the numerator and denominator of this ratio can be quite large, since the user data packet need not be a multiple of the TPC block size. A flow control frame is a group of one or more frames that have a fixed number of unencoded data interface transfers and encoded data interface transfers. The concept of a flow control frame will be described by example. Assume the device is set up for Stream Mode, with the user packet size equal to 3 bytes, with a 1 byte CRC, and a (64,48) bit code. Figure 26 shows two consecutive frames of this structure. Since one user data packet plus CRC is equal to 2/3 of the data size of a frame, two frames will contain three user packets. Page 24 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 5.1.1 xTRANSFERS WITH xBLOCKMODE = 1 pack – User Data Packet Size (bytes). pack = xPSize fsize 5.1.2 pack – User Data Packet Size (bytes). EPSInsert / DPSRemove = 1: pack = xPSize EPSInsert / DPSRemove = 0: – Frame Size including sync marks and pad (bits). fsize = xFSyncPer × xFSyncFreq – Bits per symbol. m = xSymSize + 1 The overall code rate (cr) of the system is: pack × 8 cr = --------------------fsize The number of unencoded transfers (ut) or decoded transfers (dt) per flow control frame is: ut, dt = pack × m The number of encoded transfers (et) per flow control frame is: et = fsize When ChannelFormat = 0, 1, or 2, the number of channel transfers (ct) per flow control frame is: ct = fsize When ChannelFormat = 3, the number of channel transfers (ct) per flow control frame is: ct = fsize × m ---4 xPSyncLength + 1 pack = xPSize + ----------------------------------------------2 m PS4540_1202 xTRANSFERS WITH xBLOCKMODE = 0 crc – CRC Size (bits). If CRC is disabled, set to 0. crc = xCRCSize* × 4 * use 8 if xCRCSize = 0. psync – Packet Sync Size (bits). EPSInsert / DPSRemove = 1: psync = 4 × ( xPSyncLength + 1 ) EPSInsert / DPSRemove = 0: psync = 0 tpck fsize – Turbo Product Code Data Size (bits). – Frame Size including sync marks and pad (bits). fsize = xFSyncPer × xFSyncFreq m – Bits per symbol. m = xSymSize + 1 The overall code rate (cr) of the system is: tpck × pack × 8 cr = --------------------------------------------------------------------------------fsize × ( pack × 8 + crc + psync ) The number of unencoded transfers (ut) or decoded transfers (dt) per flow control frame is: ut, dt = tpck × pack × m The number of encoded transfers (et) per flow control frame is: et = fsize × (8 × pack + crc + psync) When ChannelFormat = 0, 1, or 2, the number of channel transfers (ct) per flow control frame is: ct = fsize × (8 × pack + crc + psync) When ChannelFormat = 3, the number of channel transfers (ct) per flow control frame is: ct = fsize × ( 8 × pack + crc + psync ) × m ---4 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 25 of 83 comtech aha corporation Flow control is disabled by setting xFlowMode to 0. When disabled, data is handshaked in and out of the device using full handshakes with the appropriate RDY and ACPT signals. This mode will generate the minimum possible latency through the device at the expense of added system complexity. Note that in this mode the internal clock domain crossing is still enabled, so that the various channel and data clocks may be driven at differing frequencies. In this mode, the xTransfers, DBufferSize and DumpThresh registers are ignored. Figure 27 shows a wiring diagram of the encoder when flow control is disabled. The encoder FIFO is enabled to smooth the burst nature of the encoder input. The logical size of the encoder FIFO is set via EBufferSize. The decoder data buffer is enabled as two FIFOs, each of logical size determined by DBufferSize. One FIFO is at the input to the decoder, and one is at the output of the decoder. Note that these FIFOs are in addition to the one block buffering that is available in the decoder (see Section 5.2). The size of the FIFOs ranges from 128 to 32,768 bits (a bit in the decoder input FIFO is one soft metric). If the variable iterations feature (StopIter) is enabled, the DumpThresh can be set to instruct the decoder to stop iterating on a block when the input FIFO fills. See Section 5.6 for a description of this feature. Figure 27: Flow Control Disabled 5.4 DCLK DRDY DACPT DDATA DECODER CCLK CRDY CACPT CDATA Data is input to the device on the rising edge of UCLK when both URDY and UACPT are asserted. Similarly, data is output from the device on the rising edge of ECLK when both ERDY and EACPT are asserted. This same handshaking occurs when the decoder flow control is enabled. All internal buffering in the encode path is disabled. The device will handshake data in as needed to feed the encoder. When the encoder is outputting ECC or other overhead bits, the input handshake will pause. The decoder buffering is reduced to the minimum necessary to simultaneously load, decode, and unload three consecutive blocks. While the decoder is working on a block, a one block input buffer can be loading a following block. In addition a one block output buffer can be unloading a previously decoded block. 5.3 INTERNAL BUFFERING ENABLED Setting xFlowMode to 1 enables encoder or decoder data buffering. In this mode, data is handshaked in and out of the device using full handshakes with the appropriate RDY and ACPT signals. In this mode, the xTransfers registers are ignored. The wiring is the same as mode 0, shown in Figure 27. Page 26 of 83 FLOW CONTROL VIA HANDSHAKING Flow control via handshaking is enabled by setting xFlowMode to 2 or 3. Mode 2 is used when the channel side (encoded interface for the encoder) is the master. Mode 3 is only valid with the encoder, and allows the unencoded interface to be the master. Figure 28 shows a wiring diagram for the decoder when the channel interface is the master. Figure 28: Handshake with Channel Interface Master DPCLK FLOW CONTROL DISABLED DPCLK 5.2 CCLK DCLK DRDY DECODER DDATA CRDY CDATA Data is input to the device on the rising edge of CCLK when the CRDY input is asserted. In this mode, the CRDY signal is a data valid signal. If the demodulator can input data at one transfer per clock, the CRDY signal should be tied active, causing the Astro OC-3 device to assume every clock has valid input data. In this mode, the CACPT output will only assert if an internal buffer overflow occurred. This is caused by an incorrect configuration, and can be used in debugging. Data is output from the device on the rising edge of DCLK when the DRDY output signal is asserted. The DACPT input should be tied active in this mode. The DRDY output signal will assert at regular intervals to transfer data out of the device. The number of transfers output versus input is configured with the CTransfers and DTransfers registers. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 5.5 FLOW CONTROL VIA CLOCK FREQUENCY SYNTHESIS Many communications systems operate at one transfer per clock across each interface. The transfer may contain one bit, one channel symbol, or one data byte, and no handshaking occurs across the interfaces. To use this data flow scheme, the rate of the clock at the input to the encoder must be lower than the rate at the output of the encoder by the difference in data added to the data stream. Similarly, the rate at the input to the decoder must be higher than the rate at the output of the decoder by the difference in data removed from the data stream. This is often handled using error correction codes that have a simple code rate, such as 2/3 or 5/6. Using this method constrains the code options and system configurations when using Turbo Product Codes. PS4540_1202 Astro OC-3 contains internal clock frequency synthesis logic to generate a clock given the other clock. For instance, the decoded data clock, DCLK, can be generated with a phase-locked loop using the code rate and the channel clock, CCLK, as a reference. Similarly, the unencoded data clock, UCLK, can be generated using the encoded data clock, ECLK, as a reference. As with the handshaking flow control, the code rate is configured using the xTransfers registers, as described in Section 5.1. To enable frequency synthesis, xFlowMode should be set to 4 or 5. Mode 4 is used when the data is an intermittent stream. Mode 5 is used when the data is a constant stream and the system requires a constant latency through the encoder or decoder. Figure 29 shows a block diagram of the decoder configured to generate the decoded data clock, DCLK. Figure 29: Decoder Clock Frequency Synthesis LOOP FILTER VCO DPCLK When the encoder is configured for flow control mode 3, the unencoded interface URDY input signal controls data transfer into the device. The ratio of the UTransfers to ETransfers sets the rate at which the encoded data interface ERDY output signal asserts to transfer data out of the device. When the encoder is configured for mode 2, the encoded data interface EACPT input signal controls data transfer out of the device, and the UACPT output signal controls data transfer in to the device. Note that in this case, the UACPT output remains active until the first transfer out of the encoded port. After this transfer, the UACPT signal will assert at regular intervals to transfer the data out of the device. When using flow control via handshaking, an inactive input handshake signal on the master port causes an immediate deassertion of the output handshake on the slave port. Therefore, if the rate of data input to the device changes, the rate output will immediately change to reflect this difference. This requires the data input to be a constant stream. If this is not possible, the device must be flushed by driving the input handshake active until all data is output from the device. It must then be reset with a soft reset (EReset or DReset) to remove the flushed data from the internal data paths. When using the decoder with flow control via handshaking, the decoder buffer can be configured for a variable number of iterations per block. Data buffering around the decoder guarantees a constant delay through the device, even though the decoder is running a different number of iterations on each block. See Section 5.6 for a description of this feature. DCLK ADJ DCLK CCLK DRDY DECODER CDATA DDATA Using the code rate specified in the xTransfers registers, a phase-locked loop is created using CCLK as a reference. The CCLK frequency is multiplied by the code rate, and the resultant clock is compared to DCLK. The phase and frequency difference are output over the DCLKADJ bus. This output can be configured as a charge pump to drive an external loop filter and Voltage Controlled Oscillator (VCO). See Section 6.1 for more information. This phase-locked loop will generate DTransfers clock edges on DCLK per flow control frame, while the reference clock, CCLK, has CTransfers. Data is input to the decoder on the rising edge of CCLK, with one transfer per clock. When the decoded data reaches the output of the decoder, the DRDY signal will assert. This data is transferred out of the device on the rising edge of DCLK, with one transfer per clock. The DRDY signal will only deassert when an internal buffer underflow occurs. This condition is caused by improperly configured flow control, and should not occur in normal operation. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 27 of 83 comtech aha corporation When using the decoder with DFlowMode set to 4, the decoder data buffer is enabled as two FIFOs, each of logical size determined by DBufferSize. One FIFO is at the input to the decoder, and one is at the output of the decoder. Note that these FIFOs are in addition to the one block buffering that is available in the decoder (see Section 5.2). The size of the FIFOs ranges from 128 to 32,768 bits (a bit in the decoder input FIFO is one soft metric). The same logic exists for encoder clocking. In addition, the above circuit can be reversed, using DCLK as the reference clock, and generating CCLK with the PLL. The decoder processing clock, DPCLK, must be set in order to achieve the desired number of iterations for the given code, as described in Section 4.4.2 When using the decoder with a constant data stream, DFlowMode is set to 5. This mode allows for variable iterations per block. The data buffering around the decoder guarantees a constant latency through the device, even though the decoder is running a different number of iterations on each block. See Section 5.6 for a description of this feature. 5.6 DECODER DATA BUFFER WITH VARIABLE ITERATIONS When DFlowMode is set to 2 or 5, the TPC decoder can be configured to run a variable number of iterations by setting StopIter. The device contains internal buffering to allow a variable number of iterations per block, with a constant data flow through the device. This feature is automatically enabled when flow control is enabled. When the decoder requires more iterations on certain blocks, the buffer stores incoming data bits until the decoder completes the block. A second logical buffer is placed on the output of the decoder to give a fixed latency to the decoder. The logical size of this buffer is set via the DBufferSize register. Setting this to a larger value allows the decoder to iterate more times on difficult blocks. Setting this to a smaller value decreases the latency through the device. See Section 9.8.2 Buffer Configuration (EBUFCON, DBUFCON0-1) equations used to determine the maximum value for DBufferSize. Page 28 of 83 When DFlowMode is not set to zero, the DumpThresh can be used to stop iterating when the input buffer fills. When the input buffer becomes nearly full, the device will automatically stop iterating on the current block, send this block to the output buffer, and begin loading the next block. When using this feature, the maximum iterations can be programmed to a value higher than normal, and the device will iterate the maximum amount available. The threshold at which the decoder stops iterating is determined by the value of DumpThresh. When the input buffer is within DumpThresh*128 bits of being full, a dump is issued to the decoder. The use of the DumpThresh feature for variable iterations per block imposes a maximum channel rate on the decoder set by the following equation. If this maximum rate equation cannot be met, DumpThresh must be set to 0. x = 2DCODEX[2:0] − DSHORTX m = 2max(DCODEX[2:0], DCODEY[2:0], DCODEZ[2:0]) n = TPC encoded block size f = Frequency of DPCLK ÷ 2 The maximum channel rate (bits/sec) allowed with DumpThresh ≠ 0 is: f C max < -----------------------------------------------x4 1 + 64--------- + ------ + m --------------x n 32 DumpThresh should be configured according to the following equation. n m DumpThresh = ------------ + ------ + 2 1024 32 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 6.0 is decremented for each CCLK clock pulse, and incremented for each DCLK (multiplied by the code rate) pulse. When the clocks are frequency and phase locked, the count will remain at 0. Otherwise, the count will increment or decrement according to the frequency or phase difference. When xClkAdjMode is set, the clock phase error is output on DCLKADJ[0]. When the DCLK phase is early (the count value is greater than 0), a low value is driven on XCLKADJ[0]. When the DCLK phase is late (the count value is greater than 0), a high value is driven on XCLKADJ[0]. When the phase is matched, XCLKADJ[0] is tristated. The XCLKADJ[1] signal is a charge pump generated from the clock frequency difference. When the DCLK frequency is too high (code rate multiplied DCLK pulse without a CCLK pulse), XCLKADJ[1] is driven low. When the frequency is too low, XCLKADJ[1] is driven high. If the frequencies match, the XCLKADJ[1] is tristated. XCLKADJ[1] can be used to decrease PLL lock time, but cannot be used without also looking at the clock phase. Doing so can result in overfill or underfill of internal buffers due to clock cycle slips. The polarity of the XCLKADJ[1:0] signals can be inverted by clearing the xClkAdjPolarity bit. XCLKADJ[2] is a phase lock indicator. The lock indicator is asserted when the frequency of the two clocks match the required frequencies, and the counter value is at zero. When xClkAdjMode is cleared, the value of the uppermost bits of the up/down phase counter is output on XCLKADJ[2:0]. This is a signed, 2’s complement number giving the phase offset of the code rate multiplied DCLK and CCLK. Note that in both modes, the UCLKADJ[2:0] bus is updated synchronous to ECLK, and DCLKADJ[2:0] is update synchronous to CCLK. CLOCKING SCHEME The Astro OC-3 device has 7 clocks. User data bytes are input into the encoder synchronous to the unencoded data clock, UCLK. The encoder processing logic operates synchronous to EPCLK. Encoded symbols are output from the encoder synchronous to the encoded data clock, ECLK. The device contains internal logic to drive an external VCO, generating either ECLK or UCLK with a phase-locked loop. Demodulated channel symbols are input to the decoder synchronous to the channel clock, CCLK. The decoder processing logic operates synchronous to DPCLK. Decoded data bytes are output from the decoder synchronous to the decoded data clock, DCLK. The device contains internal logic to drive an external VCO, generating either CCLK or DCLK with a phase-locked loop. The microprocessor interfaces operates with a 1/2 divided version of the decoder processing clock, DPCLK. 6.1 FREQUENCY SYNTHESIZER CONFIGURATION Two internal frequency synthesizers are available to generate an encoder and/or decoder clock. The encoder synthesizer compares the phase and frequency of the unencoded clock, UCLK, to the encoded clock, ECLK. The error is output over the UCLKADJ bus. The decoder synthesizer compares the phase and frequency of the decoded data clock, DCLK, to the channel clock, CCLK. Figure 30 shows a diagram of the decoder frequency synthesizer. The DCLK clock is frequency multiplied by the flow control code rate programmed into xTransfers. An up/down counter Figure 30: Frequency Synthesizer Block Diagram COUNTER DCLK Freq High DCLK Freq Low DCLK Encoded Transfers Unencoded Transfers PS4540_1202 Overflow Underflow Up CCLK Down >0 DCLK Phase Early <0 DCLK Phase Late Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 29 of 83 comtech aha corporation 7.0 GENERAL OUTPUT SIGNALS The Astro OC-3 device contains two general output signals 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 synchronization status, decode complete, etc. See Section 9.9.3 for a complete list of available status outputs. Page 30 of 83 8.0 MICROPROCESSOR INTERFACE The device is capable of interfacing directly to a microprocessor for embedded applications. All register accesses to the device are performed on an 8-bit bidirectional bus, using either an Intel® or Motorola® style interface. The interface is in Motorola® mode when the PROCMODE input signal is asserted, otherwise the interface is in Intel® mode. A MUXMODE input is also provided to allow the data and address to be multiplexed on the MDATA[7:0] bus when using Intel mode (PROCMODE=0). The data and address are multiplexed when MUXMODE is asserted, otherwise both MDATA[7:0] and MA[6:0] busses are used. When MUXMODE is asserted, all register addresses must be multiplied by 2. This allows support for 16-bit microprocessor busses See Section 13.7 for microprocessor interface timing diagrams. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.0 REGISTER DESCRIPTIONS The microprocessor configures, controls and monitors operation through the use of the registers defined in this section. The bits labelled “res” or “reserved” are reserved and must be set to zero for a write and the value returned by a read is undefined. Reserved registers should not be written and the value returned by a read is undefined. Register addresses are byte-wide. 9.1 CONFIGURATION SEQUENCE The following sequence should be followed when configuring the device with Rapid Code Reconfiguration disabled. See Sections 9.2 and 9.3 for a description of Rapid Code Reconfiguration. After a hard reset (RESETN), both the encoder and decoder are disabled. This allows the microprocessor to write all appropriate configuration registers before the device accepts data. Similarly, after a soft reset (EReset or DReset), the encoder or decoder are disabled. The EStart or DStart bits are set to allow the encoder or decoder to begin processing data. The following sequence should be followed when configuring (and reconfiguring) either the encoder or decoder. 1) Power on reset (RESETN). 2) If using frequency synthesis, configure flow control and enable by setting EFlowMode or DFlowMode. 3) Configure encoder and/or decoder. 4) Encoder: Write EStart to 1. This will cause the encoder to begin reading data and encoding. Decoder: Write DStart to 1. This will cause the decoder to begin reading channel data, looking for synchronization. 5) If a configuration change is necessary, first write EReset or DReset to 1. 6) Write new configuration registers, then set EStart or DStart. Repeat as necessary. Note that the encoder and decoder are independent paths. Either can be reset while the opposite path is processing data. 9.2 ENCODER RAPID CODE RECONFIGURATION Astro OC-3 contains support for on-the-fly code changing. This is useful in systems that require consecutive blocks of different code types to be encoded. For example, a multi-channel 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. PS4540_1202 To enable this mode in the encoder, the ECodeReconfig bit should be set to a 1. When using this mode, frame synchronization must be added externally, and the EFSyncInsert bit must be set to zero. The EFSyncPer register must also be written to zero, and the ESymSize must be set to 3 or 7 (4 or 8 bits per symbol). Helical interleaving must be set for all blocks, or cleared for all blocks. The CRC and scrambler settings must be the same for all blocks. EBlockMode must be set to 1, and EFlowMode must be set to 0 or 1. Finally, code changing on-the-fly is not supported when both EHelical and (EModRowRotate or EmodPlaneRotate) are set. The following registers may be changed for each block: ECodeX, ECodeY, ECodeZ, EEnhanced, EShortX, EShortY, EShortZ, EShortB, EShortR, EPSize. Each of these registers is mirrored, so that the microprocessor can write a new code type while the encoder is encoding according to a previous code type. All other registers must be the same for all blocks. The steps for rapid code reconfiguration code changing are as follows: 1) Set ECodeReconfig and write fixed register values. 2) Write code configuration and packet length for first block. 3) Start the encoder by writing the EStart bit to a one. The encoder will begin handshaking input data. 4) Configure the device for the code type of the next block. This occurs in parallel with loading of the first block of the first group. When configuration for the next code type is complete, write the EStart bit to a 1. 5) Wait for EProcComp interrupt. This interrupt indicates that the load of the first block has completed. If EStart was set before this interrupt occurs, the encoder will automatically begin encoding this block, and loading the next block. 6) Repeat steps 4 and 5 for each block to be decoded. Note the when using rapid code reconfiguration, the external block must input the exact number of bytes per block according to the value programmed into EPSize. If the encoded TPC block size is not a multiple of the symbol size, the encoder will pad zeros to make the output symbol aligned. Figure 31 shows the block timings of rapid code reconfiguration with helical interleaving disabled. Note that since the encoder has near zero latency, each block is simultaneously loaded and unloaded from the device. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 31 of 83 comtech aha corporation Figure 32 shows the block timings with helical interleaving enabled. Since the helical interleaver adds a one block latency, the loading of each block must complete before the unloading of the same block begins. The EProcComp interrupt is issued at the end of loading each block into the interleaver. Note that no interrupt occurs at the end of unloading. The device supports loading a block of a given code type, while unloading a block of a different code type. The code type for block 2 shown in the figure is much larger than that of the other blocks. Figure 31: Encoder Rapid Code Reconfiguration with Helical Interleaving Disabled EStart CONFIG BLOCK 0 EProc Comp EStart BLOCK 1 LOAD BLOCK 2 BLOCK 0 BLOCK 0 UNLOAD EProc Comp EProc EStart Comp BLOCK 1 BLOCK 2 BLOCK 1 BLOCK 2 Figure 32: Encoder Rapid Code Reconfiguration with Helical Interleaving Enabled EProc EStart Comp EStart CONFIG LOAD BLOCK 0 BLOCK 1 BLOCK 0 9.3 DECODER RAPID CODE RECONFIGURATION Similar to the encoder, Astro OC-3 contains support for on-the-fly code changing. To enable this mode in the decoder, the DCodeReconfig bit should be set to a 1. When using this mode, frame synchronization must be handled externally, the DFSyncEnable bit must be set to zero, and DScramPer must be set to 1 if using internal descrambling. The modulation type, CRC and scrambler must be the same for all blocks. DBlockMode must be set to 1. DFlowMode must be set to 0 or 1. The following registers may be changed for each block: DCodeX, DCodeY, DCodeZ, DEnhanced, DShortX, DShortY, DShortZ, DShortB, DShortR, DPSize, FeedbackX, FeedbackY, FeedbackZ, FeedbackH, FeedbackHP, Iterations. Each of these registers is mirrored, so that the microprocessor can write a new code type while the decoder is decoding according to a previous code type. All other registers must be the same for all blocks. Page 32 of 83 EProc Comp BLOCK 2 BLOCK 1 BLOCK 0 UNLOAD EProc Comp EProc EStart Comp BLOCK 2 BLOCK 1 BLOCK 2 The steps for rapid code reconfiguration code changing are as follows: 1) Set DCodeReconfig and write fixed register values. 2) Write code configuration and packet length for first block. 3) Start the decoder by writing the DStart bit to a one. The decoder will begin handshaking input data. 4) Configure the device for the code type of the next block. This occurs in parallel with loading of the first block of the first group. When configuration for the next code type is complete, write the DStart bit to a 1. 5) Wait for DProcComp interrupt. This interrupt indicates that the load of the first block has completed. If DStart was set before this interrupt occurs, the decoder will automatically begin decoding this block, and begin loading the next block. 6) Repeat steps 4 and 5 for each block to be decoded. 7) If no additional data is to be input to the device, the DNoBlock bit must be set. This has the same effect as writing DStart, except that the decoder does not expect a block to be input. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation If the decoder finishes processing the block before DStart or DNoBlock is written, the DProcComp interrupt will be issued, and the device will stop processing and wait until one of the two bits is written. The DProcComp will occur after DStart or DNoBlock is written. Figure 33 shows the block timing when using decoder rapid code reconfiguration. The figure shows a code type for block 1 that is much larger than for the other blocks. Figure 33: Decoder Rapid Code Reconfiguration DStart CONFIG LOAD DECODE UNLOAD BLOCK 0 DStart DProc Comp BLOCK 1 BLOCK 0 DNo Block DStart DProc Comp DNo Block DProc Comp DNo Block DProc DProc Comp Comp BLOCK 2 BLOCK 1 BLOCK 0 BLOCK 2 BLOCK 1 BLOCK 0 BLOCK 2 BLOCK 1 BLOCK 2 Note that when using rapid code reconfiguration, any data beyond the end of the TPC block, before the next sync input is discarded by the device. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 33 of 83 comtech aha corporation 9.4 REGISTER LIST The register set is broken up into encoder and decoder registers. Register addresses 0 through 0x3f belong to the encoder, while register addresses 0x40 through 0x7f belong to the decoder. Many encoder registers have the same effect as an equivalent decoder register. In these cases, the lower six bits (0 through 5) of each register address will match, with bit 6 indicating encoder or decoder. In addition, these registers are grouped together in the following register description section. All register bits labelled as “res” are reserved and must be written to zero. Reads return unpredictable values. Table 4: Register Bits - Alphabetical REGISTER BIT NAME CACPTPolarity ADDRESS* BIT REGISTER SECTION 2 Section 9.8.3 Signal Polarity (POLARITY) Section 9.7.3 Decoder Modulation Format ChannelFormat[1:0] 0x69 3:2 (DECMOD0-3) CorrAvg[2:0] 0x7a 7:5 Corrections[11:8] 0x7a 3:0 Section 9.9.4 Correction Count (DCORRCNT0-1) Corrections[7:0] 0x7b 7:0 CRCLoss 0x3c 3 Section 9.9.5 Interrupt (INTERRUPT) CRCLossM 0x3d 3 Section 9.9.6 Interrupt Mask (INTMASK) CRCSyncOff[7:0] 0x4e 7:0 Section 9.5.4 CRC Failure Threshold (DCRCTHRSH) CRDYPolarity 0x38 3 Section 9.8.3 Signal Polarity (POLARITY) CTransfers[15:8] 0x72 7:0 CTransfers[23:16] 0x71 7:0 Section 9.8.1 Data Flow Configuration (EDATACON0CTransfers[27:24] 0x70 3:0 7, DDATACON0-7) CTransfers[7:0] 0x73 7:0 DACPTPolarity 0x38 0 Section 9.8.3 Signal Polarity (POLARITY) Section 9.5.1 Packet Configuration (EPACKCON0-3, DBlockMode 0x40 7 DPACKCON0-3) Section 9.8.2 Buffer Configuration (EBUFCON, DBufferSize[7:0] 0x5e 7:0 DBUFCON0-1) DClkAdjMode 0x74 6 Section 9.8.1 Data Flow Configuration (EDATACON0DClkAdjPolarity 0x74 7 7, DDATACON0-7) DClkLock 0x3b 5 Section 9.9.2 Status (STATUS) DCodeReconfig 0x51 5 DCodeX[3:0] 0x50 7:4 Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, DCodeY[3:0] 0x50 3:0 DTPCCODE0-1) DCodeZ[3:0] 0x51 3:0 DCRCEnable 0x44 3 DCRCPoly[15:8] 0x47 7:0 DCRCPoly[23:16] 0x46 7:0 Section 9.5.2 CRC Configuration (ECRCCON0-4, DCRCPoly[31:24] 0x45 7:0 DCRCCON0-4) DCRCPoly[7:0] 0x48 7:0 DCRCSize[2:0] 0x44 2:0 DecComp 0x3c 0 Section 9.9.5 Interrupt (INTERRUPT) DecCompM 0x3d 0 Section 9.9.6 Interrupt Mask (INTMASK) Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, DEnhanced 0x51 4 DTPCCODE0-1) Section 9.8.1 Data Flow Configuration (EDATACON0DFlowMode[2:0] 0x70 7:5 7, DDATACON0-7) * All register addresses must be doubled when MUXMODE is asserted. Page 34 of 83 0x38 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation REGISTER BIT NAME DFSyncEnable DFSyncFreq[3:0] DFSyncLength[4:0] DFSyncMark[15:8] DFSyncMark[23:16] DFSyncMark[31:24] DFSyncMark[7:0] DFSyncPer[14:8] DFSyncPer[7:0] ADDRESS* BIT REGISTER SECTION 5 3:0 4:0 7:0 Section 9.7.1 Frame Synchronization Mark 7:0 Configuration (EFRMSYNC0-7, DFRMSYNC0-7) 7:0 7:0 6:0 7:0 Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, DHelical 0x51 7 DTPCCODE0-1) DModPlaneRotate 0x6b 6 Section 9.7.3 Decoder Modulation Format DModRowRotate 0x6b 7 (DECMOD0-3) DNoBlock 0x79 3 Section 9.9.1 Control (ECONTROL, DCONTROL) Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, DOutputECC 0x51 6 DTPCCODE0-1) DProcComp 0x3c 4 Section 9.9.5 Interrupt (INTERRUPT) DProcCompM 0x3d 4 Section 9.9.6 Interrupt Mask (INTMASK) DPSize[10:8] 0x40 2:0 DPSize[7:0] 0x41 7:0 DPSyncLength[1:0] 0x40 4:3 Section 9.5.1 Packet Configuration (EPACKCON0-3, DPSyncMark[15:8] 0x42 7:0 DPACKCON0-3) DPSyncMark[7:0] 0x43 7:0 DPSyncRemove 0x40 6 DRDYPolarity 0x38 1 Section 9.8.3 Signal Polarity (POLARITY) DReset 0x79 0 Section 9.9.1 Control (ECONTROL, DCONTROL) DScramEnable 0x49 4 DScramPer[3:0] 0x49 3:0 DScramPoly[15:8] 0x4a 7:0 Section 9.5.3 Scrambler Configuration DScramPoly[7:0] 0x4b 7:0 (ESCRAMCON0-4, DSCRAMCON0-4) DScramSeed[15:8] 0x4c 7:0 DScramSeed[7:0] 0x4d 7:0 DShortB[6:0] 0x55 6:0 DShortR[6:0] 0x56 6:0 Section 9.6.2 Shortening Configuration DShortX[6:0] 0x52 6:0 (ESHORTCON0-4, DSHORTCON0-4) DShortY[6:0] 0x53 6:0 DShortZ[3:0] 0x54 3:0 DStart 0x79 4 Section 9.9.1 Control (ECONTROL, DCONTROL) Section 9.7.3 Decoder Modulation Format DSymSize[2:0] 0x68 2:0 (DECMOD0-3) DTransfers[15:8] 0x76 7:0 DTransfers[23:16] 0x75 7:0 Section 9.8.1 Data Flow Configuration (EDATACON0DTransfers[27:24] 0x74 3:0 7, DDATACON0-7) DTransfers[7:0] 0x77 7:0 Section 9.8.2 Buffer Configuration (EBUFCON, DumpThresh[4:0] 0x5d 4:0 DBUFCON0-1) EACPTPolarity 0x38 6 Section 9.8.3 Signal Polarity (POLARITY) Section 9.8.2 Buffer Configuration (EBUFCON, EBufferSize[7:0] 0x1e 7:0 DBUFCON0-1) Section 9.5.1 Packet Configuration (EPACKCON0-3, EBlockMode 0x00 7 DPACKCON0-3) * All register addresses must be doubled when MUXMODE is asserted. PS4540_1202 0x60 0x65 0x60 0x63 0x62 0x61 0x64 0x66 0x67 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 35 of 83 comtech aha corporation REGISTER BIT NAME ECodeReconfig ECodeX[3:0] ECodeY[3:0] ECodeZ[3:0] ECRCEnable ECRCPoly[15:8] ECRCPoly[23:16] ECRCPoly[31:24] ECRCPoly[7:0] ECRCSize[2:0] ADDRESS* BIT 0x11 0x10 0x10 0x11 0x04 0x07 0x06 0x05 0x08 0x04 5 7:4 3:0 3:0 3 7:0 7:0 7:0 7:0 2:0 REGISTER SECTION Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, DTPCCODE0-1) Section 9.5.2 CRC Configuration (ECRCCON0-4, DCRCCON0-4) Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, DTPCCODE0-1) Section 9.8.1 Data Flow Configuration (EDATACON0EFlowMode[2:0] 0x30 7:5 7, DDATACON0-7) EFSyncFreq[3:0] 0x25 3:0 EFSyncInsert 0x20 5 EFSyncLength[4:0] 0x20 4:0 EFSyncMark[15:8] 0x23 7:0 Section 9.7.1 Frame Synchronization Mark EFSyncMark[23:16] 0x22 7:0 Configuration (EFRMSYNC0-7, DFRMSYNC0-7) EFSyncMark[31:24] 0x21 7:0 EFSyncMark[7:0] 0x24 7:0 EFSyncPer[14:8] 0x26 6:0 EFSyncPer[7:0] 0x27 7:0 Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, EHelical 0x11 7 DTPCCODE0-1) EModPlaneRotate 0x28 6 Section 9.7.2 Encoder Symbol Mapping (ENCMAP0-1) EModRowRotate 0x28 7 Section 9.6.1 TPC Constituent Code (ETPCCODE0-1, EPassThru 0x11 6 DTPCCODE0-1) EProcComp 0x3c 5 Section 9.9.5 Interrupt (INTERRUPT) EProcCompM 0x3d 5 Section 9.9.6 Interrupt Mask (INTMASK) EPSize[10:8] 0x00 2:0 EPSize[7:0] 0x01 7:0 EPSyncInsert 0x00 6 Section 9.5.1 Packet Configuration (EPACKCON0-3, EPSyncLength[1:0] 0x00 4:3 DPACKCON0-3) EPSyncMark[15:8] 0x02 7:0 EPSyncMark[7:0] 0x03 7:0 ERDYPolarity 0x38 7 Section 9.8.3 Signal Polarity (POLARITY) EReset 0x39 0 Section 9.9.1 Control (ECONTROL, DCONTROL) EScramEnable 0x09 4 EScramPer[3:0] 0x09 3:0 EScramPoly[15:8] 0x0a 7:0 Section 9.5.3 Scrambler Configuration EScramPoly[7:0] 0x0b 7:0 (ESCRAMCON0-4, DSCRAMCON0-4) EScramSeed[15:8] 0x0c 7:0 EScramSeed[7:0] 0x0d 7:0 EShortB[6:0] 0x15 6:0 EShortR[6:0] 0x16 6:0 Section 9.6.2 Shortening Configuration EShortX[6:0] 0x12 6:0 (ESHORTCON0-4, DSHORTCON0-4) EShortY[6:0] 0x13 6:0 EShortZ[3:0] 0x14 3:0 EStart 0x39 4 Section 9.9.1 Control (ECONTROL, DCONTROL) * All register addresses must be doubled when MUXMODE is asserted. EEnhanced Page 36 of 83 0x11 4 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation REGISTER BIT NAME ESymMap[7:0] ESymMapEnable ESymSize[2:0] ETransfers[15:8] ETransfers[23:16] ETransfers[27:24] ETransfers[7:0] FBitThresh[1:0] FBitThresh[2] FeedbackH[4:0] FeedbackHP[4:0] FeedbackX[4:0] FeedbackY[2:0] FeedbackY[4:3] FeedbackZ[4:0] FSynced FSyncInv FSyncOff[6:0] FSyncOn[5:0] FSyncTime[5:0] GOut0Config[2:0] GOut1Config[2:0] Iterations[7:0] LLRExponent[3:0] LLRMantissa[7:0] PreRotate PSynced ADDRESS* BIT 0x29 0x28 0x28 0x32 0x31 0x30 0x33 0x6c 0x6d 0x5a 0x5b 0x58 0x58 0x59 0x59 0x3b 0x6e 0x6d 0x6c 0x6e 0x3a 0x3a 0x5c 0x6b 0x6a 0x68 0x3b 7:0 4 2:0 7:0 7:0 3:0 7:0 7:6 7 4:0 4:0 4:0 7:5 6:5 4:0 3 7 6:0 5:0 5:0 6:4 2:0 7:0 3:0 7:0 7 4 REGISTER SECTION Section 9.7.2 Encoder Symbol Mapping (ENCMAP0-1) Section 9.8.1 Data Flow Configuration (EDATACON07, DDATACON0-7) Section 9.7.4 Decoder Synchronization Control (DECSYNC0-3) Section 9.6.3 Feedback (DFEEDBCK0-3) Section 9.9.2 Status (STATUS) Section 9.7.4 Decoder Synchronization Control (DECSYNC0-3) Section 9.9.3 General Output (OUTPUT) Section 9.6.4 Iterations (DITER) Section 9.7.3 Decoder Modulation Format (DECMOD0-3) Section 9.9.2 Status (STATUS) Section 9.7.4 Decoder Synchronization Control PSyncOn[5:0] 0x6f 5:0 (DECSYNC0-3) QBits[2:0] 0x69 6:4 Section 9.7.3 Decoder Modulation Format QMode[1:0] 0x69 1:0 (DECMOD0-3) ResetMapPtr 0x39 5 Section 9.9.1 Control (ECONTROL, DCONTROL) Resync 0x79 1 Section 9.7.3 Decoder Modulation Format RotateEnable 0x69 7 (DECMOD0-3) Rotation[2:0] 0x3b 2:0 Section 9.9.2 Status (STATUS) StopIter 0x5b 7 Section 9.6.3 Feedback (DFEEDBCK0-3) SyncAcq 0x3c 1 Section 9.9.5 Interrupt (INTERRUPT) SyncAcqM 0x3d 1 Section 9.9.6 Interrupt Mask (INTMASK) SyncLoss 0x3c 2 Section 9.9.5 Interrupt (INTERRUPT) SyncLossM 0x3d 2 Section 9.9.6 Interrupt Mask (INTMASK) UACPTPolarity 0x38 4 Section 9.8.3 Signal Polarity (POLARITY) UClkAdjMode 0x34 6 Section 9.8.1 Data Flow Configuration (EDATACON0UClkAdjPolarity 0x34 7 7, DDATACON0-7) UClkLock 0x3b 6 Section 9.9.2 Status (STATUS) URDYPolarity 0x38 5 Section 9.8.3 Signal Polarity (POLARITY) UTransfers[15:8] 0x36 7:0 UTransfers[23:16] 0x35 7:0 Section 9.8.1 Data Flow Configuration (EDATACON0UTransfers[27:24] 0x34 3:0 7, DDATACON0-7) UTransfers[7:0] 0x37 7:0 Version[7:0] 0x3f 7:0 Section 9.10.1 Version * All register addresses must be doubled when MUXMODE is asserted. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 37 of 83 comtech aha corporation Table 5: Register Description by Address ADDRESS MMODE=0 ADDRESS MMODE=1 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x1e 0x00 0x02 0x04 0x06 0x08 0x0a 0x0c 0x0e 0x10 0x12 0x14 0x16 0x18 0x1a 0x20 0x22 0x24 0x26 0x28 0x2a 0x2c 0x3c 0x20 MNEMONIC REGISTER NAME R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W EPACKCON0 EPACKCON1 EPACKCON2 EPACKCON3 ECRCCON0 ECRCCON1 ECRCCON2 ECRCCON3 ECRCCON4 ESCRAMCON0 ESCRAMCON1 ESCRAMCON2 ESCRAMCON3 ESCRAMCON4 ETPCCODE0 ETPCCODE1 ESHORTCON0 ESHORTCON1 ESHORTCON2 ESHORTCON3 ESHORTCON4 EBUFCON 0x40 R/W EFRMSYNC0 0x21 0x42 R/W EFRMSYNC1 0x22 0x44 R/W EFRMSYNC2 0x23 0x46 R/W EFRMSYNC3 0x24 0x48 R/W EFRMSYNC4 0x25 0x4a R/W EFRMSYNC5 0x26 0x4c R/W EFRMSYNC6 0x27 0x4e R/W EFRMSYNC7 0x28 0x29 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x50 0x52 0x60 0x62 0x64 0x66 0x68 0x6a 0x6c 0x6e 0x70 0x72 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ENCMAP0 ENCMAP1 EDATACON0 EDATACON1 EDATACON2 EDATACON3 EDATACON4 EDATACON5 EDATACON6 EDATACON7 POLARITY ECONTROL Encoder Packet Configuration 0 Encoder Packet Configuration 1 Encoder Packet Configuration 2 Encoder Packet Configuration 3 Encoder CRC Configuration 0 Encoder CRC Configuration 1 Encoder CRC Configuration 2 Encoder CRC Configuration 3 Encoder CRC Configuration 4 Encoder Scrambler Configuration 0 Encoder Scrambler Configuration 1 Encoder Scrambler Configuration 2 Encoder Scrambler Configuration 3 Encoder Scrambler Configuration 4 Encoder TPC Constituent Code 0 Encoder TPC Constituent Code 1 Encoder Shortening Configuration 0 Encoder Shortening Configuration 1 Encoder Shortening Configuration 2 Encoder Shortening Configuration 3 Encoder Shortening Configuration 4 Encoder Buffer Configuration Encoder Frame Synchronization Mark Configuration 0 Encoder Frame Synchronization Mark Configuration 1 Encoder Frame Synchronization Mark Configuration 2 Encoder Frame Synchronization Mark Configuration 3 Encoder Frame Synchronization Mark Configuration 4 Encoder Frame Synchronization Mark Configuration 5 Encoder Frame Synchronization Mark Configuration 6 Encoder Frame Synchronization Mark Configuration 7 Encoder Symbol Mapping 0 Encoder Symbol Mapping 1 Encoder Data Flow Configuration 0 Encoder Data Flow Configuration 1 Encoder Data Flow Configuration 2 Encoder Data Flow Configuration 3 Encoder Data Flow Configuration 4 Encoder Data Flow Configuration 5 Encoder Data Flow Configuration 6 Encoder Data Flow Configuration 7 Signal Polarity Encoder Control Page 38 of 83 R/W Comtech AHA is a subsidiary of Comtech Telecommunications Corporation HARD RESET 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 PS4540_1202 comtech aha corporation ADDRESS MMODE=0 ADDRESS MMODE=1 0x3a 0x3b 0x3c 0x3d 0x3e 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a 0x4b 0x4c 0x4d 0x4e 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x58 0x59 0x5a 0x5b 0x5c 0x5d 0x5e 0x74 0x76 0x78 0x7a 0x7e 0x80 0x82 0x84 0x86 0x88 0x8a 0x8c 0x8e 0x90 0x92 0x94 0x96 0x98 0x9a 0x9c 0xa0 0xa1 0xa4 0xa6 0xa8 0xaa 0xac 0xb0 0xb2 0xb4 0xb6 0xb8 0xba 0xbc 0x60 MNEMONIC REGISTER NAME R/W R R R/W R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W OUTPUT STATUS INTERRUPT INTMASK VERSION DPACKCON0 DPACKCON1 DPACKCON2 DPACKCON3 DCRCCON0 DCRCCON1 DCRCCON2 DCRCCON3 DCRCCON4 DSCRAMCON0 DSCRAMCON1 DSCRAMCON2 DSCRAMCON3 DSCRAMCON4 DCRCTHRSH DTPCCODE0 DTPCCODE1 DSHORTCON0 DSHORTCON1 DSHORTCON2 DSHORTCON3 DSHORTCON4 DFEEDBCK0 DFEEDBCK1 DFEEDBCK2 DFEEDBCK3 DITER DBUFCON0 DBUFCON1 0xc0 R/W DFRMSYNC0 0x61 0xc2 R/W DFRMSYNC1 0x62 0xc4 R/W DFRMSYNC2 0x63 0xc6 R/W DFRMSYNC3 0x64 0xc8 R/W DFRMSYNC4 0x65 0xca R/W DFRMSYNC5 0x66 0xcc R/W DFRMSYNC6 0x67 0xce R/W DFRMSYNC7 0x68 0xd0 R/W DECMOD0 General Output Status Interrupt Interrupt Mask Version Decoder Packet Configuration 0 Decoder Packet Configuration 1 Decoder Packet Configuration 2 Decoder Packet Configuration 3 Decoder CRC Configuration 0 Decoder CRC Configuration 1 Decoder CRC Configuration 2 Decoder CRC Configuration 3 Decoder CRC Configuration 4 Decoder Scrambler Configuration 0 Decoder Scrambler Configuration 1 Decoder Scrambler Configuration 2 Decoder Scrambler Configuration 3 Decoder Scrambler Configuration 4 Decoder CRC Failure Threshold Decoder TPC Constituent Code 0 Decoder TPC Constituent Code 1 Decoder Shortening Configuration 0 Decoder Shortening Configuration 1 Decoder Shortening Configuration 2 Decoder Shortening Configuration 3 Decoder Shortening Configuration 4 Decoder Feedback 0 Decoder Feedback 1 Decoder Feedback 2 Decoder Feedback 3 Decoder Iterations Decoder Buffer Configuration 0 Decoder Buffer Configuration 1 Decoder Frame Synchronization Mark Configuration 0 Decoder Frame Synchronization Mark Configuration 1 Decoder Frame Synchronization Mark Configuration 2 Decoder Frame Synchronization Mark Configuration 3 Decoder Frame Synchronization Mark Configuration 4 Decoder Frame Synchronization Mark Configuration 5 Decoder Frame Synchronization Mark Configuration 6 Decoder Frame Synchronization Mark Configuration 7 Decoder Modulation 0 PS4540_1202 R/W Comtech AHA is a subsidiary of Comtech Telecommunications Corporation HARD RESET 0x00 0x00 0x00 0xff 0x31 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Page 39 of 83 comtech aha corporation ADDRESS MMODE=0 ADDRESS MMODE=1 0x69 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x79 0x7a 0x7b 0xd2 0xd4 0xd6 0xd8 0xda 0xdc 0xde 0xe0 0xe2 0xe4 0xe6 0xe8 0xea 0xec 0xee 0xf2 0xf4 0xf6 Page 40 of 83 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W MNEMONIC DECMOD1 DECMOD2 DECMOD3 DECSYNC0 DECSYNC1 DECSYNC2 DECSYNC3 DDATACON0 DDATACON1 DDATACON2 DDATACON3 DDATACON4 DDATACON5 DDATACON6 DDATACON7 DCONTROL DCORRCNT0 DCORRCNT1 REGISTER NAME Decoder Modulation 1 Decoder Modulation 2 Decoder Modulation 3 Decoder Synchronization Control 0 Decoder Synchronization Control 1 Decoder Synchronization Control 2 Decoder Synchronization Control 3 Decoder Data Flow Configuration 0 Decoder Data Flow Configuration 1 Decoder Data Flow Configuration 2 Decoder Data Flow Configuration 3 Decoder Data Flow Configuration 4 Decoder Data Flow Configuration 5 Decoder Data Flow Configuration 6 Decoder Data Flow Configuration 7 Decoder Control Decoder Correction Count 0 Decoder Correction Count 1 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation HARD RESET 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 PS4540_1202 comtech aha corporation 9.5 USER DATA FORMATTING REGISTERS 9.5.1 PACKET CONFIGURATION (EPACKCON0-3, DPACKCON0-3) Read/Write Reset Value (hex)= 00 00 00 00 00 00 00 00 MUXMODE = 0 1 0x00 0x00 bit7 bit6 bit5 EBlock Mode EPSync Insert res 0x01 0x02 0x02 0x04 0x03 0x06 0x40 0x80 0x41 0x82 0x42 0x84 0x43 0x86 bit4 bit3 EPSyncLength[1:0] bit2 bit1 bit0 EPSize[10:8] EPSize[7:0] EPSyncMark[15:8] EPSyncMark[7:0] DBlock Mode DPSync Remove res DPSyncLength[1:0] DPSize[10:8] DPSize[7:0] DPSyncMark[15:8] DPSyncMark[7:0] xBlockMode - Block Mode. When set, the data packing mode is set to Block. When cleared, the data packing mode is set to Stream, and the device will assume that packet synchronization marks will be in the frame structure. xPSyncLength[1:0] - Packet Sync Mark length. The length of the packet sync mark is (xPSyncLength[1:0]+1)x4. xPSyncLength[1:0] must be set to 1 or 3 (8 or 16 bits) when EPSyncInsert / DPSyncRemove is cleared. EPSyncInsert - Insert Packet Sync Mark. When this bit is set in Stream Mode, the encoder will insert the packet sync mark configured by EPSyncLength[1:0] and EPSyncMark[15:0]. Note that an inverted synchronization mark is inserted every EScramPer[3:0] packets, to allow synchronization of the descrambler. When cleared in Stream Mode, the encoder will not insert packet sync marks. If the data stream input to the encoder already contains a packet sync mark, setting EPSyncInsert to a zero will cause the encoder to ignore the sync mark for CRC and scrambling. It will assume that the sync mark is of the length specified in EPSyncLength[1:0]. These pre-inserted sync marks are inverted by the scrambler every EScramPer[3:0] packets for descrambler synchronization. This mode is useful when transmitting MPEG packet data, that already contains packet synchronization marks. This bit should be cleared in Block Mode. DPSyncRemove - Remove Packet Sync Mark. When this bit is set in Stream Mode, the decoder will remove the packet sync marks from the data stream, so that they are not output from the device. When cleared, the decoder leaves the packet sync marks in the data stream. Every inverted packet sync mark is again inverted to return to the non-inverted state. When in Block Mode, packet synchronization marks are not in the data stream, and this bit must be set to 0. xPSize[10:0] - User Data Packet Size. The size of a packet, in bytes, not including the packet synchronization or CRC bits. A value of 0 represents 2048 bytes. xPSyncMark[15:0] - User Packet Synchronization Mark. The bit pattern of the synchronization mark. Note that the least significant bit of this register is the first bit of the mark inserted into the data stream. The length of the mark is determined by xPSyncLength[1:0], and the mark value should be written right justified into this register. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 41 of 83 comtech aha corporation 9.5.2 CRC CONFIGURATION (ECRCCON0-4, DCRCCON0-4) Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 00 MUXMODE = 0 0x04 0x05 0x06 0x07 0x08 0x44 0x45 0x46 0x47 0x48 1 0x08 0x0a 0x0c 0x0e 0x10 0x88 0x8a 0x8c 0x8e 0x90 bit7 bit6 bit5 res bit4 bit3 bit2 ECRCEnable ECRCPoly[31:24] ECRCPoly[23:16] ECRCPoly[15:8] ECRCPoly[7:0] DCRCEnable DCRCPoly[31:24] DCRCPoly[23:16] DCRCPoly[15:8] DCRCPoly[7:0] res bit1 bit0 ECRCSize[2:0] DCRCSize[2:0] xCRCEnable - CRC Enable. When set, the encoder will compute and insert CRC bits, and the decoder will compute, check and remove CRC. xCRCSize[2:0] - CRC Size, in nibbles. The size of the CRC, in bits, is xCRCSize[2:0] x 4. A value of 0 represents 32 bits. xCRCPoly[31:0] - CRC Polynomial. Refer to Figure 5 on Page 5 for configuration of the polynomial. 9.5.3 SCRAMBLER CONFIGURATION (ESCRAMCON0-4, DSCRAMCON0-4) Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 00 MUXMODE = 0 1 0x09 0x12 0x0a 0x0b 0x0c 0x0d bit6 res 0x14 0x16 0x18 0x1a 0x49 0x92 0x4a 0x4b 0x4c 0x4d bit7 0x94 0x96 0x98 0x9a res bit5 bit4 bit3 EScram Enable EScramPoly[15:8] EScramPoly[7:0] EScramSeed[15:8] EScramSeed[7:0] DScram Enable DScramPoly[15:8] DScramPoly[7:0] DScramSeed[15:8] DScramSeed[7:0] bit2 bit1 bit0 EScramPer[3:0] DScramPer[3:0] xScramEnable - Scrambler 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 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 6 on Page 7 for configuration of the polynomial. Page 42 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation xScramSeed[15:0] - Seed for Descrambler. The PRBS is reset to this seed at the beginning of every xScramPer[3:0] packets. Refer to Figure 6 on Page 7 for configuration of the seed. xScramPer[3:0] - Scrambler Period. The scrambler is reset to the value programmed in xScramSeed[15:0] at the beginning of every xScramPer[3:0] packets. A value of 0 represents 16. Note that if packet sync marks are being used, the sync mark that is aligned with the scrambler period is inverted at the encoder and the decoder regardless of the setting of EPSyncInsert or DPSyncRemove. This inversion does not occur when xScramPer[3:0] is set to 1. When xBlockMode = 1 or xScramEnable = 0, this value should be programmed to 1. 9.5.4 CRC FAILURE THRESHOLD (DCRCTHRSH) Read/Write Reset Value (hex) = 00 MUXMODE = 0 1 0x4e 0x9c bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CRCSyncOff[7:0] CRCSyncOff[7:0] -CRC failure for resync threshold. The CRC comparator keeps a running count of failed CRCs that is reset with each CRC that passes. If this count exceeds the CRCSyncOff[7:0] value, then a CRCLoss interrupt is generated, the Synced bit is reset, and the sync block begins resynchronization. When CRCSyncOff[7:0] is set to zero, the automatic resync on CRC failure feature is disabled. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 43 of 83 comtech aha corporation 9.6 CODE CONFIGURATION REGISTERS 9.6.1 TPC CONSTITUENT CODE (ETPCCODE0-1, DTPCCODE0-1) Read/Write Reset Value (hex) = 00 00 00 00 MUXMODE = 0 1 0x10 0x20 bit7 bit6 bit5 bit4 ECodeX[3:0] EPass ECode 0x11 0x22 EHelical EEnhanced Thru Reconfig 0x50 0xa0 DCodeX[3:0] DOutput DCode 0x51 0xa2 DHelical DEnhanced ECC Reconfig bit3 bit2 bit1 bit0 ECodeY[3:0] ECodeZ[3:0] DCodeY[3:0] DCodeZ[3:0] 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 xCode*[2:0] † EXTENDED HAMMING PARITY ONLY 0x2 0x3 0x4 0x5 0x6 0x7 N/A (8,4) (16,11) (32,26) (64,57) (128,120) (4,3) (8,7) (16,15) (32,31) (64,63) (128,127) † xCode* applies to ECodeX, ECodeY, ECodeZ, DCodeX, DCodeY, and DCodeZ. xCodeY[3:0] - Y axis code. Defined the same as xCodeX[3:0]. xEnhanced - enhanced TPC Enable. When set, a hyper-diagonal axis is added to the code. This adds one additional row of parity bits to 2-dimensional codes, and one addition plane of parity bits to 3dimensional codes. When xEnhanced is set with a 2-dimensional code, xShortY must be greater than or equal to 1. When xEnhanced is set with a 3-dimensional code, xShortZ 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 two dimensional codes. The maximum length for code Z is 16 bits. xCodeReconfig - Rapid Code Reconfiguration Enable. When set, the rapid code reconfiguration option is enabled. When cleared, this option is disabled. See Section 9.2 Encoder Rapid Code Reconfiguration and Section 9.3 Decoder Rapid Code Reconfiguration for details. 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 all n bits through from the input to the output. DOutputECC - Decoder Output ECC. When set, the decoder will output both the user data and the TPC ECC bits. Packet synchronization, descrambling, and CRC checking must be disabled when this bit is set. The DPSize must be set to match the size of the entire TPC block. xHelical - Page 44 of 83 Helical Interleaver/Deinterleaver Enable. See Section 3.6 for a description of helical interleaving. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.6.2 SHORTENING CONFIGURATION (ESHORTCON0-4, DSHORTCON0-4) Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 00 MUXMODE = 0 0x12 0x13 0x14 0x15 0x16 0x52 0x53 0x54 0x55 0x56 1 0x24 0x26 0x28 0x2a 0x2c 0xa4 0xa6 0xa8 0xaa 0xac bit7 bit6 bit5 res res bit4 bit3 bit1 bit0 EShortX[6:0] EShortY[6:0] res res res res res EShortZ[3:0] EShortB[6:0] EShortR[6:0] DShortX[6:0] DShortY[6:0] res res res bit2 DShortZ[3:0] DShortB[6:0] DShortR[6:0] xShortX[6:0] - Number of bits to shorten from the X axis code. This value must be set to zero when helical interleaving or enhanced TPC is enabled. xShortY[6:0] - Number of bits to shorten from the Y axis code. For 2-dimensional codes, this value must be greater than or equal to 1 if enhanced TPC is enabled. For 3-dimensional codes, this value must be set to zero when helical interleaving or enhanced TPC is enabled. xShortZ[3:0] - Number of bits to shorten from the Z axis code. For 2-dimensional codes, this value must be set to zero. For 3-dimensional codes, this value must be greater than or equal to 1 if enhanced TPC is enabled. xShortB[6:0] - Number of bits to shorten from the first row of a 2-dimensional code, or from the xShortR+1 row of the top plane of a 3-dimensional code. This value must be set to zero when helical interleaving is enabled. xShortR[6:0] - Number of full rows to shorten from the top plane of a 3-dimensional code. For 2dimensional codes, this value must be set to zero. This value must be set to zero when helical interleaving is enabled. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 45 of 83 comtech aha corporation 9.6.3 FEEDBACK (DFEEDBCK0-3) Read/Write Reset Value (hex) = 00 00 00 00 MUXMODE = 0 0x58 0x59 0x5a 0x5b 1 bit7 bit6 bit5 0xb0 FeedbackY[2:0] 0xb2 res FeedbackY[4:3] 0xb4 res 0xb6 StopIter res bit4 bit3 bit2 bit1 bit0 FeedbackX[4:0] FeedbackZ[4:0] FeedbackH[4:0] FeedbackHP[4:0] 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 hyper axis. FeedbackHP[4:0] - Feedback for the hyper parity row. StopIter - When set, decoder will stop iterating when convergence is detected. Note: Refer to Section 4.3.3 Feedback for a description of the feedback values. 9.6.4 ITERATIONS (DITER) Read/Write Reset Value (hex) = 00 MUXMODE = 0 1 0x5c 0xb8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Iterations[7:0] Iterations[7:0] - Maximum number of iterations to perform. When set to zero, the decoder outputs the hard decision values for each bit with no corrections. Page 46 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.7 CHANNEL INTERFACE REGISTERS 9.7.1 FRAME SYNCHRONIZATION MARK CONFIGURATION (EFRMSYNC0-7, DFRMSYNC0-7) Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 MUXMODE = 0 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 1 0x40 0x42 0x44 0x46 0x48 0x4a 0x4c 0x4e 0xc0 0xc2 0xc4 0xc6 0xc8 0xca 0xcc 0xce bit7 bit6 res res res res bit5 bit4 bit3 bit2 bit1 bit0 EFSyncInsert EFSyncLength[4:0] EFSyncMark[31:24] EFSyncMark[23:16] EFSyncMark[15:8] EFSyncMark[7:0] res EFSyncFreq[3:0] EFSyncPer[14:8] EFSyncPer[7:0] DFSyncEnable DFSyncLength[4:0] DFSyncMark[31:24] DFSyncMark[23:16] DFSyncMark[15:8] DFSyncMark[7:0] res DFSyncFreq[3:0] DFSyncPer[14:8] DFSyncPer[7:0] EFSyncInsert - Insert Frame Sync Mark at Encoder. When set, the encoder will insert the synchronization mark defined here. When cleared, no synchronization mark is inserted, the EFSyncPer[14:0] value should be set equal to the desired size of the entire frame, and EFSyncFreq[3:0] should be set to one. DFSyncEnable - Enable Decoder Synchronization. When set, the decoder will automatically sync to the data stream by searching for the programmed sync mark. When cleared, external logic must generate the CSTART signal, indicating the beginning of a TPC block. xFSyncLength[4:0] - Sync Mark Length. The length of the synchronization mark, in bits. Valid values for sync length are from 4 to 32, where 32 is written into the register as 0. xFSyncMark[31:0] - Synchronization Mark. The non-inverted synchronization mark pattern is written into bits (xFSyncLength[4:0]-1:0). The least significant bit of this value is the first bit transmitted over the channel. The device will operate with any synchronization pattern, however improved synchronization is achieved using marks with low auto-correlation. xFSyncFreq[3:0] - Inverted Synchronization Mark Frequency. The number of synchronization marks expected to include one inverted synchronization mark. If set to 1, no inverted synchronization marks are expected, and a value of 0 represents 16. xFSyncPer[14:0] - Sync Mark Period. Sync marks are expected every xFSyncPer[14:0] bits. Note that the xFSyncPer[14:0] value includes the length of the synchronization mark. When sync insertion is not used, this value should be set to the desired length of the entire frame. This may be equal to the encoded TPC block size, or a larger value can be used to guarantee that the encoded block size is a multiple of the symbol size. In this case, the device will automatically pad any data between the TPC block size and the frame size with zeros, and remove these at the decoder. A value of zero for the decoder is illegal. A value of zero for the encoder is used only for rapid code reconfiguration, and is illegal otherwise. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 47 of 83 comtech aha corporation 9.7.2 ENCODER SYMBOL MAPPING (ENCMAP0-1) Read/Write (0x28), Write Only (0x29) Reset Value (hex) = 00 00 MUXMODE = 0 1 0x28 0x50 bit7 bit6 EModRow EModPlane Rotate Rotate 0x29 0x52 bit5 res bit4 bit3 ESymMap res Enable ESymMap[7:0] bit2 bit1 bit0 ESymSize[2:0] ESymSize[2:0] - Modulated Symbol Size. The number of bits output per clock across the EDATA[7:0] bus is ESymSize[2:0]+1. ESymMapEnable - Symbol Map Table Enable. When set, the symbol map table is enabled. When disabled, the encoded data is output directly, with no mapping. ESymMap[7:0] - Symbol Map Table Access. Each write to this address causes a write to the location pointed to by the symbol map pointer in the symbol map table. The pointer is automatically incremented, causing the next write to occur at the next location in the symbol map table. The pointer can be reset by writing a one to the ResetMapPtr bit. The symbol map RAM table is not readable. EModRowRotate - Setting this bit enables symbol interleaving rotation after each row in the TPC block. This can be used with higher order modulation to spread the less confident bits in a symbol across all axes of the array. See Section 3.5 for a description of when to enable this option. Encoder rotates right. EModPlaneRotate - Setting this bit enables symbol interleaving after each plane in the TPC block. This can be used with higher order modulation to spread the less confident bits in a symbol across all axes of the array. See Section 3.5 for a description of when to enable this option. The encoder frame size, not including sync marks must be a multiple of four when EModRowRotate is set. 9.7.3 DECODER MODULATION FORMAT (DECMOD0-3) Read/Write Reset Value (hex) = 00 00 00 00 MUXMODE = 0 1 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x68 0xd0 PreRotate res DSymSize[2:0] Rotate 0x69 0xd2 QBits[2:0] ChannelFormat[1:0] QMode[1:0] Enable 0x6a 0xd4 LLRMantissa[7:0] DModRow DModPlane 0x6b 0xd6 res LLRExponent[3:0] Rotate Rotate PreRotate - Pi/8 Rotate Incoming Symbols. The device expects incoming 8-PSK symbols to be aligned at 22.5 (Pi/8) and 67.5 degrees. If the demodulator aligns the symbols at 0 and 45 degrees, this bit should be set. The device will rotate the incoming symbols by 22.5 degrees before processing. DSymSize[2:0] - Modulation Format. The number of bits per symbol is DSymSize + 1. See Section 4.2.1 Channel Input Formatting, for a description of input signal wiring. RotateEnable - Enable internal symbol rotation. When set, the synchronization logic will rotate the phase internally until synchronization is achieved. When cleared, no internal rotation is done. In this case, external logic must monitor the ROTATE output signal and execute an required rotation. Page 48 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation QBits[2:0] - Quantization bits. A value of 0 represents 8 bits. When ChannelFormat is set to 2 or 3, the maximum value for QBits[2:0] is 4. ChannelFormat[1:0] - Channel Input Format. This value determines internal signal routing, and should be set according to the modulation format and input signal wiring. The following table describes each mode. See Section 4.2.1, for a description of input signal wiring. Channel Format[1:0] INPUT CHANNEL FORMAT 8-PSK, 16, 64, 256-QAM with internal rotation and soft metric (LLR) computation. Input data is one in-phase (I) and one quadrature (Q) component per transfer. Maximum symbol rate is 43 Msym/sec. BPSK/QPSK Modulation with internal rotation and soft metric computation. Input data is one in-phase (I) and one quadrature (Q) component per transfer. Maximum symbol rate is 43 Msym/sec. QPSK Modulation at Channel Rates > 43 Msym/sec, with internal symbol rotation. Input data is two in-phase (I) and two quadrature (Q) components per transfer. Maximum symbol rate is 86 MSym/sec. Other modulations with external rotation and soft metric computation. Input data is one to four soft metrics per transfer. Maximum input rate is 174 Mbit/sec (where bit is a soft metric). 00 01 10 11 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 HARD DECISION NO 1 CONFIDENCE RANGE CONFIDENCE N/A N/A N/A 0000 Min ... Max 1000 1000 0000 0001 ... ... ... ... 1111 1111 0111 0111 LLRMantissa[7:0] - LLR Normalization Mantissa Term. When internal LLR (soft metric) computation is used with 8-PSK, 16,64,256-QAM, a normalization term is required that depends on the distance between received constellation points, relative to the input scaling. This normalization term is expressed in floating point notation, with LLRMantissa being the mantissa term (M), and LLRExponent the exponent term (E). The radix (or base) for the floating point number is two. Therefore, the LLR Normalization value used is shown here LLRExponent – 8 LLRMantissa LLRNormalization = 1 + ----------------------------------- × 2 256 The equation for the LLR Normalization is described in Section 4.2.4 LLR Normalization. LLRExponent[3:0] - LLR Normalization Exponent Term. DModRowRotate - Setting this bit enables symbol interleaving after each row in the TPC block. See Section 3.5 for a description of when to enable this option. Decode rotates left. DModPlaneRotate - Setting this bit enables symbol interleaving after each plane in the TPC block. See Section 3.5 for a description of when to enable this option. The decoder frame size, not including sync marks, must be a multiple of four when DModRowRotate is set. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 49 of 83 comtech aha corporation 9.7.4 DECODER SYNCHRONIZATION CONTROL (DECSYNC0-3) Read/Write Reset Value (hex) = 00 00 00 00 MUXMODE = 0 0x6c 0x6d 0x6e 0x6f 1 bit7 bit6 0xd8 FBitThresh[1:0] 0xda FBitThresh[2] 0xdc FSyncInv res 0xde res bit5 bit4 bit3 bit2 bit1 bit0 FSyncOn[5:0] FSyncOff[6:0] FSyncTime[5:0] PSyncOn[5:0] FBitThresh[2:0] - Frame synchronization mark bit threshold. When searching for a frame synchronization mark, the decoder declares a bit stream a valid synchronization mark if it has FBitThresh[2:0] or less bits different from the value in DFSyncMark[31:0]. The first sync mark detected must have FBitThresh -1 or less bits different than DFSyncMark[31:0] when FBitThresh[2:0] is not equal to zero. FSyncOn[5:0] - Frame Synchronization Achieved Threshold. When the sync mark count equals FSyncOn[5:0], the FSynced bit is set, and data is input to the decoder following the next inverted sync mark. If packet synchronization is disabled, the SyncAcq interrupt is also set. FSyncOff[6:0] -Loss of Frame Synchronization Threshold. When the missed sync mark count equals FSyncOff[6:0], then the SyncLoss interrupt is issued, the FSynced bit is reset, and the device begins resynchronization. When SyncOff[6:0] is set to zero, the automatic resync feature is disabled. FSyncInv - Detect Inverted Frame Synchronization. If the data stream may be inverted by the channel, setting this bit will cause the frame synchronization logic to detect the inverted synchronization and invert the bit stream. For example, with QPSK systems, this will generally allow synchronization to occur in about one half the average time. When cleared, the frame synchronization logic will only lock on a non-inverted bit stream. FSyncTime[5:0] - Synchronization Time. The amount of time, in terms of periods of length DFSyncPer[15:0] bits, in which the synchronizer must achieve synchronization. If FSyncTime[5:0] x DFSyncPer[15:0] bits are examined without achieving synchronization, the current phase rotation is incremented by one, and synchronization is attempted with the new rotation. A value of zero disables phase rotation and assertion of the ROTATE signal. FSyncTime[5:0] must be set greater than FSyncOn[5:0] for the device to acquire frame synchronization. PSyncOn[5:0] - Packet Synchronization Achieved Threshold. When PSyncOn[5:0] sync marks are identified in the proper location, the PSynced bit and the SyncAcq interrupt bit are set, and the data is ready to be output from the device. Page 50 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.8 DATA INPUT/OUTPUT CONFIGURATION 9.8.1 DATA FLOW CONFIGURATION (EDATACON0-7, DDATACON0-7) Read/Write Reset Value (hex) = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 MUXMODE = 0 0x30 0x31 0x32 0x33 1 0x60 0x62 0x64 0x66 0x34 0x68 0x35 0x36 0x37 0x70 0x71 0x72 0x73 0x6a 0x6c 0x6e 0xe0 0xe2 0xe4 0xe6 0x74 0xe8 0x75 0xea 0x76 0xec 0x77 0xee bit7 bit6 bit5 bit4 EFlowMode[2:0] UClkAdj UClkAdj Polarity Mode res ETransfers[23:16] ETransfers[15:8] ETransfers[7:0] res bit2 bit1 bit0 ETransfers[27:24] UTransfers[27:24] UTransfers[23:16] UTransfers[15:8] UTransfers[7:0] res CTransfers[23:16] CTransfers[15:8] CTransfers[7:0] DFlowMode[2:0] DClkAdj DClkAdj Polarity Mode bit3 res CTransfers[27:24] DTransfers[27:24] DTransfers[23:16] DTransfers[15:8] DTransfers[7:0] ETransfers[27:0] - Encoded Transfers per Flow Control Frame. When encoder flow control is enabled, this register determines the number of encoded data transfers that should occur for each flow control frame. The device will guarantee that one flow control frame contains exactly ETransfers[27:0] encoded transfers, and UTransfers[27:0] unencoded transfers. UTransfers[27:0] - Unencoded Transfers per Flow Control Frame. When encoder flow control is enabled, this register determines the number of unencoded data transfers that should occur for each flow control frame. The device will guarantee that one flow control frame contains exactly ETransfers[27:0] encoded transfers, and UTransfers[27:0] unencoded transfers. CTransfers[27:0] - Channel Transfers per Flow Control Frame. When decoder flow control is enabled, this register determines the number of channel data transfers that should occur for each flow control frame. The device will guarantee that one flow control frame contains exactly CTransfers[27:0] channel transfers, and DTransfers[27:0] decoded transfers. DTransfers[27:0] - Decoded Transfers per Flow Control Frame. When decoder flow control is enabled, this register determines the number of decoded data transfers that should occur for each flow control frame. The device will guarantee that one flow control frame contains exactly ETransfers[27:0] encoded transfers, and DTransfers[27:0] decoded transfers. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 51 of 83 comtech aha corporation xFlowMode - Flow Control Mode. Data flow through the device can be controlled to create a constant delay pipe. This greatly simplifies system integration, as the device handles all clock domain crossing and buffering. The following table describes each mode. See Section 5.0 for a full description of flow control. xFlowMode [2:0] 0 1 2 3 4 5 DESCRIPTION Flow Control Disabled. All transfers in and out of the device are handshaked with RDY and ACPT. The decoder has only minimal buffering to load, decode, and unload three different blocks. All buffering in encoder is disabled. See Section 5.2. Internal Buffering Enabled. All transfers in and out of the device are handshaked with RDY and ACPT. The decoder has variable sized input and output buffers. The encoder has a variable size input FIFO. See Section 5.3. Flow Control via Handshaking, Channel/Encoded Interface Master. The data interface handshake is regulated by the device to generate a constant data flow, depending on the rate of handshaking at the channel interface. The data must be a continuous stream. See Section 5.4. Flow Control via Handshaking, Unencoded Interface Master. This mode is valid for the encoder only. The encoded data interface handshake is regulated by the device to generate a constant data flow, depending on the rate of handshaking at the unencoded interface. The data must be a continuous stream. See Section 5.4. Flow Control via Frequency Synthesis with Intermittent Data Stream. All data transfers in and out of the device occur with one transfer per rising clock edge. An external VCO is used to generate the data clock. The device drives the VCO to create the appropriate clock frequency. See Section 5.5. Flow Control via Frequency Synthesis with Continuous Data Streams. This mode is the same as mode 4, except that the data must be a continuous stream. When using DFlowMode = 5, the decoder can be used with variable iterations per block. See Section 5.5 and 5.6. When modifying any data flow configuration values, the xFlowMode register should be first written to 0 to disable flow mode. After the configuration is complete, xFlowMode should be written to the appropriate value. xClkAdjMode - Clock Adjust Mode. When set, the clock adjust output (UCLKADJ[2:0] or DCLKADJ[2:0]) generates two charge pump outputs, and a lock detect. CLKADJ[0] is a charge pump created by comparing clock phases, CLKADJ[1] is a charge pump created by comparing clock frequencies, and CLKADJ[2] is a phase lock detect output. When xClkAdjMode is cleared, the three most significant bits of the current value of the synthesizer up/down counter (the clock phase error) are output on CLKADJ[2:0]. This is a signed 2’s complement number representing the phase error between the two clocks. xClkAdjPolarity - Clock Adjust Polarity. When set, the CLKADJ[1:0] bits are normal polarity (as specified in Section 6.1). When cleared, the CLKADJ[1:0] bits are inverted. Note that this bit is only valid when the corresponding xClkAdjMode mode is set. Page 52 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.8.2 BUFFER CONFIGURATION (EBUFCON, DBUFCON0-1) Read/Write Reset Value (hex) = 00 00 MUXMODE = 0 1 0x1e 0x3c 0x5d 0xba 0x5e 0xbc bit7 bit6 res bit5 bit4 bit3 bit2 bit1 bit0 EBufferSize[7:0] DumpThresh[4:0] DBufferSize[7:0] EBufferSize[7:0] - Encoder Logical Buffer Size. When EFlowMode[2:0] is set to a non-zero value, an encoder input buffer is enabled to smooth the burst nature of the TPC encoder. Note that EBufferSize[7:0] does not set a maximum size on the encoder buffer, but instead it determines how many bytes the buffer should delay the datapath in order to guarantee a smooth data flow at both the unencoded and encoded data interfaces. EBufferSize[7:0] should be set according to the following equation: cr EBufferSize = [ n x × n y × ( n z – k z ) + n x × ( n y – k y ) + n x – k x ] ------ + 1 32 Where the code is (nx,kx)(ny,ky)(nz,kz) and cr is computed as shown in Section 5.1. For 2D codes, nz and kz are zero. ky or kz should include the hyper axis parity bits. DBufferSize[7:0] - Decoder Buffer Size. When DFlowMode[2:0] is set to 2 or 5, this register determines the size of the decoder variable iteration buffer, in steps of 128 bits. Setting this value to a larger number allows the decoder to execute more iterations per block; setting this value to a smaller number decreases latency. When DFlowMode[2:0] is set to 1 or 4, DBufferSize[7:0] determines the size of two identical decoder input and output FIFOs, in steps of 128 bits. The maximum value for DBufferSize[7:0] is: n–k DBufferSize ≤ 255 – ----------128 and n DBufferSize ≤ ----16 DFlowMode = 2 or 5 n–k DBufferSize ≤ 127 – ----------256 and n DBufferSize ≤ ----16 DFlowMode = 1 or 4 When DFlowMode[20] is set to 2 or 5, and DumpThresh[4:0] is non-zero, the minimum value for DBufferSize[7:0] is: n DBufferSize ≥ -------128 If this equation cannot be met, DumpThresh[4:0] must be set to 0. A value of zero is illegal. When DumpThresh[4:0] is set to 0, the minimum value for DBufferSize[7:0] is 1. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 53 of 83 comtech aha corporation DumpThresh[4:0] - Decoder Stop Iterating Threshold. When the decoder does not complete the iterating process before the buffer fills, a dump is issued. The decoder stops after the next iteration, and outputs the current data. The value of DumpThresh[4:0] depends on the code configuration as described in Section 5.6. For block sizes smaller than 512 bits, the automatic dump feature must be disabled by setting DumpThresh[4:0] to 0. 9.8.3 SIGNAL POLARITY (POLARITY) Read/Write Reset Value (hex) = ff MUXMODE = 0 1 0x38 0x70 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ERDY Polarity EACPT Polarity URDY Polarity UACPT Polarity CRDY Polarity CACPT Polarity DRDY Polarity DACPT Polarity xPolarity - Handshake Signal Polarity. When set, the respective handshake signal is active high. When cleared, the respective handshake signal is active low. Page 54 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.9 CONTROL AND STATUS 9.9.1 CONTROL (ECONTROL, DCONTROL) Read/Write Reset Value (hex) = 00 00 MUXMODE = 0 bit7 1 0x39 0x72 0x79 0xf2 Note: bit6 res res bit5 bit4 Reset MapPtr EStart DStart bit3 bit2 bit1 res DNo Block res bit0 EReset Resync DReset All bits in these registers are control bits. Writing a one to each bit causes the specified action to occur. Writing a zero to any bit has no effect. ResetMapPtr - Reset Symbol Map Table Pointer Control Bit. Writing a one to this bit causes the next write to ESymMap[7:0] to be written to address 0x0 of the symbol map. This bit is automatically cleared. Writing a zero has no effect. EStart - Start Encoder. Setting this bit indicates to the encoder that all configuration registers have been set for the new code type. The encoder will immediately begin loading data through the unencoded data interface. When using Rapid Code Reconfiguration, this bit must be set after each block code type is written into the device. See Section 9.2 Encoder Rapid Code Reconfiguration for more details. This bit is automatically cleared. DStart - Start Decoder. Setting this bit indicates to the decoder that all configuration registers have been set for the new code type. The decoder will immediately begin loading data through the channel interface. When using Rapid Code Reconfiguration, this bit must be set after each block code type is written into the device. See Section 9.3 Decoder Rapid Code Reconfiguration for more details. This bit is automatically cleared. DNoBlock - No block input when using Rapid Code Reconfiguration. If no data block is to be input during the next decoding cycle, this bit must be set to cause the decoder to continue processing (decoding and unloading) the previously loaded blocks. This bit is automatically cleared. Resync - Resynchronize command. Setting this bit to a one resets all counts in the synchronizer, clears the FSynced and PSynced bits, and initiates a search for synchronization. All data in the device is cleared. This bit is automatically cleared. EReset - Encoder Soft Reset. When written to a 1, all data in the encode path is cleared. No register contents are affected. This bit remains set until EStart is written to a 1. After a hard reset (RESETN) or EReset the encoder does not accept data until the EStart bit is set. If encoder rapid code reconfiguration is disabled, this bit must be set before modifying any encoder configuration registers. DReset - Decoder Soft Reset. When written to a 1, all data in the decode path is cleared. No register contents are affected. This bit remains set until DStart is written to a 1. After a hard reset (RESETN) or DReset the decoder does not accept data until the DStart bit is set. If decoder rapid code reconfiguration is disabled, this bit must be set before modifying any decoder configuration registers. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 55 of 83 comtech aha corporation 9.9.2 STATUS (STATUS) Read Only Reset Value (hex) = 00 MUXMODE = bit7 0 1 0x3b 0x76 bit6 res bit5 bit4 UClkLock DClkLock PSynced bit3 bit2 FSynced bit1 bit0 Rotation[2:0] xClkLock - Clock locked when using frequency synthesis. Set when the frequency synthesizer has locked to the programmed clock frequency. This bit is only valid when xFlowEnable = 1, and xHandshake = 0. PSynced - Packet Synchronized. Set after the synchronizer achieves packet synchronization. When set, data is ready to be output from the device. This bit is reset after a Resync. FSynced - Frame Synchronized. Set after the synchronizer achieves frame synchronization. When set, data is passed to the TPC decoder. This bit is reset after a Resync, or if SyncOff[5:0] sync marks are missed. Rotation[2:0] - Current phase rotation. When the device is synchronizing to the incoming symbol stream, this value will increment for each possible phase in the constellation. After synchronization is detected, this value will remain stable, indicating the current phase rotation. Note that when RotateEnable is cleared, this value will always return 0. 9.9.3 GENERAL OUTPUT (OUTPUT) Read/Write Reset Value (hex) = 00 MUXMODE = 0 1 0x3a 0x74 bit7 bit6 res bit5 bit4 GOut0Config[2:0] bit3 res bit2 bit1 bit0 GOut1Config[2:0] GOutxConfig[2:0] - General output control. These registers control the state of the general output signals (GOUT[1:0]). 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 can be used for system debugging or control of external device. The following table shows the options for each GOUT signal. GOutx Config[2:0] 0 1 2 3 4 5 6 7 Page 56 of 83 SELECTED OUTPUT SIGNAL Drive GOUT to 0 (low). Drive GOUT to 1 (high). Drive value of FSynced status bit. Drive value of PSynced status bit. Differentially drive decoder load complete event. The GOUT will change state each time the decoder completes loading one block of data. Differentially drive decode complete event. The GOUT will change state each time the decoder completes decoding one block of data. Differentially drive next block ready for encoder when using Rapid Code Reconfiguration. The GOUT will change state each time the device is ready to accept a block at the encoder input. This will occur after the later of the microprocessor writing EStart or the EProcComp interrupt from the previous block. Differentially drive next block ready for decoder when using Rapid Code Reconfiguration. The GOUT will change state each time the device is ready to accept a block at the decoder input. This will occur after the later of the microprocessor writing DStart or the DProcComp interrupt from the previous block. Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.9.4 CORRECTION COUNT (DCORRCNT0-1) Read/Write Reset Value (hex) = 00 00 MUXMODE = 0 1 0x7a 0xf4 0x7b 0xf6 bit7 bit6 bit5 CorrAvg[2:0] bit4 bit3 res Corrections[7:0] bit2 bit1 bit0 Corrections[11:8] CorrAvg[2:0] - Blocks to Average. This value is log base 2 of the number of blocks to average when computing the average corrections per block. A value of zero disables corrections averaging, and the value of Corrections[11:0] reflects the correction count for the most recent decoded block. Corrections[11:0] - Average Corrections per block. The total number of bits corrected by the TPC decoder averaged over the 2CorrAvg[2:0] blocks. This value is generated by low pass filtering the corrections count per block (equivalent to a running average). After each block decoded, the value in the Corrections[11:0] register is subtracted from the correction count. The result of this subtraction is right shifted by CorrAvg[2:0], and then added to the Corrections[11:0] register. The result is that the value of Corrections[11:0] is updated every block, and is approximately equal to the average number of corrections over the last 2CorrAvg[2:0] blocks. Writes to these bits have no effect. This register is reset by DReset. 9.9.5 INTERRUPT (INTERRUPT) Read Only Reset Value (hex) = 00 MUXMODE = 0 bit7 1 0x3c 0x78 Note: bit6 res bit5 bit4 EProc Comp DProc Comp bit3 bit2 bit1 bit0 CRCLoss SyncLoss SyncAcq DecComp The interrupt status registers are updated regardless of the setting of the respective interrupt mask bit. All bits are cleared by reading this register. xProcComp - Process Complete when using Rapid Code Reconfiguration. After each block processing is complete, this interrupt is set indicating that the code type for the next code can now be written to the respective registers. CRCLoss - CRC Loss of Synchronization Detected. This interrupt is set when the number of consecutive CRC failures equals the CRCSyncOff[7:0] value. Simultaneously, the FSynced and PSynced status bits are set to zero, and a resync is initiated. SyncLoss - Loss of Synchronization Detected. This interrupt is set when the number of consecutive missed synchronization marks equals the SyncOff[7:0] value. Simultaneously, the FSynced and PSynced status bits are set to zero, and a resync is initiated. SyncAcq - Synchronization Acquired. This interrupt is set when frame and packet (if enabled) synchronization is acquired by the device. DecComp - Decode Complete. This interrupt is set for each TPC block that is decoded. Note that if the iteration buffer is enabled, there will be a delay of multiple blocks between the completion of decoding of a block and the output of the block. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 57 of 83 comtech aha corporation 9.9.6 INTERRUPT MASK (INTMASK) Read/Write Reset Value (hex) = ff MUXMODE = 0 1 0x3d 0x7a bit7 bit6 res bit5 EProc CompM bit4 bit3 bit2 bit1 bit0 DProc CRCLossM SyncLossM SyncAcqM DecCompM CompM xProcCompM - xProcComp Interrupt Mask. When cleared, the UPINTN signal will be asserted if the xLoadComp interrupt bit is set. When set, the xLoadComp interrupt bit will not cause assertion of the UPINTN signal. CRCLossM - CRCLoss Interrupt Mask. When cleared, the UPINTN signal will be asserted if the CRCLoss interrupt bit is set. When set, the CRCLoss interrupt bit will not cause assertion of the UPINTN signal. SyncLossM - SyncLoss Interrupt Mask. When cleared, the UPINTN signal will be asserted if the SyncLoss interrupt bit is set. When set, the SyncLoss interrupt bit will not cause assertion of the UPINTN signal. SyncAcqM - SyncAcq Interrupt Mask. When cleared, the UPINTN signal will be asserted if the SyncAcq interrupt bit is set. When set, the SynAcq interrupt bit will not cause assertion of the UPINTN signal. DecCompM - DecComp Interrupt Mask. When cleared, the UPINTN signal will be asserted if the DecComp interrupt bit is set. When set, the DecComp interrupt bit will not cause assertion of the UPINTN signal. Page 58 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 9.10 MISCELLANEOUS 9.10.1 VERSION Read Only Reset Value (hex) = 31 MUXMODE = 0 1 0x3f 0x7e bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Version[7:0] Version[7:0] - Version number of the device. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 59 of 83 comtech aha corporation 10.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 I/O DESCRIPTION Input only pin Output only pin Input/Output pin 10.1 SYSTEM CONTROL AND MISCELLANEOUS SIGNAL TYPE DESCRIPTION RESETN I TRISTATEN EPCLK I I DPCLK I TESTI[6:0] TESTO[2:0] GOUT[1:0] I O O Power on Reset. Asynchronous. Active low reset signal. Must be active for 8 clocks of the lowest frequency clock. When low, all outputs are tristated. Tie high for normal operation. Encoder Processing Clock. This clock is used for all TPC encoding logic. The encoder operates at a rate of 4 channel bits per clock. Therefore, the TPC encoder frequency must be greater than or equal to 1/4 the channel bit rate. The maximum frequency for EPCLK is 43 MHz. Decoder Processing Clock. This clock is used for all TPC decoding logic. The decoder data rate is dependent on the code selection and the number of iterations. The maximum frequency for DPCLK is 86 MHz. Test mode input signals. Tie all signals low for normal operation. Test mode output signals. Leave unconnected for normal operation General output signals. Page 60 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 10.2 MICROPROCESSOR INTERFACE SIGNAL MDATA[7:0] TYPE DESCRIPTION I/O Processor Data. Data and address (MUXMODE = 1) for all microprocessor reads and writes of registers within the device transfers across this bus. Processor Address Bus. Used to address internal registers within the device. Processor Chip Select. Selects the device as the source or destination of the current microprocessor bus cycle. MCSN needs to be active for a minimum of two DPCLK cycles to start a microprocessor access. Processor Read/Write Select. When PROCMODE is deasserted, this is the active low write enable signal. When PROCMODE is asserted, this is the active low read/write select signal. Processor Ready/Data Transfer Acknowledge. When PROCMODE is deasserted, this is an active high ready signal. When PROCMODE is asserted, this signal is an active low data transfer acknowledge. This signal is tristated when MCSN is inactive. Processor Read Enable/Data Strobe. When PROCMODE is deasserted, this is the active low read enable signal. When PROCMODE is asserted, this is the active low data strobe signal. Active Low Processor Interrupt. Open drain output with an internal pull-up. Processor Address Latch Enable. When PROCMODE is not asserted and MUXMODE is asserted, this signal is the active high address latch enable. Otherwise, this pin is not used and must be tied low. Processor Mode. Intel® mode when deasserted, Motorola® mode when asserted. Muxed Processor Mode. Deassert for non-muxed address and data bus mode, assert for muxed address and data bus mode. MA[6:0] MCSN I I MWRN_RWN I MRDY_DTACKN O MRDN_DSN I MINTN MALE O I PROCMODE MUXMODE I I 10.3 UNENCODED DATA INTERFACE SIGNAL TYPE DESCRIPTION UCLK I UDATA[7:0] I URDY I UACPT O UCLKADJ[2:0] O Unencoded Data Clock. The maximum frequency is 43 MHz, and it must be less than or equal to the EPCLK frequency. Unencoded Input Data. Synchronous to UCLK. Data is handshaked into the device on the rising edge of UCLK when both URDY and UACPT are asserted. Unencoded Data Ready. Synchronous to UCLK. Indicates to the device that data is ready to be handshaked across the UDATA[7:0] bus. The polarity of this signal is selected in the URDYPolarity register, Section 9.8.3 Unencoded Data Accept. Synchronous to UCLK. Indicates that the device can accept data on the UDATA[7:0] bus. The polarity of this signal is selected in the UACPTPolarity register, Section 9.8.3 Unencoded Clock Adjustment. Synchronous to ECLK. These signals are used to adjust the clock frequency of UCLK. Refer to Section 6.1 Frequency Synthesizer Configuration. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 61 of 83 comtech aha corporation 10.4 ENCODED DATA INTERFACE TYPE DESCRIPTION ECLK SIGNAL I EDATA[7:0] O ERDY O EACPT I ESTART O EEND O Encoded Symbol Clock. The maximum frequency is 43 MHz, and it must be less than or equal to the EPCLK frequency. Encoded Output Symbols. Synchronous to ECLK. Data is handshaked out of the device on the rising edge of ECLK when both ERDY and EACPT are asserted. Encoded Data Ready. Synchronous to ECLK. Indicates that the device has data ready to be handshaked across EDATA[7:0] bus. The polarity of this signal is selected in the ERDYPolarity register, Section 9.8.3 Encoded Data Accept. Synchronous to ECLK. Indicates to the device that the data on the EDATA[7:0] bus can be accepted by an external device. The polarity of this signal is selected in the EACPTPolarity register, Section 9.8.3 Encoded Data Frame Start. Synchronous to ECLK. Indicates that the data on the EDATA[7:0] bus is the first symbol of a new frame. This signal is handshaked with the data. Encoded Data Frame End. Synchronous to ECLK. Indicates that the data on the EDATA[7:0] bus is the last symbol of the frame. This signal is handshaked with the data. 10.5 CHANNEL INTERFACE TYPE DESCRIPTION CCLK SIGNAL I CDATA[15:0] I CRDY I CACPT O CLSB I CSTART I ROTATE O Channel Symbol Clock. The maximum frequency is 43 MHz, and it must be less than or equal to the DPCLK frequency divided by 2. Channel Symbol Data. Synchronous to CCLK. When using internal LLR generation, CDATA[15:8] is the in-phase (I) component of the demodulated input symbol, and CDATA[7:0] is the quadrature (Q) component of the same input symbol. When using external LLR generation, CDATA[15:0] is divided into n 4 bit busses, where n depends on the bit input rate. See Section 4.2.1. Data is handshaked into the device on the rising edge of CCLK when CRDY and CACPT are asserted. Channel Symbol Ready. Synchronous to CCLK. Indicates to the device that data is ready to be handshaked across the CDATA[7:0] bus. The polarity of this signal is selected in the CRDYPolarity register, Section 9.8.3 Channel Symbol Accept. Synchronous to CCLK. Indicates that the device can accept data on the CDATA[7:0] bus. The polarity of this signal is selected in the CACPTPolarity register, Section 9.8.3 Channel Symbol Least Significant Bits. Synchronous to CCLK. This signal is only used when ChannelFormat = 0b11, and the modulation bits per symbol is greater than 4. This signal must be asserted when transferring the least significant LLRs of the symbol. This signal is handshaked with the data. Channel Synchronization. Synchronous to CCLK. When DFSyncEnable is cleared, external logic must detect the beginning of a TPC block, and assert CSTART with the first transfer of each block. This signal is handshaked with the data. Rotate Phase. Synchronous to CCLK. When using external logic for phase ambiguity resolution, this signal is used to rotate the phase and attempt synchronization on the new rotation. The synchronizer will attempt to detect synchronization on each input data stream. After the synchronization block has reached FSyncTime without achieving synchronization, ROTATE is inverted, indicating that external logic should rotate the phase. ROTATE is driven low by RESETN assertion. Page 62 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 10.6 DECODED DATA INTERFACE TYPE DESCRIPTION DCLK SIGNAL I DDATA[7:0] O DRDY O DACPT I DSTART O DEND O DERR O DCLKADJ[2:0] O Decoded Data Clock. The maximum frequency is 43 MHz, and it must be less than or equal to the DPCLK frequency divided by 2. Output Data Bus. Synchronous to DCLK. Data is handshaked out of the device on the rising edge of DCLK when DRDY and DACPT are asserted. Decoded Data Ready. Synchronous to DCLK. Indicates that the device has data ready to be handshaked across DDATA[7:0] bus. The polarity of this signal is selected in the DRDYPolarity register, Section 9.8.3 Decoded Data Accept. Synchronous to DCLK. Indicates to the device that the data on the DDATA[7:0] bus can be accepted by an external device. The polarity of this signal is selected in the DACPTPolarity register, Section 9.8.3 Decoded Packet Start. Synchronous to DCLK. Indicates that the data on DDATA[7:0] is the first byte in a packet. This signal is handshaked with the data. Decoded Packet End. Synchronous to DCLK. Indicates that the data on DDATA[7:0] is the last byte in a packet. This signal is handshaked with the data. Decoded Packet Error. Synchronous to DCLK. Asserted with DERR indicating that the CRC detected errors in the packet that was output. This signal is handshaked with the data. Decoded Clock Adjustment. Synchronous to CCLK. These signals are used to adjust the clock frequency of DCLK. Refer to Section 6.1 Frequency Synthesizer Configuration. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 63 of 83 comtech aha corporation 11.0 PINOUT Table 6: Pinout - Pin Number Order PIN SIGNAL PIN SIGNAL 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 GNDIO VDDIO GND VDD RESETN TRISTATEN TESTI[0] TESTI[1] TESTI[2] GND VDD TESTI[3] TESTI[4] TESTI[5] MUXMODE PROCMODE GND VDD GNDIO VDDIO MA[0] MA[1] GND VDD MA[2] MA[3] MA[4] MA[5] MA[6] GND VDD MWRN_RWN MRDN_DSN MCSN MALE GND VDD GNDIO VDDIO MDATA[0] MDATA[1] MDATA[2] GND VDD MDATA[3] MDATA[4] MDATA[5] GND VDD GNDIO VDDIO MDATA[6] 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 MDATA[7] GND VDD MRDY_DTACKN MINTN GOUT[0] GOUT[1] GND VDD GNDIO VDDIO UACPT GNDIO VDDIO UCLKADJ[0] UCLKADJ[1] GND VDD UCLKADJ[2] TESTO[0] GND VDD TESTO[1] TESTO[2] GNDIO VDDIO GND VDD UCLK URDY UDATA[0] UDATA[1] UDATA[2] GND VDD UDATA[3] UDATA[4] UDATA[5] UDATA[6] GND VDD UDATA[7] EACPT ECLK GNDIO VDDIO GND VDD EPCLK GNDIO VDDIO ERDY 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 Page 64 of 83 SIGNAL GND VDD ESTART EEND EDATA[0] EDATA[1] GND VDD GNDIO VDDIO EDATA[2] EDATA[3] EDATA[4] GND VDD EDATA[5] EDATA[6] EDATA[7] GNDIO VDDIO GND VDD ROTATE CACPT GNDIO VDDIO GND VDD CCLK CDATA[0] CDATA[1] CDATA[2] GND VDD CDATA[3] CDATA[4] CDATA[5] GND VDD CDATA[6] CDATA[7] GND VDD CDATA[8] CDATA[9] CLSB GNDIO VDDIO GND VDD CDATA[10] CDATA[11] Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PIN SIGNAL 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 CDATA[12] CDATA[13] GND VDD CDATA[14] CDATA[15] CRDY CSTART DACPT GND VDD DCLK GNDIO VDDIO DPCLK GND VDD GND VDD TESTI[6] GNDIO VDDIO GND VDD DCLKADJ[0] DCLKADJ[1] DCLKADJ[2] GNDIO VDDIO GND VDD DRDY DSTART DEND DERR GND VDD DDATA[0] DDATA[1] GNDIO VDDIO GND VDD DDATA[2] DDATA[3] DDATA[4] GNDIO VDD DDATA[5] DDATA[6] DDATA[7] GND PS4540_1202 comtech aha corporation 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 CDATA[11] CDATA[10] VDD GND VDDIO GNDIO CLSB CDATA[9] CDATA[8] VDD GND CDATA[7] CDATA[6] VDD GND CDATA[5] CDATA[4] CDATA[3] VDD GND CDATA[2] CDATA[1] CDATA[0] CCLK VDD GND VDDIO GNDIO CACPT ROTATE VDD GND VDDIO GNDIO EDATA[7] EDATA[6] EDATA[5] VDD GND EDATA[4] EDATA[3] EDATA[2] VDDIO GNDIO VDD GND EDATA[1] EDATA[0] EEND ESTART VDD GND Figure 34: Pinout 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 AHA4540A-086 PQC 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 ERDY VDDIO GNDIO EPCLK VDD GND VDDIO GNDIO ECLK EACPT UDATA[7] VDD GND UDATA[6] UDATA[5] UDATA[4] UDATA[3] VDD GND UDATA[2] UDATA[1] UDATA[0] URDY UCLK VDD GND VDDIO GNDIO TESTO[2] TESTO[1] VDD GND TESTO[0] UCLKADJ[2] VDD GND UCLKADJ[1] UCLKADJ[0] VDDIO GNDIO UACPT VDDIO GNDIO VDD GND GOUT[1] GOUT[0] MINTN MRDY_DTACKN VDD GND MDATA[7] GNDIO VDDIO GND VDD RESETN TRISTATEN TESTI[0] TESTI[1] TESTI[2] GND VDD TESTI[3] TESTI[4] TESTI[5] MUXMODE PROCMODE GND VDD GNDIO VDDIO MA[0] MA[1] GND VDD MA[2] MA[3] MA[4] MA[5] MA[6] GND VDD MWRN_RWN MRDN_DSN MCSN MALE GND VDD GNDIO VDDIO MDATA[0] MDATA[1] MDATA[2] GND VDD MDATA[3] MDATA[4] MDATA[5] GND VDD GNDIO VDDIO MDATA[6] 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 CDATA[12] CDATA[13] GND VDD CDATA[14] CDATA[15] CRDY CSTART DACPT GND VDD DCLK GNDIO VDDIO DPCLK GND VDD GND VDD TESTI[6] GNDIO VDDIO GND VDD DCLKADJ[0] DCLKADJ[1] DCLKADJ[2] GNDIO VDDIO GND VDD DRDY DSTART DEND DERR GND VDD DDATA[0] DDATA[1] GNDIO VDDIO GND VDD DDATA[2] DDATA[3] DDATA[4] GNDIO VDD DDATA[5] DDATA[6] DDATA[7] GND Top View PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 65 of 83 comtech aha corporation 12.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. 12.1 OPERATING CONDITIONS SYMBOL PARAMETER MIN MAX UNITS NOTES Vdd Vddio Idd Idd Iddio Iddio Ta Vil Vih Iin Vol Voh Iol Ioh Ioz Cin Cio Cout Core Supply voltage (VDD) Input/Output Supply Voltage (VDDIO) Core Supply current (static) Core Supply current (active) Input/Output Supply current (static) 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 1.7 3.1 1.9 3.5 20 <800 2 25 70 0.8 V V mA mA mA mA °C V V uA V V mA mA uA pF pF pF 1 0 2.0 -5 5 0.4 2.4 -5 2 2 5 10 10 50 Notes: 1) Timings referenced to this load. 12.2 ABSOLUTE MAXIMUM STRESS RATINGS SYMBOL Tstg V1.8 Vsupply V3.3 Vsupply Vin (3.3V) Page 66 of 83 PARAMETER MIN MAX UNITS Storage temperature Supply voltage on Vdd Supply voltage on Vddio Input voltage -50 -0.5 -0.5 -0.5 150 2.5 4.6 4.1 °C V V V Comtech AHA is a subsidiary of Comtech Telecommunications Corporation NOTES PS4540_1202 comtech aha corporation 12.3 TEST CONDITIONS PARAMETER VALUE AC timing reference * 1.4 V The timing diagrams for these signals assume a capacitive load of 50 pF. The specified signal timings must be derated by the factor shown in Figure 35 when operating at loads other than 50 pF. Multiplication Factor Figure 35: Signal Timing vs. Output Load LOAD MULTIPLICATION CAPACITANCE FACTOR 1.0 10 pF 20 pF 30 pF 40 pF 50 pF* 0.75 10 PS4540_1202 20 30 40 Load Capacitance (pF) 0.75 0.80 0.87 0.93 1.00 50 * Production test conditions Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 67 of 83 comtech aha corporation 13.0 AC ELECTRICAL SPECIFICATIONS 13.1 DPCLK CLOCK TIMING Figure 36: DPCLK Clock Timing 1 2 2.0V 1.4V 0.8V DPCLK 3 4 5 DPCLK_I (internal ÷ 2) Table 7: 6 6 DPCLK Clock Timings NUMBER 1 2 3 4 5 5 6 PARAMETER MIN DPCLK rise time DPCLK fall time DPCLK high time DPCLK low time DPCLK period (Tcp) DPCLK frequency DPCLK to DPCLK_I delay MAX UNITS NOTES 1 1 ns ns ns ns ns MHz ns 1 5 5 11.63 86 6 Notes: 1) DPCLK_I is an internally generated divide by 2 clock. It is specified here because it is referenced in the microprocessor interface timings. 13.2 ECLK, UCLK, CCLK, DCLK, AND EPCLK CLOCK TIMING Figure 37: ECLK, UCLK, CCLK, DCLK, and EPCLK Clock Timing 1 2 2.0V 1.4V 0.8V xCLK 3 4 5 Table 8: NUMBER 1 2 3 4 5 6 Page 68 of 83 ECLK, UCLK, CCLK, DCLK, and EPCLK Clock Timings PARAMETER ECLK, UCLK, CCLK, DCLK, EPCLK rise time ECLK, UCLK, CCLK, DCLK, EPCLK fall time ECLK, UCLK, CCLK, DCLK, EPCLK high time ECLK, UCLK, CCLK, DCLK, EPCLK low time ECLK, UCLK, CCLK, DCLK, EPCLK period (Tcp) ECLK, UCLK, CCLK, DCLK, EPCLK frequency MIN MAX UNITS 2 2 ns ns ns ns ns MHz 10 10 25 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation 43 PS4540_1202 comtech aha corporation 13.3 UNENCODED DATA INTERFACE Figure 38: Unencoded Data Interface – Data Input Timing UCLK (Input) 2 URDY 1 1 2 3 3 (Input) 2 4 4 UACPT (Output) UDATA[7:0] (Input) Table 9: Unencoded Data Interface – Data Input Timing NUMBER 1 2 3 4 PARAMETER URDY/UDATA[7:0] setup to UCLK URDY/UDATA[7:0] hold from UCLK UACPT drive delay from UCLK UACPT output hold from UCLK MIN MAX UNITS 12 ns ns ns 7 2 2 NOTES 1 1 Notes: 1) With 50 pF load. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 69 of 83 comtech aha corporation 13.4 ENCODED DATA INTERFACE Figure 39: Encoded Data Interface – Data Output Timing ECLK (Input) 1 1 3 2 2 ERDY (Output) 4 4 3 EACPT (Input) 1 2 EDATA[7:0] (Output) 1 2 Valid ESTART (Output) EEND (Output) Table 10: Encoded Data Interface – Data Output Timing NUMBER 1 2 3 4 PARAMETER ERDY, EDATA[7:0], ESTART, EEND drive delay from ECLK ERDY, EDATA[7:0], ESTART, EEND output hold from ECLK EACPT setup to ECLK EACPT hold from ECLK MIN MAX UNITS NOTES 12 ns 1 2 ns 1 8 2 ns ns Notes: 1) With 50 pF load. Page 70 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 13.5 CHANNEL INTERFACE Figure 40: Channel Symbol Input Timing CCLK (Input) 1 1 2 2 CRDY (Input) 3 3 4 4 CACPT (Output) 1 2 CDATA[15:0] (Input) CLSB (Input) CSTART (Input) Table 11: Channel Symbol Input Timing NUMBER 1 2 3 4 5 PARAMETER CRDY, setup to CCLK CDATA[15:0], CSTART, CLSB setup to CCLK CRDY, CDATA[15:0], CSTART, CLSB hold from CCLK CACPT drive delay from CCLK CACPT output hold from CCLK MIN MAX UNITS 10 ns 7 ns 2 ns 12 2 ns ns NOTES 1 1 Notes: 1) With 50 pF load. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 71 of 83 comtech aha corporation 13.6 DECODED DATA INTERFACE Figure 41: Decoded Data Interface – Data Output Timing DCLK (Input) 1 1 3 2 2 DRDY (Output) 3 4 4 DACPT (Input) 1 1 2 DDATA[15:0] (Output) 2 Valid DSTART (Output) DEND (Output) DERR (Output) Table 12: Decoded Data Interface – Data Output Timing NUMBER 1 2 3 4 PARAMETER DRDY, DDATA[15:0], DSTART, DEND, DERR drive delay from DCLK DRDY, DDATA[15:0], DSTART, DEND, DERR output hold from DCLK DACPT setup to DCLK DACPT hold from DCLK MIN MAX UNITS NOTES 12 ns 1 2 ns 1 8 2 ns ns Notes: 1) With 50 pf load. Page 72 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 13.7 MICROPROCESSOR INTERFACE Figure 42: Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=0 DPCLK See Note 1 DPCLK_I (Internal ÷ by 2) MCSN (In) 2 MWRN_RWN (In) 1 4 3 MA[6:0] Address (In) 6 5 7 MDATA[7:0] Write Data (In) 8 MRDY_DTACKN 10 11 9 Tristate (Out) MRDN_DSN (In) Table 13: NUMBER 1 2 3 4 5 6 7 8 9 10 11 Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=0 PARAMETER MIN MAX MCSN low to MWRN_RWN low 0 MWRN_RWN high to MCSN high 0 MWRN_RWN pulse width 2 Tcp+5ns MWRN_RWN high to next MWRN_RWN or 1 Tcp+5ns MRDN_DSN low MWRN_RWN low to MA[6:0] and MDATA[7:0] 1 Tcp−7ns valid MA[6:0] and MDATA[7:0] hold from 0 MWRN_RWN high MA[6:0] and MDATA[7:0] hold from 0 MRDY_DTACKN high MRDY_DTACKN driven from MCSN low 12 MRDY_DTACKN low from MWRN_RWN low 12 MRDY_DTACKN high from MWRN_RWN low 2 Tcp+18ns MRDY_DTACKN tristate from MCSN high 12 UNITS NOTES ns ns 2 4 3, 5 3 3 ns ns ns ns ns 3 6 Notes: 1) The microprocessor interface signals are internally synchronized to DPCLK_I. 2) Write cycle begins when both MCSN and MWRN_RWN are low at the rising edge of DPCLK_I. 3) Tcp = DPCLK_I clock period = 2 × DPCLK clock period. 4) MCSN may be held low continuously for back to back accesses. 5) This timing assumes a fixed number of wait states per cycle. It can be ignored if MRDY_DTACKN is used to insert wait states. 6) Not tested in production. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 73 of 83 comtech aha corporation Figure 43: Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=0 DPCLK See Note 1 DPCLK_I (Internal ÷ by 2) MCSN (In) 4 MRDN_DSN (In) 2 3 1 5 6 MA[6:0] Address (In) 8 MDATA[7:0] 7 15 Tristate Read Data (Out) 11 MRDY_DTACKN 9 13 10 12 14 Tristate (Out) MWRN_RWN (In) Table 14: Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=0 NUMBER PARAMETER MIN 1 2 3 MCSN low to MRDN_DSN low MRDN_DSN high to MCSN high MRDN_DSN pulse width MRDN_DSN high to next MRDN_DSN or MWRN_RWN low MRDN_DSN low to MA[6:0] valid MA[6:0] hold from MRDN_DSN high MA[6:0] hold from MRDY_DTACKN high MDATA[7:0] valid from MRDN_DSN low MDATA[7:0] tristate from MRDN_DSN high MDATA[7:0] valid to MRDY_DTACKN high MRDY_DTACKN driven from MCSN low MRDY_DTACKN low from MRDN_DSN low MRDY_DTACKN high from MRDN_DSN low MRDY_DTACKN tristate from MCSN high MDATA[7:0] driven from MRDN_DSN low 0 0 3 Tcp+5ns 4 5 6 7 8 9 10 11 12 13 14 15 MAX UNITS NOTES ns ns 1 Tcp+5ns 3 1 Tcp−7ns 0 0 2 0 2 4 3, 5 3 ns ns 3 Tcp+12ns 12 12 12 3 Tcp+18ns 12 2 Tcp−7ns ns ns ns ns 3 6 3 ns 3, 6 Notes: 1) The microprocessor interface signals are internally synchronized to DPCLK_I. 2) Read cycle begins when both MCSN and MRDN_DSN are low at the rising edge of DPCLK_I. 3) Tcp = DPCLK_I clock period = 2 × DPCLK clock period. 4) MCSN may be held low continuously for back to back accesses. 5) This timing assumes a fixed number of wait states per cycle. It can be ignored if MRDY_DTACKN is used to insert wait states. 6) Not tested in production. Page 74 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation Figure 44: Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=1 DPCLK See Note 1 DPCLK_I (Internal ÷ by 2) MALE (In) 6 MCSN (In) 1 2 5 3 MWRN_RWN (In) 4 7 9 8 MDATA[7:0] 10 Address (In) Write Data 14 Address 11 13 MRDY_DTACKN 15 Tristate (Out) 12 MRDN_DSN (In) Table 15: NUMBER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Microprocessor Interface Timing (Write); PROCMODE=0, MUXMODE=1 PARAMETER MIN MAX MCSN low to MWRN_RWN low 0 MWRN_RWN high to MCSN high 0 MWRN_RWN pulse width 2 Tcp+5ns MWRN_RWN high to next MWRN_RWN or 1 Tcp+5ns MRDN_DSN low MALE low to MWRN_RWN low 0 MALE high pulse width 10 Address setup to MALE falling edge 7 Address hold from MALE falling edge 7 MWRN_RWN low to Write Data valid 1 Tcp−7ns Write Data hold from MWRN_RWN high 0 Write Data hold from MRDY_DTACKN high 0 MRDY_DTACKN driven from MCSN low 12 MRDY_DTACKN low from MWRN_RWN low 12 MRDY_DTACKN high from MWRN_RWN low 2 Tcp+18ns MRDY_DTACKN tristate from MCSN high 12 UNITS NOTES ns ns 2 4 3, 5 3 ns ns ns ns 3 ns ns ns ns ns 3 6 Notes: 1) The microprocessor interface signals are internally synchronized to DPCLK_I. 2) Write cycle begins when both MCSN and MWRN_RWN are low at the rising edge of DPCLK_I. 3) Tcp = DPCLK_I clock period = 2 × DPCLK clock period. 4) MCSN may be held low continuously for back to back accesses. 5) This timing assumes a fixed number of wait states per cycle. It can be ignored if MRDY_DTACKN is used to insert wait states. 6) Not tested in production. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 75 of 83 comtech aha corporation Figure 45: Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=1 DPCLK See Note 1 DPCLK_I (Internal ÷ by 2) MALE (In) 6 MCSN (In) 1 5 2 3 MRDN_DSN (In) 7 MDATA[7:0] Address (In/Out) 4 9 8 10 16 Tristate Read Data 13 11 15 14 MRDY_DTACKN Tristate (Out) 12 MWRN_RWN (In) Table 16: Microprocessor Interface Timing (Read); PROCMODE=0, MUXMODE=1 NUMBER PARAMETER MIN 1 2 3 MCSN low to MRDN_DSN low MRDN_DSN high to MCSN high MRDN_DSN pulse width MRDN_DSN high to next MRDN_DSN or MWRN_RWN low MALE low to MRDN_DSN low MALE high pulse width Address setup to MALE falling edge Address hold from MALE falling edge MRDN_DSN low to Read Data valid Read Data tristate from MRDN_DSN high Read Data valid to MRDY_DTACKN high MRDY_DTACKN driven from MCSN low MRDY_DTACKN low from MRDN_DSN low MRDY_DTACKN high from MRDN_DSN low MRDY_DTACKN tristate from MCSN high Read Data driven from MRDN_DSN low 0 0 3 Tcp+5ns 4 5 6 7 8 9 10 11 12 13 14 15 16 MAX UNITS NOTES ns ns 1 Tcp+5ns 3 0 10 7 7 2 0 2 4 3, 5 ns ns ns ns 3 Tcp+12ns 12 12 12 3 Tcp+18ns 12 2 Tcp−7ns ns ns ns ns 3 6 3 ns 3, 6 Notes: 1) The microprocessor interface signals are internally synchronized to DPCLK_I. 2) Read cycle begins when both MCSN and MRDN_DSN are low at the rising edge of DPCLK_I. 3) Tcp = DPCLK_I clock period = 2 × DPCLK clock period. 4) MCSN may be held low continuously for back to back accesses. 5) This timing assumes a fixed number of wait states per cycle. It can be ignored if MRDY_DTACKN is used to insert wait states. 6) Not tested in production. Page 76 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation Figure 46: Microprocessor Interface Timing (Write); PROCMODE=1, MUXMODE=0 DPCLK See Note 1 DPCLK_I (Internal ÷ by 2) MCSN (In) 4 1 MRDN_DSN (In) 14 3 2 5 6 MWRN_RWN (In) 8 7 10 MA[6:0] Address (In) 9 MDATA[7:0] Write Data (In) 12 10 13 11 MRDY_DTACKN Tristate (Out) Table 17: NUMBER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Microprocessor Interface Timing (Write); PROCMODE=1, MUXMODE=0 PARAMETER MIN MAX MCSN low to MRDN_DSN low 0 MCSN low to MWRN_RWN low 0 MWRN_RWN setup to MRDN_DSN low 5 MRDN_DSN high to MCSN high 0 MWRN_RWN hold from MRDN_DSN high 0 MRDN_DSN low pulse width 2 Tcp+5ns MRDN_DSN low to MA[6:0] and MDATA[7:0] 1 Tcp−7ns valid MA[6:0] and MDATA[7:0] hold from 0 MRDN_DSN high MA[6:0] and MDATA[7:0] hold from 0 MRDY_DTACKN low MRDY_DTACKN driven from MCSN low 12 MRDY_DTACKN high from MRDN_DSN low 12 MRDY_DTACKN low from MRDN_DSN low 2 Tcp+18ns MRDY_DTACKN tristate from MCSN high 12 MRDN_DSN high to next MRDN_DSN low 1 Tcp+5ns UNITS NOTES ns ns ns ns ns 2 4 3, 5 3 ns ns ns ns ns 3 6 3 Notes: 1) The microprocessor interface signals are internally synchronized to DPCLK_I. 2) Write cycle begins when both MCSN and MRDN_DSN are low at the rising edge of DPCLK_I. 3) Tcp = DPCLK_I clock period = 2 × DPCLK clock period. 4) MCSN may be held low continuously for back to back accesses. 5) This timing assumes a fixed number of wait states per cycle. It can be ignored if MRDY_DTACKN is used to insert wait states. 6) Not tested in production. PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 77 of 83 comtech aha corporation Figure 47: Microprocessor Interface Timing (Read); PROCMODE=1, MUXMODE=0 DPCLK See Note 1 DPCLK_I (Internal ÷ by 2) MCSN (In) 1 4 MRDN_DSN (In) 17 3 2 5 MWRN_RWN 6 (In) 8 7 11 MA[6:0] Address (In) 10 9 18 MDATA[7:0] Tristate (Out) Read Data 14 12 13 MRDY_DTACKN 15 16 Tristate (Out) Table 18: Microprocessor Interface Timing (Read); PROCMODE=1, MUXMODE=0 NUMBER PARAMETER MIN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 MCSN low to MRDN_DSN low MCSN low to MWRN_RWN high MWRN_RWN high to MRDN_DSN low MRDN_DSN high to MCSN high MWRN_RWN hold from MRDN_DSN high MRDN_DSN low pulse width MRDN_DSN low to MA[6:0] valid MA[6:0] hold from MRDN_DSN high MA[6:0] hold from MRDY_DTACKN low MRDN_DSN low to MDATA[7:0] valid MDATA[7:0] tristate from MRDN_DSN high MDATA[7:0] valid to MRDY_DTACKN high MRDY_DTACKN driven from MCSN low MRDY_DTACKN high from MRDN_DSN low MRDY_DTACKN low from MRDN_DSN low MRDY_DTACKN tristate from MCSN high MRDN_DSN high to next MRDN_DSN low MDATA[7:0] driven from MRDN_DSN low 0 0 5 0 0 3 Tcp+5ns MAX UNITS NOTES ns ns ns ns ns 2 0 4 3, 5 3 1 Tcp−7ns 0 0 2 ns ns 3 Tcp+12ns 12 12 12 3 Tcp+18ns 12 1 Tcp+5ns 2 Tcp−7ns ns ns ns ns 3 6 3 ns 3 3, 6 Notes: 1) The microprocessor interface signals are internally synchronized to DPCLK_I. 2) Read cycle begins when both MCSN and MRDN_DSN are low at the rising edge of DPCLK_I. 3) Tcp = DPCLK_I clock period = 2 × DPCLK clock period. 4) MCSN may be held low continuously for back to back accesses. 5) This timing assumes a fixed number of wait states per cycle. It can be ignored if MRDY_DTACKN is used to insert wait states. 6) Not tested in production. Page 78 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 13.8 MISCELLANEOUS Figure 48: Interrupt Timing DPCLK_I MINTN Internal Pull-up (Out) 1 Table 19: Interrupt Timing NUMBER 1 2 2 PARAMETER MIN MINTN delay time MINTN hold time MAX UNITS NOTES 12 1.5 ns us 1 2 MAX UNITS NOTES TxCLK 1 Notes: 1) With 50 pF load. 2) It is recommended that an external pull-up is added to derease the hold time. Figure 49: RESETN Timing VDD xCLK 1 RESETN Table 20: RESETN Timing NUMBER 1 PARAMETER MIN RESETN pulsewidth 8 Notes: 1) TxCLK is the period of the lowest frequency clock Figure 50: GOUT, ROTATE Timing DPCLK_I 1 1 GOUT[x] 1 1 ROTATE Table 21: NUMBER 1 PS4540_1202 GOUT, ROTATE Timing PARAMETER GOUT[X], ROTATE output delay from DPCLK_I MIN MAX UNITS 10 ns Comtech AHA is a subsidiary of Comtech Telecommunications Corporation NOTES Page 79 of 83 comtech aha corporation Figure 51: Flow Control Timing (xCLKADJ Mode = 0) xCLK 1 xCLKADJ[0] Tristate xCLKADJ[1] Tristate 2 1 1 xCLKADJ[2] Table 22: Flow Control Timing (xCLKADJ Mode = 0) NUMBER 1 2 PARAMETER xCLKADJ drive delay from XCLK xCLKADJ tristate from XCLK MIN MAX UNITS NOTES 1 15 15 ns ns 1 2 MIN MAX UNITS NOTES 15 ns ns 1 1 Notes: 1) With 50 pF load. 2) Not tested in production. Figure 52: Flow Control Timing (xCLKADJ Mode = 1) xCLK 2 1 xCLKADJ[2:0] Table 23: Flow Control Timing (xCLKADJ Mode = 1) NUMBER 1 2 PARAMETER xCLKADJ output hold from XCLK xCLKADJ drive delay from XCLK 2 Notes: 1) With 50 pF load. Page 80 of 83 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 14.0 PACKAGE SPECIFICATIONS 14.1 PACKAGE DIMENSIONS Figure 53: Package Dimensions - Top View D D1 P B 157 158 159 160 161 AHA4540A-086 PQC (LCA) E1 E 204 205 206 207 208 48 49 50 51 52 (LCB) Figure 54: Package Dimensions - Cross Section View A A2 A L PS4540_1202 A1 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 81 of 83 comtech aha corporation Table 24: MQFP (Metric Quad Flat Pack) 28 x 28 mm Package Dimensions (All dimensions are in mm) NUMBER OF PIN AND SPECIFICATION DIMENSION 208 SB NOM 52 (Lead Count A) 52 (Lead Count B) 3.7 .33 3.37 30.6 28.0 30.6 28.0 .56 .50 .22 SYMBOL MIN (LCA) (LCB) A A1 A2 D D1 E E1 L P B Notes: .25 3.17 .46 .17 MAX 4.07 3.67 .66 .27 All dimensions are in millimeters Package type is More detailed mechanical information is available upon request 15.0 ORDERING INFORMATION 15.1 AVAILABLE PARTS PART NUMBER DESCRIPTION AHA4540A-086 PQC AHA4540 Astro OC-3 155 Mbits/sec Turbo Product Code Encoder/Decoder 15.2 PART NUMBERING AHA 4540 A- 086 P Q C Manufacturer Device Number Revision Level Speed Designation Package Material Package Type Test Specification Device Number: 4540 Revision Letter: A Speed Designation: 86 MHz internal operating frequency Package Material Codes: P Plastic Package Type Codes: Q Quad Flat Pack Test Specifications: C Commercial Page 82 of 83 0°C to +70°C Comtech AHA is a subsidiary of Comtech Telecommunications Corporation PS4540_1202 comtech aha corporation 16.0 RELATED TECHNICAL PUBLICATIONS DOCUMENT # DESCRIPTION AHA Product Brief – AHA4501 Astro 36 Mbits/Sec Turbo Product Code Encoder/Decoder AHA Product Brief – AHA4522 Astro LE 2K Block Turbo Product Code PB4522 Encoder/Decoder AHA Product Brief – AHA4524 Astro LE 4K Block Turbo Product Code PB4524 Encoder/Decoder AHA Product Brief – AHA4540 Astro OC-3 155 Mbits/Sec Turbo Product PB4540 Code Encoder/Decoder PB4501EVM AHA Product Brief – AHA4501 TPC EVM ISA Evaluation Module PB4501EVSW AHA Product Brief – AHA4501 TPC Windows Evaluation Software AHA Product Brief – Galaxy Core Generator Turbo Product Code Decoder PBGALAXY Cores PBGALAXY_EVSW AHA Product Brief – AHA Galaxy TPC Windows Evaluation Software PBGALAXY_STK AHA Product Brief – AHA Galaxy Simulation Tool Kit AHA Product Specification – AHA4501 Astro 36 Mbits/Sec Turbo Product PS4501 Code Encoder/Decoder AHA Product Specification – AHA4522 Astro LE 2K Block Turbo Product PS4522 Code Encoder/Decoder AHA Product Specification – AHA4524 Astro LE 4K Block Turbo Product PS4524 Code Encoder/Decoder ANTPC01 AHA Application Note – Primer: Turbo Product Codes AHA Application Note – Use and Performance of Shortened Codes with the ANTPC02 AHA4501 TPC Encoder/Decoder) AHA Application Note – Turbo Product Code Encoder/Decoder with ANTPC03 Quadrature Amplitude Modulation (QAM) AHA Application Note – Use and Performance of the AHA4501 TPC Encoder/ ANTPC04 Decoder with Differential Phase Shift Keying (DPSK) AHA Application Note – AHA4501 Turbo Product Code Encoder/Decoder ANTPC05 Designers Guide AHA Application Note – AHA4501 Turbo Product Code Encoder/Decoder ANTPC06 Frequently Asked Questions (FAQ) ANTPC07 AHA Application Note – Turbo Product Codes for LMDS AHA Application Note – Using Multiple AHA4501 Devices in Parallel for ANTPC08 Higher Data Rates AHA Evaluation Software – Turbo Product Codes - Windows Evaluation TPCEVAL Software PB4501 PS4540_1202 Comtech AHA is a subsidiary of Comtech Telecommunications Corporation Page 83 of 83