CONTACT MLE
Please fill in the form and your requirements below, and our team will contact you soon.


    AMD (Xilinx)Altera (Intel)LatticeMicrochip (MicroSemi)Other


    *By submitting this form you are consenting to being contacted by the MLE via email and receiving marketing information.

    X
    CONTACT MLE

    Diagnostics and Network Statistics

    MLE NPAP Diagnostics and Network Statistics Table of Contents MLE NPAP Diagnostics and Network StatisticsDiagnostics Data Acquisition ModesNetwork Diagnostics Resource Costs In particular at faster line rates, diagnosing network protocol issues can be costly, time-consuming and challenging. Therefore, MLE NPAP comes with specialized diagnostics blocks, providing a powerful suite of tools for in-depth network analysis and efficient troubleshooting of network behavior. These diagnostics are fully optional and offer TCP/UDP/IPv4 layer-specific visibility of counters and status information similar to those in Linux or Windows, for example: TCP Core Activity: Track performance and network usage of individual cores. TCP Peer Balance: Monitor data flow and identify peer misconfigurations. Buffer Optimization: Fine-tune buffer settings using diagnostic data and RTT. General Troubleshooting: Track packets, errors, and pinpoint issue sources. MLE NPAP’s diagnostics blocks are accessed using AXI4-Lite and enable efficient diagnosis and a faster path towards resolving network problems when using hardware acceleration. Diagnostics Data Acquisition Modes The MLE NPAP diagnostics system supports multiple data acquisition modes to cater to different debugging and analysis needs. These modes define how the underlying counter and event state registers are updated. The selected mode applies universally to all readable counter and event state registers within the respective diagnostics block: Continuous Mode Registers the current state of events and counters

    Network Impairment (Bit Errors)

    MLE NPAP Network Impairment and Bit Error Insertion

    MLE NPAP has an optional integrated Network Impairment Generator. Network Impairment is also known as Bit Error Insertion. This helps to rigorously test and validate the robustness of your network by emulating real-world network impairments, such as Bit Error Rates (BER), at line speed.

    The Ethernet standard requires a BER no higher than 1×10⁻¹². NPAP’s Network Impairment Generator allows you to test your system far beyond this ideal requirement, simulating real-world conditions like those found in high-EMI environments or when using slip rings, for example.

    The Network Impairment Generator IP Core sits on the data path between the TCP/UDP/IPv4 layer and the Ethernet MAC layer, allowing for precise, controlled injection of errors. This enables you to perform stress testing and gain valuable insights into system performance under non-ideal conditions, ensuring your implementation remains resilient against link quality degradation.

    The graph below illustrates how different levels of Bit Error Rate (BER) over a 10 GBit/s link, emulated using NPAP’s Network Impairment Generator, affect the TCP throughput of a TCP connection between two MLE NPAP instances. Obviously, the TCP re-transmissions “eat” into the net data throughput:

    FPGA Resource Estimates

    MLE NPAP Resource Estimates for FPGA

    Resource estimates are directly tied to the specific set of compile-time parameters: Therefore, a typical FPGA implementation which integrates MLE NPAP can range from as low as 10K LUTs to 1 million LUTs (for dozens of TCP cores).

    MLE NPAP for AMD Versal AI Edge

    The following table shows resources for AMD/Xilinx Versal AI Edge Series fabric (xcve2302-sfva784-1LP-e-S-es1) compiled with AMD/Xilinx Vivado/Vitis 2024.1 – instantiating the following design features:

    • Ethernet block
    • IPv4 block
    • 1 UDP block
    • 4 instances of TCP blocks
    • Diagnostics blocks
    Instance Hierarchy LUTs LUTRAMs SRLs FFs RAMB36 RAMB18 URAM DSP
    Total Logic Blocks
    npap_tcp_udp_wrapper_u0 709446901019142062052251704
    └─npap_tcp_udp_top_u0 709446901019142062052251704
    ├─axis_register_udp_u0 228228004300000
    ├─axis_register_udp_u1 292292004310000
    ├─gen_hhi_to_axis_adapter 121412140019780000
    ├─npap_configuration_block_u0 103103003390000
    ├─npap_priority_manager_configurati 292900430000
    ├─npap_visibility_block 95009480020133240000
    ├─npap_diag_capture_u0 82978277020125110000
    ├─(npap_diag_capture_u0) 46260206940000
    ├─npap_diag_control_eth 157157002780000
    ├─npap_diag_control_ipv4 157157002780000
    ├─npap_diag_control_tcp 157157002030000
    ├─npap_diag_control_udp 157157002780000
    ├─npap_diag_counter_tcp_loop[0] 180318030026950000
    ├─npap_diag_counter_tcp_loop[1] 196119610026950000
    ├─npap_diag_counter_tcp_loop[2] 193619360026950000
    └─npap_diag_counter_tcp_loop[3] 192319230026950000
    └─npap_diag_register_u0 12041204008130000
    ├─(npap_diag_register_u0) 8098090000000
    ├─npap_diag_register_ethernet_u 11001900000
    ├─npap_diag_register_ipv4_u0 11001890000
    ├─npap_diag_register_tcp_u0 393393002450000
    └─npap_diag_register_udp_u0 11001890000
    └─wrapper_ll_ip_tcp_u0 59583576691914045507251704
    ├─(wrapper_ll_ip_tcp_u0) 633633007650000
    ├─g0.i_tcpTxMux 000020000
    ├─gen_WithUdp.i_udp 486448640042655080
    ├─gen_tcpConnections[0].i_tcp 12007115734340883040171
    ├─gen_tcpConnections[1].i_tcp 11174107644100836510111
    ├─gen_tcpConnections[2].i_tcp 12007115734360884640171
    ├─gen_tcpConnections[3].i_tcp 12011115754360893140171
    ├─iBusScheduler8 53153100360000
    ├─i_internetLayer 33833265118031080000
    ├─i_networkLayer 2947286780024047100
    └─i_resetStretchStack 545400450000

    MLE NPAP for AMD/Xilinx Ultrascale+ Series

    The following table shows resources for AMD/Xilinx Zynq Ultrascale+ MPSoC ZU9EG compiled with AMD/Xilinx Vivado 2022.2 – instantiating the following design features:

    • 10 GigE Low-Latency MAC from Fraunhofer HHI
    • Ethernet block
    • IPv4 block
    • UDP block
    • 10 instances of TCP blocks (2 used for netperf)
    • TCP and UDP Diagnostics blocks
    Instance Hierarchy LUTs LUTRAMs SRLs FFs RAMB36 RAMB18 URAM DSP
    Total Logic Blocks
    amd_zcu102_source_full_10g_sync15534715042048241031796547078030
    ├─mac_10_gbe_wrapper_u01789177910010160000
    ├─mac10gbe_top_u01789177910010160000
    └─mac10Gbe_struct_u01789177910010160000
    ├─mac_interface_adapter_generic_64_158158003700000
    ├─axis_dwidth_converter_128_to_64119119002220000
    └─axis_dwidth_converter_64_to_1283939001480000
    ├─reset_stretch_reset_rx_mac5500170000
    ├─reset_stretch_reset_tx_mac5500170000
    ├─reset_sync_reset_system_to_reset_000020000
    └─reset_sync_reset_system_to_reset_000020000
    ├─npap_tcp_udp_wrapper_u010967210504045301021307287076030
    └─npap_tcp_udp_top_u010967210504045301021307287076030
    ├─axis_register_udp_u0102102004280000
    ├─axis_register_udp_u1263263004240000
    ├─npap_configuration_block_u0126126003380000
    ├─npap_priority_manager_conf_515100520000
    ├─npap_visibility_block1149911445054318050000
    ├─npap_diag_capture_u01053910485054309720000
    ├─(npap_diag_capture_u0)1307605414180000
    ├─npap_diag_control_eth137137002030000
    ├─npap_diag_control_ipv4137137002030000
    ├─npap_diag_control_tcp137137002030000
    ├─npap_diag_control_udp8484002030000
    ├─npap_diag_counter_tcp_07607600026950000
    ├─npap_diag_counter_tcp_1101610160026950000
    ├─npap_diag_counter_tcp_2108010800026950000
    ├─npap_diag_counter_tcp_38258250026950000
    ├─npap_diag_counter_tcp_47607600026950000
    ├─npap_diag_counter_tcp_5108010800026950000
    ├─npap_diag_counter_tcp_6101610160026950000
    ├─npap_diag_counter_tcp_78258250026950000
    ├─npap_diag_counter_tcp_88248240026950000
    ├─npap_diag_counter_tcp_9146514650026950000
    └─npap_diag_counter_udp2682680017920000
    └─npap_diag_register_u0960960008330000
    ├─(npap_diag_register_u0)8458450000000
    ├─npap_diag_reg_ethernet11001880000
    ├─npap_diag_register_ipv411001880000
    ├─npap_diag_register_tcp6464002680000
    └─npap_diag_register_udp5050001890000
    └─wrapper_ll_ip_tcp_u09450589927453048922537076030
    ├─(wrapper_ll_ip_tcp_u0)800800001920000
    ├─g0.i_tcpTxMux000040000
    ├─gen_WithUdp.i_udp36203572048388847500
    ├─gen_tcpConnections[0].i_t831478884260817968003
    ├─gen_tcpConnections[1].i_t793675024340778541003
    ├─gen_tcpConnections[2].i_t962291884340840368003
    ├─gen_tcpConnections[3].i_t834179074340828968003
    ├─gen_tcpConnections[4].i_t834079064340829068003
    ├─gen_tcpConnections[5].i_t832779034340828868003
    ├─gen_tcpConnections[6].i_t833178974340828968003
    ├─gen_tcpConnections[7].i_t833378994340828868003
    ├─gen_tcpConnections[8].i_t833879044340830468003
    ├─gen_tcpConnections[9].i_t833779034340828868003
    ├─iBusScheduler81108110800690000
    ├─i_internetLayer24292311118030460000
    ├─i_networkLayer1891181180022767100
    └─i_resetStretchStack474700350000
    • 10 GigE Low-Latency MAC from Fraunhofer HHI
    • Ethernet block
    • IPv4 block
    • UDP block
    • 10 instances of TCP
    Instance Hierarchy LUTs LUTRAMs SRLs FFs RAMB36 RAMB18 URAM DSP
    Total Logic Blocks
    amd_zcu102_source_no_diag_10g_sync1437711388984824491473857078030
    ├─mac_10_gbe_wrapper_u01796178610010160000
    ├─mac10gbe_top_u01796178610010160000
    └─mac10Gbe_struct_u01796178610010160000
    ├─mac_interface_adapter_generic_64_158158003700000
    ├─axis_dwidth_converter_128_to_64119119002220000
    └─axis_dwidth_converter_64_to_1283939001480000
    ├─reset_stretch_reset_rx_mac5500170000
    ├─reset_stretch_reset_tx_mac5500170000
    ├─reset_sync_reset_system_to_reset_000020000
    ├─reset_sync_reset_system_to_reset_000020000
    ├─npap_tcp_udp_wrapper_u09809293514453048985067076030
    ├─npap_tcp_udp_top_u09809293514453048985067076030
    ├─axis_register_udp_u0102102004280000
    ├─axis_register_udp_u1264264004240000
    ├─npap_configuration_block_u0142142003380000
    ├─npap_priority_manager_conf_474700520000
    ├─npap_visibility_block330050000
    ├─wrapper_ll_ip_tcp_u09439689818453048918317076030
    ├─(wrapper_ll_ip_tcp_u0)800800001920000
    ├─g0.i_tcpTxMux000040000
    ├─gen_WithUdp.i_udp36183570048388547500
    ├─gen_tcpConnections[0].i_t830078744260813768003
    ├─gen_tcpConnections[1].i_t793575014340774241003
    ├─gen_tcpConnections[2].i_t960791734340836068003
    ├─gen_tcpConnections[3].i_t832978954340824668003
    ├─gen_tcpConnections[4].i_t832278884340824768003
    ├─gen_tcpConnections[5].i_t832678924340824768003
    ├─gen_tcpConnections[6].i_t832278884340824868003
    ├─gen_tcpConnections[7].i_t831978854340824768003
    ├─gen_tcpConnections[8].i_t834079064340826368003
    ├─gen_tcpConnections[9].i_t832578914340824868003
    ├─iBusScheduler81107110700690000
    ├─i_internetLayer24232305118030460000
    ├─i_networkLayer1888180880022757100
    └─i_resetStretchStack474700350000

    Changelog

    MLE NPAP Changelog Table of Contents MLE NPAP ChangelogMLE NPAP Version 2 DevelopmentMLE NPAP Version 1 Development The following lists MLE’s engineering changelog for MLE NPAP. With the release of NPAP v2.2.0 the development cycle has changed from 1.x to 2.x. Version 2.4.5 uses the least amount of resources and includes no diagnostics.Version 2.5.0 and onwards requires VHDL-2008. VHDL-2008 is not fully supported in Quartus Prime Standard, for example. Please inquire with any questions regarding tool support. MLE NPAP Version 2 Development 20260630 No DIag (and no VHDL-2008) TB2026xxxx Latency / RTO Hybrid TC 20260228 NPAP Kernel v2.9.0 TCP #6668 – rework handling of RTO settings #7734 – add simulation timeout to TCP transmit module to shorten establish time in simulation ERD v3.4.11 all bump ERD to v3.4.11 #6525  – fix naming by using different names for same signals #6668 – update RTO signals naming between TDA and TCA #7804 – fix psh signal connection between TDA and TCA IP update to NPAP v2.9.0 update to TDA v5.0.0 update to TCA v5.0.0 20260131 NPAP Kernel v2.8.1 GENERAL #7630 – add support for Quartus Prime Standard Edition TCP #7516 – fix data segment handling if TCP receiver is turned off #7722 – fix TcpCmdStopRecv command does not disable TCP receiver #7723 – improve

    Protocol Support (RFC1122)

    MLE NPAP Protocol Support (RFC1122 excerpt)

    MLE NPAP Ethernet Layer

    Feature Section Must Must Not Implemented
    Send Trailers by default without negotiation 2.3.1   x x
    ARP 2.3.2      
           Flush out-of-date ARP cache entries 2.3.2.1 x   (x)
           Prevent ARP floods 2.3.2.1 x   (x)
    Ethernet and IEEE 802 Encapsulation 2.3.3      
            Host able to: 2.3.3      
                   Send & receive RFC-894 encapsulation 2.3.3 x   x
            Send K1=6 encapsulation 2.3.3   x  
            Use ARP on Ethernet and IEEE 802 nets 2.3.3 x   x
    Link layer report b’casts to IPv4 layer 2.4 x    
    IPv4 layer pass TOS to link layer 2.4 x    
    No ARP cache entry treated as Dest. Unreach.
    2.4   x x

    MLE NPAP IPv4 & ICMP Layer