NI-SmartNIC Overview

NI-SmartNIC is an NI instrument driver that supports SmartNIC devices from NI such as the PXIe-8290 PXI Ethernet Interface Module. With this driver and the included files, you can program compatible hardware in LabVIEW using the LabVIEW FPGA Module. Additionally, NI-SmartNIC includes an API for P2PDMA streaming that integrates with NI-RDMA for high-performance Ethernet data transfer between systems.

NI-SmartNIC enables PXI-based products to implement protocols commonly used by specialized network interface cards. SmartNIC-compatible modules include built-in NICs that support this functionality. Using NI-SmartNIC, users can establish seamless communication between supported modules and other FPGA-enabled devices such as the PXIe-7903 or PXIe-5842 VST using the Xilinx Aurora protocol. These capabilities make NI-SmartNIC a powerful tool for high-throughput, low-latency data movement. The driver supports both ready-made workflows and advanced customization.

Example Workflows

The PXIe-8290 supports the following two primary workflows when used with the PXIe-7903 or the PXIe-5842.

  • Prebuilt IP Streaming—Users can stream data from a VST or through a PXIe-7903 without modifying the FPGA IP. This workflow is well suited for users who are not digital hardware engineers. The workflow uses pre-developed FPGA IP and the RDMA protocol to transfer data to a server. This approach simplifies development and avoids the complexity of low-level FPGA design.
  • Custom FPGA Development—Some users need more advanced workflows. These users can choose to modify the FPGA IP. This step can occur before streaming data to or from a server or compatible device. The workflow requires expertise in HDL development. The Aurora-based implementation supports common use cases. Some users might need different protocols. In those cases, users must source or develop their own solutions. Aurora is a Xilinx protocol. AMD provides extensive documentation for users who want to customize or extend the design.
    Note The term server refers to a networked storage or processing system used for data streaming. This should not be confused with the Vivado compilation server, which is used to generate FPGA bitfiles.