Low Latency 40- and 100-Gbps Ethernet MAC and PHY MegaCore Function User Guide
ID
683628
Date
12/28/2017
Public
2.1. Installation and Licensing for LL 40-100GbE IP Core for Stratix V Devices
2.2. Licensing IP Cores
2.3. Specifying the Low Latency 40-100GbE IP Core Parameters and Options
2.4. IP Core Parameters
2.5. Files Generated for Stratix V Variations
2.6. Files Generated for Arria 10 Variations
2.7. Integrating Your IP Core in Your Design
2.8. Low Latency 40-100GbE IP Core Testbenches
2.9. Simulating the Low Latency 40‑100GbE IP Core With the Testbenches
2.10. Compiling the Full Design and Programming the FPGA
2.11. Initializing the IP Core
2.7.1. Pin Assignments
2.7.2. External Transceiver Reconfiguration Controller Required in Stratix V Designs
2.7.3. Transceiver PLL Required in Arria 10 Designs
2.7.4. External Time-of-Day Module for Variations with 1588 PTP Feature
2.7.5. Clock Requirements for 40GBASE-KR4 Variations
2.7.6. External TX MAC PLL
2.7.7. Placement Settings for the Low Latency 40-100GbE IP Core
2.9.1. Generating the Low Latency 40-100GbE Testbench
2.9.2. Optimizing the Low Latency 40‑100GbE IP Core Simulation With the Testbenches
2.9.3. Simulating with the Modelsim Simulator
2.9.4. Simulating with the NCSim Simulator
2.9.5. Simulating with the VCS Simulator
2.9.6. Testbench Output Example: Low Latency 40-100GbE IP Core
3.2.1. Low Latency 40-100GbE IP Core TX Datapath
3.2.2. Low Latency 40-100GbE IP Core TX Data Bus Interfaces
3.2.3. Low Latency 40-100GbE IP Core RX Datapath
3.2.4. Low Latency 40-100GbE IP Core RX Data Bus Interface
3.2.5. Low Latency 100GbE CAUI–4 PHY
3.2.6. External Reconfiguration Controller
3.2.7. External Transceiver PLL
3.2.8. External TX MAC PLL
3.2.9. Congestion and Flow Control Using Pause Frames
3.2.10. Pause Control and Generation Interface
3.2.11. Pause Control Frame Filtering
3.2.12. Link Fault Signaling Interface
3.2.13. Statistics Counters Interface
3.2.14. 1588 Precision Time Protocol Interfaces
3.2.15. PHY Status Interface
3.2.16. Transceiver PHY Serial Data Interface
3.2.17. Low Latency 40GBASE-KR4 IP Core Variations
3.2.18. Control and Status Interface
3.2.19. Arria 10 Transceiver Reconfiguration Interface
3.2.20. Clocks
3.2.21. Resets
3.2.2.1. Low Latency 40-100GbE IP Core User Interface Data Bus
3.2.2.2. Low Latency 40-100GbE IP Core TX Data Bus with Adapters (Avalon-ST Interface)
3.2.2.3. Low Latency 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. Low Latency 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. LL 40-100GbE IP Core Malformed Packet Handling
3.2.3.6. RX CRC Forwarding
3.2.3.7. Inter-Packet Gap
3.2.3.8. Pause Ignore
3.2.3.9. Control Frame Identification
2.8.1. Low Latency 40-100GbE IP Core Testbench Overview
The non-40GBASE-KR4 testbenches send traffic through the IP core in transmit-to-receive loopback mode, exercising the transmit side and receive side of the IP core in the same data flow. These testbenches send traffic to allow the Ethernet lanes to lock, and then send packets to the transmit client data interface and check the data as it returns through the receive client data interface.
Figure 7. Low Latency 40-100GbE non-40GBASE-KR4 IP Core Testbench Illustrates the top-level modules of the Low Latency 40GbE and 100GbE example testbenches.
Figure 8. 40GBASE-KR4 LL 40GbE IP Core TestbenchIllustrates the top-level modules of the LL 40GBASE-KR4 example testbench. To support the simulation of auto-negotiation, the testbench uses two instances of the IP core instead of configuring the IP core in loopback mode.
File Names |
Description |
---|---|
Testbench and Simulation Files |
|
basic_avl_tb_top.v | Top-level testbench file for non-40GBASE-KR4 variations. The testbench instantiates the DUT and runs Verilog HDL tasks to generate and accept packets. |
alt_e40_avalon_kr4_tb.sv | Top-level testbench file for 40GBASE-KR4 variations. |
alt_e40_avalon_tb_packet_gen.v, alt_e40_avalon_tb_packet_gen_sanity_check.v, alt_e40_stat_cntr_1port.v | Packet generator and checkers for 40GBASE-KR4 variations. |
Testbench Scripts |
|
run_vsim.do | The ModelSim script to run the testbench. |
run_vcs.sh | The Synopsys VCS script to run the testbench. |
run_ncsim.sh | The Cadence NCSim script to run the testbench. |
Figure 9. Typical 40GbE Traffic on the Avalon-ST InterfaceShows typical traffic from the simulation testbench created using the run_vsim.do script in ModelSim. In this case the IP core is a 40GbE IP core with adapters. In Stratix V variations the script is found in <instance_name> _example_design/alt_eth_ultra/example_testbench/run_vsim.do and in Arria 10 variations the script is found in <example_design_directory> /example_testbench/run_vsim.do.
Note: Client logic must maintain the l4_tx_valid signal asserted while asserting SOP, through the assertion of EOP. Client logic should not pull this signal low during a packet transmission.
The markers in the figure show the following sequence of events:
- At marker 1, the application asserts l4_tx_startofpacket, indicating the beginning of a TX packet.
- At marker 2, the application asserts l4_tx_endofpacket, indicating the end of the TX packet. The value on l4_tx_empty[4:0] indicates that the 2 least significant bytes of the last data cycle are empty.
- At marker 3, the IP core asserts l4_rx_startofpacket, indicating the beginning of an RX packet. A second transfer has already started on the TX bus.
- At marker 4, the 40GbE IP core deasserts l4_rx_valid, indicating that the IP core does not have new valid data to send to the client on l4_rx_data[255:0]. l4_rx_data[255:0] remains unchanged for a second cycle, but because the l4_rx_valid signal is deasserted, the client should ignore the value on the RX signals.
- A marker 5, the 40GbE IP core asserts l4_rx_valid, indicating that it has valid data to send to the client on l4_rx_data[255:0].
- At marker 6, the 40GbE IP core deasserts l4_rx_valid, indicating that it does not have new valid data to send to the client on l4_rx_data[255:0]. l4_rx_data[255:0] remains unchanged for a second cycle.
- At marker 7, the 40GbE IP core asserts l4_rx_valid, indicating that it has valid data to send to the client on l4_rx_data[255:0].
- At marker 8, the 40GbE IP core deasserts l4_rx_valid, indicating that the 40GbE IP core does not have new valid data to send to the client on l4_rx_data[255:0]. l4_rx_data[255:0] remains unchanged for a second cycle.
- At marker 9, the IP core asserts l4_rx_endofpacket, indicating the end of the RX packet. l4_rx_empty[4:0] has a value of 0x1D, indicating that 29 least significant bytes of the last cycle of the RX packet empty.
Note: The ready latency on the Avalon-ST TX client interface is 0.
Related Information