
Comparing FPGA RTL to HLS C/C++ using a Networking Example
White Paper Comparing FPGA RTL to HLS C/C++ using a Networking Example Overview Most FPGA programmers believe that high-level tools always emit larger bitstreams as
SmartNIC Shell is a complete working NIC that is implemented on a BittWare FPGA board as a starting point that users add FPGA value into. You can use SmartNIC Shell to quickly deploy network functions (NFV), network monitoring, specialized packet broker, or anything else that manipulates packets. The shell provides DPDK offload to interact with host applications; it is delivered as FPGA project source and as a fully functional bitstream.
SmartNIC Shell supports the following BittWare products:
The Loopback’s FPGA bitstream contains several components. Each component has an AXI4-Stream interface on both input and output collectively used as a data plane. The bitstream’s control plane uses AXI4-Lite interfaces connected to the physical PCIe interface.
DPDK is implemented in the FPGA on the BittWare card. BittWare’s joint effort with Atomic Rules is the first DPDK implementation inside an FPGA.
The BittWare board uses a patched version of the Atomic Rules PMD. The base PMD is included inside the DPDK distribution. BittWare supplies the necessary patches as part of our source distribution. All of BittWare’s testing with DPDK uses the uio_pci_generic driver, which replaces the BittWorks II driver. However, some of the BittWorks II tools still work.
Users receive the following:
Most ASIC and FPGA DPDK implementations perform one copy:
In contrast, SmartNIC Shell’s DPDK IP Core always DMAs directly into DPDK mbufs, never requiring the CPU to copy packet data. No second DMA is needed for metadata, reducing CPU overhead, latency, and host memory requirements. This does eliminate the opportunity for some PCIe optimizations like coalescing small packets into fewer DMAs or writing data preformatted as PCAP records. If needed, your application code can do those things in the FPGA above the DPDK core.
What you see on this page is the introduction to BittWare’s SmartNIC Shell. There’s a lot more detail in the full App Note! Fill in the form to request access to a PDF version of the full App Note.
"*" indicates required fields
White Paper Comparing FPGA RTL to HLS C/C++ using a Networking Example Overview Most FPGA programmers believe that high-level tools always emit larger bitstreams as
FPGA Server TeraBox 4102S 4U Server for FPGA Cards Legacy Product Notice: This is a legacy product and is not recommended for new designs. It
PCIe FPGA Card 520R-MX Stratix 10 FPGA Board with HBM2 and 480Gbps Optical Input Optimized for sensor processing applications with massive real-time data ingest requirements
BittWare On-Demand Webinar Enterprise-class FPGA Servers: The TeraBox Approach FPGA-based cards are maturing into critical devices for data centers and edge computing. However, there’s a
Notifications