40- and 100-Gbps Ethernet MAC and PHY MegaCore Function User Guide
ID
683114
Date
6/15/2022
Public
Product Discontinuance Notification
1. About the 40- and 100-Gbps Ethernet MAC and PHY IP Core
2. Getting Started
3. Functional Description
4. Debugging the 40GbE and 100GbE Link
A. 40-100GbE IP Core Example Design
B. Address Map Changes for the 40-100GbE IP Core v12.0 Release
C. 10GBASE-KR Registers
D. Additional Information
2.1. Installing and Licensing Intel® FPGA IP Cores
2.2. Specifying the 40-100GbE IP Core Parameters and Options
2.3. IP Core Parameters
2.4. Files Generated for the 40-100GbE IP Core
2.5. Simulating the IP Core
2.6. Integrating Your IP Core in Your Design
2.7. 40-100GbE IP Core Testbenches
2.8. Simulating the 40‑100GbE IP Core With the Testbenches
2.9. Compiling the Full Design and Programming the FPGA
2.10. Initializing the IP Core
3.2.1. IP Core TX Datapath
3.2.2. IP Core TX Data Bus Interfaces
3.2.3. 40-100GbE IP Core RX Datapath
3.2.4. IP Core RX Data Bus Interfaces
3.2.5. 40GbE Lower Rate 24.24 Gbps MAC and PHY
3.2.6. 100GbE CAUI–4 PHY
3.2.7. External Reconfiguration Controller
3.2.8. Congestion and Flow Control Using Pause Frames
3.2.9. Pause Control and Generation Interface
3.2.10. Pause Control Frame and Non‑Pause Control Frame Filtering and Forwarding
3.2.11. 40-100GbE IP Core Modes of Operation
3.2.12. Link Fault Signaling Interface
3.2.13. Statistics Counters Interface
3.2.14. MAC – PHY XLGMII or CGMII Interface
3.2.15. Lane to Lane Deskew Interface
3.2.16. PCS Test Pattern Generation and Test Pattern Check
3.2.17. Transceiver PHY Serial Data Interface
3.2.18. 40GBASE-KR4 IP Core Variations
3.2.19. Control and Status Interface
3.2.20. Clocks
3.2.21. Resets
3.2.2.1. 40-100GbE IP Core User Interface Data Bus
3.2.2.2. 40-100GbE IP Core TX Data Bus with Adapters (Avalon-ST Interface)
3.2.2.3. 40-100GbE IP Core TX Data Bus Without Adapters (Custom Streaming Interface)
3.2.2.4. Bus Quantization Effects With Adapters
3.2.2.5. User Interface to Ethernet Transmission
3.2.3.1. 40-100GbE IP Core RX Filtering
3.2.3.2. 40-100GbE IP Core Preamble Processing
3.2.3.3. 40-100GbE IP Core FCS (CRC-32) Removal
3.2.3.4. 40-100GbE IP Core CRC Checking
3.2.3.5. RX CRC Forwarding
3.2.3.6. RX Automatic Pad Removal Control
3.2.3.7. Address Checking
3.2.3.8. Inter-Packet Gap
3.2.3.9. Pause Ignore
3.2.4.1. 40-100GbE IP Core User Interface Data Bus
3.2.4.2. 40-100GbE IP Core RX Data Bus with Adapters (Avalon-ST Interface)
3.2.4.3. 40-100GbE IP Core RX Data Bus Without Adapters (Custom Streaming Interface)
3.2.4.4. 100GbE IP Core RX Client Interface Examples
3.2.4.5. Error Conditions on the RX Datapath
3.4.1.1. Transceiver PHY Control and Status Registers
3.4.1.2. Lock Status Registers
3.4.1.3. Bit Error Flag Registers
3.4.1.4. PCS Hardware Error Register
3.4.1.5. BER Monitor Register
3.4.1.6. Test Mode Register
3.4.1.7. Test Pattern Counter Register
3.4.1.8. Link Fault Signaling Registers
3.4.1.9. MAC and PHY Reset Registers
3.4.1.10. PCS‑VLANE Registers
3.4.1.11. PRBS Registers
3.4.1.12. 40GBASE-KR4 Registers
3.4.1.13. MAC Configuration and Filter Registers
3.4.1.14. Pause Registers
3.4.1.15. MAC Hardware Error Register
3.4.1.16. CRC Configuration Register
3.4.1.17. MAC Feature Configuration Registers
3.4.1.18. MAC Address Registers
3.4.1.19. Statistics Registers
3.2.2.5.1. 40GbE IP Core Without Adapters
The following figures illustrate the transmission of a short packet when preamble pass-through is turned off and when it is turned on.
Figure 16. Short Packet Example Without Preamble Illustrates the transmission of a short packet when preamble pass-through is turned off.
Bus Representation of a Short TX Packet Without Preamble
This example shows the Verilog HDL code that represents the simple packet illustrated in the previous figure. Note that bit din_end[5] in the second cycle, corresponding to the “Last data” in the figure, is asserted.
wire [6*8-1:0] dst_addr = 48’hffff ffff ffff;
wire [6*8-1:0] src_addr = 48’h0007 edff 1234;
wire [2*8-1:0] len = 16’d64;
\\First cycle:
din = {64'h0, dst_addr, src_addr[47:32]};
din_start = 2'b01;
din_end = 16'b00000000_00000000;
\\Second cycle:
din = {src_addr[31:0], len, "hello", 40'h0};
din_start = 2'b00;
din_end = 16'b00000000_00100000;
Figure 17. Short Packet Example With Preamble Illustrates the transmission of a short packet when preamble pass-through is turned on. In this example, the preamble starts in the MSB; however, this need not be the case.
Bus Representation of a Short TX Packet With Preamble
This example shows the Verilog HDL code that represents the simple packet illustrated in the previous figure. Note that bit din_end[5] in the second cycle, corresponding to the “Last data” in the figure, is asserted.
wire [8*8-1:0] preamble = 64’hXX55_5555_55D5;
wire [6*8-1:0] dst_addr = 48’hffff ffff ffff;
wire [6*8-1:0] src_addr = 48’h0007 edff 1234;
wire [2*8-1:0] len = 16’d64;
\\First cycle:
din = {preamble, dst_addr, src_addr[47:32]};
din_start = 2'b10;
din_end = 16'b00000000_00000000;
\\Second cycle:
din = {src_addr[31:0], len, "hello", 40'h0};
din_start = 2'b00;
din_end = 16'b00000000_00100000;
Figure 18. Sample 40GbE IP Core TX Bus ActivityIllustrates the deassertion of the din_ack signal. The data beginning with 0xe6e7 is not immediately accepted. The din bus must be held until din_ack returns to one. At this point normal data flow resumes.