In this video I use Iperf to measure the actual maximum throughput of a Gigabit Ethernet port on the Ultra96 v2 running PetaLinux. The result that I get is pretty impressive: 910-940Mbps!
To do this test yourself you’ll need to build the example design that you’ll find on our Github repo, and then prepare the SD card. Plug your SD card into your Ultra96 and fit the 96B Quad Ethernet Mezzanine on top of the Ultra96. You need to connect the Ultra96’s USB UART to your PC and open up a terminal (115200, 8-bit data, 1-bit stop, no parity).
You’ll also need to download Iperf for Windows and copy it to some location on your hard drive. I just copy it to
You’ll need to physically connect both your Windows PC and your Ultra96 to a router with DHCP server so that both devices will automatically obtain an IP address. This isn’t really necessary but it just simplifies things. If you want, you can instead connect the two directly and set them up with fixed IP addresses.
At this point you can turn on the Ultra96 and let PetaLinux boot up. When it finishes, login and then run
ifconfig to get the IP address of the Ultra96. Shut down the Ethernet port by running
ifconfig eth0 down, then reconfigure MTU by running
ifconfig eth0 mtu 9000. Then bring the port back up by running
ifconfig eth0 up.
Now you can launch the Iperf server on the Ultra96 by running
Now run a command prompt on your Windows machine,
cd to the location of Iperf and then run
iperf -c <IP addr of Ultra96> to launch the Iperf client.
You should see this kind of output on your Windows machine:
C:\iperf\iperf3 -s ------------------------- Server listening on 5201 ------------------------- Accepted connection from 192.168.2.16, port 42890 [ 5] local 192.168.2.18 port 5201 connected to 192.168.2.16 port 42892 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 110 MBytes 920 Mbits/sec [ 5] 1.00-2.00 sec 113 MBytes 946 Mbits/sec [ 5] 2.00-3.00 sec 113 MBytes 946 Mbits/sec [ 5] 3.00-4.00 sec 113 MBytes 945 Mbits/sec [ 5] 4.00-5.00 sec 113 MBytes 946 Mbits/sec [ 5] 5.00-6.00 sec 113 MBytes 947 Mbits/sec [ 5] 6.00-7.00 sec 113 MBytes 949 Mbits/sec [ 5] 7.00-8.00 sec 113 MBytes 945 Mbits/sec [ 5] 8.00-9.00 sec 113 MBytes 949 Mbits/sec [ 5] 9.00-10.00 sec 113 MBytes 949 Mbits/sec [ 5] 10.00-10.03 sec 2.92 MBytes 940 Mbits/sec ------------------------- [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.03 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-10.03 sec 1.10 GBytes 944 Mbits/sec receiver
Those are pretty impressive results, especially for a single board computer, and they really demonstrate the power of the Zynq US+’s quad core ARM Cortex-A53 clocked at 1.2GHz. Also not to forget, this wouldn’t be possible without jumbo frames, which is a critical feature supported by the integrated Gigabit MACs in the Zynq US+. All of this makes the Ultra96 a great little platform for developing network applications with the Zynq Ultrascale+.