Dataflow Block Diagram
MLE NPAP Dataflow Block Diagram The following shows the dataflow view of an exemplary design integrating MLE NPAP with one UDP core and multiple TCP cores (3 for user-level plus 2 for Netperf), each with an example user application, plus Netperf (for bandwidth and latency benchmarking), plus network impairment (for Bit Error Rate Testing), plus diagnostics counters: The example user applications serve as an example on how to send and/or receive data from programmable logic via TCP/UDP/IPv4. For TCP this logic is inside one (or more) TCP Wrappers which contain HDL code for handling the control and data flow: TCA – the TCP Command Application to open/close a TCP connection TDA – the TCP Demo Application which uses the TCA to control the TCP session and can forward data to and from external applications such as the DGC DGC – a Data Generator and Checker which can generate payload data for sending and at the same time can check received payload data Similarly, for UDP this logic is inside the one (or more) UDP Wrappers which contain HDL code for handling the control and data flow: UDA – the UDP Demo Application which handles the control and data flow for one UDP port DGC – a Data Generator and Checker which canControl-Flow View
MLE NPAP Control-Flow and Hardware Abstraction Layer Table of Contents MLE NPAP Control-Flow and Hardware Abstraction LayerMLE NPAP Admin via USB-UART or USB-JTAGMLE NPAP Admin via Embedded Processing SystemMLE NPAP Admin via PCIe MLE NPAP Admin via Out-of-Band Ethernet / UDP For administration and control at run-time, MLE NPAP implements so-called Runtime Parameterization and administration via an AXI-Lite register space. Access to this interface is exported through the so-called NPAP Hardware Abstraction Layer (HAL). Along with a Python library, NPAP HAL provides a high-level API for Linux software, utilizing swappable backends to communicate with the hardware across diverse environments, from SOC processing systems to remote workstations. Here a list of connectivity choices for NPAP HAL: Via USB-UART or USB-JTAG or USB-IIC Via the FPGA-integrated Processing System which can be ARM, RISC-V, MicroBlaze, NIOS, etc Via PCIe connection with the host CPU Via out-of-band Ethernet and UDP (on the roadmap) Via in-band Ethernet and UDP (on the roadmap) Besides NPAP HAL, MLE further provides a python based command-line tool, called npap-admin, that abstracts complex runtime parameterization into simple configuration file editing. Customers have been using npap-admin during evaluation and development, for Continuous Integration or in-the-field when NPAP-based products have been deployed. Good design examples for Runtime parameterization and administration of NPAP are the so-calledDiagnostics 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 countersNetwork 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:
