How to Build PYNQ v2.5 for Ultra96

How to Build PYNQ v2.5 for Ultra96

In this post we’re going to build an SD image for PYNQ release v2.5 (tool version 2019.1) for the Ultra96 board. The starting point will be the virtual machine that we setup in an earlier post How to Install PetaLinux 2019.1. In that post we installed Vivado & SDK 2019.1 and PetaLinux 2019.1 on the VM, and we’ll need all three of them to build the PYNQ SD image. I highly recommend that you follow that post and recreate exact same VM to avoid any issues going through this post.

[Read More]

How to Install PetaLinux 2019.1

Clean install on a virtual machine

This is my guide for installing PetaLinux 2019.1 from scratch on a virtual machine. The VM will run Ubuntu 18.04.4 64-bit and the host workstation is an Intel Xeon with 64GB RAM and 3TB HDD running Windows 10 64-bit. The PetaLinux user guide says that the latest supported version of Ubuntu is 18.04.1 however in my experience it works just fine in the more recent 18.04.4 version.

Step 1: Create the Virtual Machine

  1. Get VirtualBox from here, then install and launch it.
  2. Create a new virtual machine and use the following options:
    • Ubuntu 64-bit
    • 16 GB RAM (8GB minimum according to user guide)
    • VirtualBox Disk Image
    • Dynamic hard disk (resizable)
    • 200 GB size (the resulting VM will have about 113GB free after all of these installs so you can reduce this if you like)
Don’t see 64-bit? You can’t use PetaLinux tools without it. If VirtualBox doesn’t give you the option for a 64-bit Ubuntu, you may need to enable Hardware Virtualization in your BIOS.

Step 2: Install Ubuntu 18.04.4 LTS onto the VM

We need to have the Ubuntu installation boot disk (or the ISO) so that the VM can be booted from it on the first time it is powered up.

[Read More]

NVMe SSD Speed test on the ZCU106 Zynq Ultrascale+ in PetaLinux

NVMe SSD Speed test on the ZCU106 Zynq Ultrascale+ in PetaLinux

Update 2020-02-07: Missing Link Electronics has released their NVMe Streamer product for NVMe offload to the FPGA, maximum SSD performance, and they have an example design that works with FPGA Drive FMC!

Probably the most common question that I receive about our SSD-to-FPGA solution is: what are the maximum achievable read/write speeds? A complete answer to this question would require a whole other post, but instead for today I’m going to show you what speeds we can get with a simple but highly flexible setup that doesn’t use any paid IP. I’ve run some simple Linux scripts on this hardware to measure the read/write speeds of two Samsung 970 EVO M.2 NVMe SSDs. If you have our FPGA Drive FMC and a ZCU106 board, you will be able to download the boot files and the scripts and run this on your own hardware. Let’s jump first to the results.

[Read More]
nvme 

Measuring the maximum throughput of Gigabit Ethernet on the Ultra96

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).

[Read More]
iperf 

Introducing 96B Quad Ethernet Mezzanine

Introducing 96B Quad Ethernet Mezzanine

Update 2019-06-10: This product is now available to purchase! Read the documentation here, and get it from the order page here.

Over the last few months I’ve been really busy working on a new product and I just want to take a step back today and share some of it. Let me start with what it is and then I’ll tell you about how and why I did it.

The product

A 4-port Gigabit Ethernet mezzanine card designed for Avnet’s Ultra96 Zynq Ultrascale+ single board computer.

[Read More]

Board bring-up: MYIR MYD-Y7Z010 Dev board

In this tutorial video, I bring-up the 3x Gigabit Ethernet ports on the MYD-Y7Z010 Development board from MYIR. Firstly, I create a Vivado design for this board, then I export it into the SDK and generate the echo server application for each of the 3 ports (note that the echo server application only supports one port at a time). At the end of the video, I test each of these designs on hardware and ensure that the ports are given an IP address via DHCP and that I can ping the port. I did this on the MYIR dev board but I hope that the tutorial can be of help to people bringing up Ethernet ports on other platforms or their own custom boards.

[Read More]
lwip  myir  zynq 

Setting up the PYNQ-Z1 for the Intel Movidius Neural Compute Stick

Setting up the PYNQ-Z1 for the Intel Movidius Neural Compute Stick

The Intel Movidius Neural Compute Stick (NCS) is a neural network computation engine in a USB stick form factor. It’s based on the Myriad-2 chip, referred to by Movidius as a VPU or Visual Processing Unit, basically a processor that was specifically designed to accelerate neural network computations, and with relatively low power requirements. The NCS is a great match for single board computers like the Raspberry Pi, the Beagle Bone and especially the PYNQ-Z1. Now these boards can all run software based neural networks, but not very quickly, so their potential in fast moving applications is limited. When paired with a Movidius NCS, they can achieve tremendously better inference times by offloading all of the heavy neural network computation to the Myriad chip.

[Read More]

List of PYNQ projects and ports

List of PYNQ projects and ports

PYNQ enables huge productivity gains by making it possible to program the Zynq-7000 SoC with a high-level programming language (Python) and leverage the power of FPGA hardware acceleration with ease. Xilinx first designed PYNQ to target the PYNQ-Z1 board but it wasn’t long before others saw the potential of running PYNQ on other platforms. This post is a list of open-sourced PYNQ projects and ports that run on other platforms. I’ll keep the list up-to-date but if you know of an open-sourced PYNQ project or port that I haven’t found yet, please let me know and I’ll add it to the list.

[Read More]
pynq 

PYNQ Computer Vision demo: 2D filter and dilate

See what the PYNQ-Z1 and the PYNQ Computer Vision overlay are capable of doing with a 720p standard HD video stream. In the video we run a 2D filter and dilate function on the incoming video, first using the Python OpenCV functions (ie. without hardware acceleration), then we test it again with the accelerator IPs running on the FPGA. Without acceleration, we get a frame rate of 5 frames per second. At that frame rate the flicker is obvious. When we switch to the hardware accelerated functions, we get 60 frames per second and we see a very smooth video output.

[Read More]
pynq