Skip to content


mshahbaz edited this page Sep 11, 2012 · 1 revision





IP Cores



This is a reference NIC project using the DMA engine. It includes many of the standard NetFPGA modules (microblaze, AXI interconnect, nf10_interface), but in addition it uses the SRAM FIFO module to act as a packet buffer. The SRAM FIFO module is connected between the BRAM Output Queues and the 10G egress interface through AXIS (master+slave).

Block Diagram


The 10G NIC on NetFPGA is similar to other NICs. In the following sections, we will show how to run a iperf test between NetFPGA and another machine.

Testing Hardware

To run the test, you need two machines, A and B. Let's say Machine A is equipped with NetFPGA and Machine B is equipped with a third-party 10G NIC.

Download the reference_nic bitfile from contrib-projects/nic_sram/bitfiles/nic.bit. (Refer to Production Test Manual if you don't know how to download the bitfile and/or not setup JTAG cable yet.)

Connect Machine A and Machine B using a 10G cable. Assume we use nf0 (the port nearest to the PCI Express) on Machine A and eth1 on Machine B.

Build and Install the NIC Driver

Make the driver in the sw/host/driver directory and insert it as a module.

cd sw/host/driver
sudo insmod nf10.ko

If everything went smoothly dmesg will output that nf10 device is ready.

Setup IP address

On Machine A

sudo ifconfig nf0

On Machine B

sudo ifconfig eth1

Test 1: Ping

On Machine A

[hyzeng@machine_A ~]$ ping

PING 56(84) bytes of data.

64 bytes from icmp_req=1 ttl=50 time=1.04 ms

64 bytes from icmp_req=2 ttl=50 time=1.04 ms

64 bytes from icmp_req=3 ttl=50 time=1.04 ms

64 bytes from icmp_req=4 ttl=50 time=1.04 ms

Test 2: iperf

iperf is a utility to measure the performance over an IP link.

First, make sure you have iperf installed on both machines. If not,

sudo yum install iperf 

Setup iperf server on Machine A.

iperf -s

Setup iperf client on Machine B.

[hyzeng@machine_B ~]$ iperf -c


Client connecting to localhost, TCP port 5001

TCP window size:  132 KByte (default)


[  3] local port 52787 connected with port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec  9.35 GBytes  935 Mbits/sec

Clone this wiki locally
You can’t perform that action at this time.