Visible to Intel only — GUID: wap1496269525694
Ixiasoft
1. Overview
2. Implementing the Transceiver PHY Layer in L-Tile/H-Tile
3. PLLs and Clock Networks
4. Resetting Transceiver Channels
5. Intel® Stratix® 10 L-Tile/H-Tile Transceiver PHY Architecture
6. Reconfiguration Interface and Dynamic Reconfiguration
7. Calibration
8. Debugging Transceiver Links
A. Logical View of the L-Tile/H-Tile Transceiver Registers
2.1. Transceiver Design IP Blocks
2.2. Transceiver Design Flow
2.3. Configuring the Native PHY IP Core
2.4. Using the Intel® Stratix® 10 L-Tile/H-Tile Transceiver Native PHY Intel® Stratix® 10 FPGA IP Core
2.5. Implementing the PHY Layer for Transceiver Protocols
2.6. Unused or Idle Transceiver Channels
2.7. Simulating the Native PHY IP Core
2.8. Implementing the Transceiver Native PHY Layer in L-Tile/H-Tile Revision History
2.3.1. Protocol Presets
2.3.2. GXT Channels
2.3.3. General and Datapath Parameters
2.3.4. PMA Parameters
2.3.5. PCS-Core Interface Parameters
2.3.6. Analog PMA Settings Parameters
2.3.7. Enhanced PCS Parameters
2.3.8. Standard PCS Parameters
2.3.9. PCS Direct Datapath Parameters
2.3.10. Dynamic Reconfiguration Parameters
2.3.11. Generation Options Parameters
2.3.12. PMA, Calibration, and Reset Ports
2.3.13. PCS-Core Interface Ports
2.3.14. Enhanced PCS Ports
2.3.15. Standard PCS Ports
2.3.16. Transceiver PHY PCS-to-Core Interface Reference Port Mapping
2.3.17. IP Core File Locations
2.4.2.1. Receiver Word Alignment
2.4.2.2. Receiver Clock Compensation
2.4.2.3. Encoding/Decoding
2.4.2.4. Running Disparity Control and Check
2.4.2.5. FIFO Operation for the Enhanced PCS
2.4.2.6. Polarity Inversion
2.4.2.7. Data Bitslip
2.4.2.8. Bit Reversal
2.4.2.9. Byte Reversal
2.4.2.10. Double Rate Transfer Mode
2.4.2.11. Asynchronous Data Transfer
2.4.2.12. Low Latency
2.5.1.1. Transceiver Channel Datapath for PIPE
2.5.1.2. Supported PIPE Features
2.5.1.3. How to Connect TX PLLs for PIPE Gen1, Gen2, and Gen3 Modes
2.5.1.4. How to Implement PCI Express (PIPE) in Intel® Stratix® 10 Transceivers
2.5.1.5. Native PHY IP Core Parameter Settings for PIPE
2.5.1.6. fPLL IP Core Parameter Settings for PIPE
2.5.1.7. ATX PLL IP Core Parameter Settings for PIPE
2.5.1.8. Native PHY IP Core Ports for PIPE
2.5.1.9. fPLL Ports for PIPE
2.5.1.10. ATX PLL Ports for PIPE
2.5.1.11. Preset Mappings to TX De-emphasis
2.5.1.12. How to Place Channels for PIPE Configurations
2.5.1.13. Link Equalization for Gen3
2.5.1.14. Timing Closure Recommendations
3.1. PLLs
3.2. Input Reference Clock Sources
3.3. Transmitter Clock Network
3.4. Clock Generation Block
3.5. FPGA Fabric-Transceiver Interface Clocking
3.6. Double Rate Transfer Mode
3.7. Transmitter Data Path Interface Clocking
3.8. Receiver Data Path Interface Clocking
3.9. Channel Bonding
3.10. PLL Cascading Clock Network
3.11. Using PLLs and Clock Networks
3.12. PLLs and Clock Networks Revision History
4.1. When Is Reset Required?
4.2. Transceiver PHY Reset Controller Intel® Stratix® 10 FPGA IP Implementation
4.3. How Do I Reset?
4.4. Using PCS Reset Status Port
4.5. Using Transceiver PHY Reset Controller Intel® Stratix® 10 FPGA IP
4.6. Using a User-Coded Reset Controller
4.7. Combining Status or PLL Lock Signals with User Coded Reset Controller
4.8. Resetting Transceiver Channels Revision History
4.3.1.1. Resetting the Transmitter After Power Up
4.3.1.2. Resetting the Transmitter During Device Operation
4.3.1.3. Resetting the Receiver After Power Up
4.3.1.4. Resetting the Receiver During Device Operation (Auto Mode)
4.3.1.5. Clock Data Recovery in Manual Lock Mode
4.3.1.6. Special TX PCS Reset Release Sequence
4.5.1. Parameterizing Transceiver PHY Reset Controller Intel® Stratix® 10 FPGA IP
4.5.2. Transceiver PHY Reset Controller Intel® Stratix® 10 FPGA IP Parameters
4.5.3. Transceiver PHY Reset Controller Intel® Stratix® 10 FPGA IP Interfaces
4.5.4. Transceiver PHY Reset Controller Intel® Stratix® 10 FPGA IP Resource Utilization
5.1. PMA Architecture
5.2. Enhanced PCS Architecture
5.3. Intel® Stratix® 10 Standard PCS Architecture
5.4. Intel® Stratix® 10 PCI Express Gen3 PCS Architecture
5.5. PCS Support for GXT Channels
5.6. Square Wave Generator
5.7. PRBS Pattern Generator
5.8. PRBS Pattern Verifier
5.9. Loopback Modes
5.10. Intel® Stratix® 10 L-Tile/H-Tile Transceiver PHY Architecture Revision History
5.1.2.1.1. Programmable Differential On-Chip Termination (OCT)
5.1.2.1.2. Signal Detector
5.1.2.1.3. Continuous Time Linear Equalization (CTLE)
5.1.2.1.4. Variable Gain Amplifier (VGA)
5.1.2.1.5. Adaptive Parametric Tuning (ADAPT) Engine
5.1.2.1.6. Decision Feedback Equalization (DFE)
5.1.2.1.7. On-Die Instrumentation
5.2.1.1. TX Core FIFO
5.2.1.2. TX PCS FIFO
5.2.1.3. Interlaken Frame Generator
5.2.1.4. Interlaken CRC-32 Generator
5.2.1.5. 64B/66B Encoder and Transmitter State Machine (TX SM)
5.2.1.6. Scrambler
5.2.1.7. Interlaken Disparity Generator
5.2.1.8. TX Gearbox, TX Bitslip and Polarity Inversion
5.2.1.9. KR FEC Blocks
5.2.2.1. RX Gearbox, RX Bitslip, and Polarity Inversion
5.2.2.2. Block Synchronizer
5.2.2.3. Interlaken Disparity Checker
5.2.2.4. Descrambler
5.2.2.5. Interlaken Frame Synchronizer
5.2.2.6. 64B/66B Decoder and Receiver State Machine (RX SM)
5.2.2.7. 10GBASE-R Bit-Error Rate (BER) Checker
5.2.2.8. Interlaken CRC-32 Checker
5.2.2.9. RX PCS FIFO
5.2.2.10. RX Core FIFO
5.3.1.4.1. 8B/10B Encoder Control Code Encoding
5.3.1.4.2. 8B/10B Encoder Reset Condition
5.3.1.4.3. 8B/10B Encoder Idle Character Replacement Feature
5.3.1.4.4. 8B/10B Encoder Current Running Disparity Control Feature
5.3.1.4.5. 8B/10B Encoder Bit Reversal Feature
5.3.1.4.6. 8B/10B Encoder Byte Reversal Feature
5.3.2.1.1. Word Aligner Bitslip Mode
5.3.2.1.2. Word Aligner Manual Mode
5.3.2.1.3. Word Aligner Synchronous State Machine Mode
5.3.2.1.4. Word Aligner Deterministic Latency Mode
5.3.2.1.5. Word Aligner Pattern Length for Various Word Aligner Modes
5.3.2.1.6. Word Aligner RX Bit Reversal Feature
5.3.2.1.7. Word Aligner RX Byte Reversal Feature
5.3.2.6.1. Byte Deserializer Disabled Mode
5.3.2.6.2. Byte Deserializer Deserialize x2 Mode
5.3.2.6.3. Byte Deserializer Deserialize x4 Mode
5.3.2.6.4. Bonded Byte Deserializer
5.3.2.6.5. Byte Ordering Register-Transfer Level (RTL)
5.3.2.6.6. Byte Serializer Effects on Data Propagation at the RX Side
5.3.2.6.7. ModelSim Byte Ordering Analysis
6.1. Reconfiguring Channel and PLL Blocks
6.2. Interacting with the Reconfiguration Interface
6.3. Multiple Reconfiguration Profiles
6.4. Arbitration
6.5. Recommendations for Dynamic Reconfiguration
6.6. Steps to Perform Dynamic Reconfiguration
6.7. Direct Reconfiguration Flow
6.8. Native PHY IP or PLL IP Core Guided Reconfiguration Flow
6.9. Reconfiguration Flow for Special Cases
6.10. Changing Analog PMA Settings
6.11. Ports and Parameters
6.12. Dynamic Reconfiguration Interface Merging Across Multiple IP Blocks
6.13. Embedded Debug Features
6.14. Timing Closure Recommendations
6.15. Unsupported Features
6.16. Transceiver Register Map
6.17. Reconfiguration Interface and Dynamic Revision History
7.5.1. Recalibrating a Duplex Channel (Both PMA TX and PMA RX)
7.5.2. Recalibrating the PMA RX Only in a Duplex Channel
7.5.3. Recalibrating the PMA TX Only in a Duplex Channel
7.5.4. Recalibrating a PMA Simplex RX Without a Simplex TX Merged into the Same Physical Channel
7.5.5. Recalibrating a PMA Simplex TX Without a Simplex RX Merged into the Same Physical Channel
7.5.6. Recalibrating Only a PMA Simplex RX in a Simplex TX Merged Physical Channel
7.5.7. Recalibrating Only a PMA Simplex TX in a Simplex RX Merged Physical Channel
7.5.8. Recalibrating the fPLL
7.5.9. Recalibrating the ATX PLL
7.5.10. Recalibrating the CMU PLL When it is Used as a TX PLL
A.4.1. Transmitter PMA Logical Register Map
A.4.2. Receiver PMA Logical Register Map
A.4.3. Pattern Generators and Checkers
A.4.4. Loopback
A.4.5. Optional Reconfiguration Logic PHY- Capability
A.4.6. Optional Reconfiguration Logic PHY- Control & Status
A.4.7. Embedded Streamer (Native PHY)
A.4.8. Static Polarity Inversion
A.4.9. Reset
A.4.10. CDR/CMU and PMA Calibration
Visible to Intel only — GUID: wap1496269525694
Ixiasoft
2.4.4.4.5. Scanning the Horizontal and Vertical Phases
Sweep the horizontal and vertical phases to get a two-dimensional eye diagram.
Note: The horizontal phase steps (left_phase and right_phase) correspond to zero BER in the previous sweep. The phase steps with no BER may wrap around, for example, from phase 110 to phase 20.
- Create a 130*130 2D floating point array called ODI_error_count and initialize it to 0.
- Create a 130*130 2D floating point array called ODI_pattern_count and initialize it to 0.
- If DFE is disabled 28, repeat Step 5 to Step 37 two times:
- In the first iteration, set 0x144[2] to 0x0 and 0x14D[0] to 0x0.
- In the second iteration, set 0x144[2] to 0x1 and 0x14D[0] to 0x1.
- If the DFE is enabled28, repeat Step 5 to Step 37 four times:
- In the first iteration, set 0x144[2] to 0x0 and 0x14D[0] to 0x0.
- If DFE_tap1_sign = 0, set 0x156[2] to 0x0.
- If DFE_tap1_sign = 1, set 0x156[2] to 0x1.
- In the second iteration, set 0x144[2] to 0x0 and 0x14D[0] to 0x1.
- If DFE_tap1_sign = 0, set 0x156[2] to 0x1.
- If DFE_tap1_sign = 1, set 0x156[2] to 0x0.
- In the third iteration, set 0x144[2] to 0x1 and 0x14D[0] to 0x0.
- If DFE_tap1_sign = 0, set 0x156[2] to 0x0.
- If DFE_tap1_sign = 1, set 0x156[2] to 0x1.
- In the fourth iteration, set 0x144[2] to 0x1 and 0x14D[0] to 0x1.
- If DFE_tap1_sign = 0, set 0x156[2] to 0x1.
- If DFE_tap1_sign = 1, set 0x156[2] to 0x0.
- In the first iteration, set 0x144[2] to 0x0 and 0x14D[0] to 0x0.
- If the targeted device is H-tile production or H-tile ES3:
- Set 0x100[4] to 0x1.
- Set 0x0[7:0] to 0x01 to request PreSICE to calibrate the ODI samplers.
- Read 0x481[2] until it becomes 0x0.
- Set 0x171[4:1] to 0xB to configure the Avalon® memory-mapped interface testmux.
- Set 0x157[3:2] to 0x2 to capture the odd eye.
- Set integer variable vertical_phase to 0 and repeat Step 9 to Step 11 while incrementing vertical_phase until it reaches 126.
- If the vertical phase < 0x3F:
- Set 0x156[0] to 0x1 to capture the top half of the eye.
- Set 0x143[7:2] to 0x3F – vertical_phase.
- If the vertical phase >= 0x3F:
- Set 0x156[0] to 0x0 to capture the bottom half of the eye.
- Set 0x143[7:2] to vertical_phase – 0x3F.
- Set an integer horizontal_phase to left_phase – 10 and repeat Step 12 to Step 36 while incrementing horizontal_phase until it reaches right_phase + 10.
- If right_phase < left_phase, in other words, the eye is wrapped around, increment right_phase by 0x80.
- If horizontal_phase is < 1, increment it by 0x80.
- If horizontal_phase > 128, decrement it by 0x80.
- Set 0x145[6:0] to the encoded horizontal_phase.
- Set 0x168[2] to 0x0 to reset the serial bit counter.
- Set 0x168[2] to 0x1 to release the reset on the serial bit counter.
- Set 0x149[5:0] to 0x1C to read the ODI status.
- Read 0x17E[1] 29 until it becomes 0x1 to indicate that the ODI has received the selected number of bits and has completed.
- Set 0x149[5:0] to 0x1B to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_count_A.
- Set 0x149[5:0] to 0x1A to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_count_B.
- Set 0x149[5:0] to 0x19 to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_count_C.
- Set 0x149[5:0] to 0x18 to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_count_D.
- ODI_error_count[horizontal_phase][vertical_phase] = ODI_count_A * 224 + ODI_count_B * 216 + ODI_count_C * 28 + ODI_count_D + ODI_error_count[horizontal_phase][vertical_phase]
If the device is not H-tile production, the ODI_error_count may be greater than the actual count by 1.
- Set 0x149[5:0] to 0x17 to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_pattern_A.
- Set 0x149[5:0] to 0x16 to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_pattern_B.
- Set 0x149[5:0] to 0x15 to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_pattern_C.
- Set 0x149[5:0] to 0x14 to read the number of ODI error bits.
- Read 0x17E[7:0] 29, and save it as an integer ODI_pattern_D.
- ODI_pattern_count[horizontal_phase][vertical_phase] = ODI_pattern_A * 224 + ODI_pattern_B * 216 + ODI_pattern_C * 28 + ODI_pattern_D + ODI_pattern_count[horizontal_phase][vertical_phase]
- Set 0x157[3:2] to 0x1 to capture the even eye, and repeat Step 8.
- The BER at the horizontal phase and vertical phase = ODI_error_count[horizontal_phase][vertical_phase]/ODI_Pattern_count[horizontal_phase][vertical_phase].
28 To determine DFE mode, read 0x161[6]. DFE is disabled when 0x161[6] = 1.
29 Wait 25 µs between setting register 0x149[5:0] and reading 0x17E or 0x17F.