PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

Trouble running sdbuild for ZCU111

I’ve been using the Pynq v2.5 image for my ZCU111 board for a number of months now and want to start building my own custom pynq image in preparation for a custom board being designed.

I followed the Pynq steps for setting up the build machine environment (including using Vagrant+Virtualbox), and I pulled the ZCU111 board files from the Xilinx PYNQ-ZCU111 repo into my boards/ directory, along with downloading the ZCU111 Petalinux 2019.1 BSP.

My build environment is running Ubuntu 18.04, with the Xilinx 2019.1 tools. I kickoff a build by switching to the sdbuild directory and typing: make BOARDS=ZCU111. The process starts fine and runs for some number of hours before eventually failing out towards the end of the bitstream generation process. I notice that it seems to be targetting the ZCU104 board at this point instead of the ZCU111 as well.

This is the tail end of the log where it fails.
bd_e030_v_axi4s_vid_out_0_synth_1: /workspace/proj/sdbuild/build/PYNQ/boards/ZCU104/base/base/base.runs/bd_e030_v_axi4s_vid_out_0_synth_1/runme.log
bd_e030_util_vector_logic_0_0_synth_1: /workspace/proj/sdbuild/build/PYNQ/boards/ZCU104/base/base/base.runs/bd_e030_util_vector_logic_0_0_synth_1/runme.log
bd_e030_axi_crossbar_0_synth_1: /workspace/proj/sdbuild/build/PYNQ/boards/ZCU104/base/base/base.runs/bd_e030_axi_crossbar_0_synth_1/runme.log
synth_1: /workspace/proj/sdbuild/build/PYNQ/boards/ZCU104/base/base/base.runs/synth_1/runme.log
[Sat Mar 21 07:17:36 2020] Launched impl_1…
Run output will be captured here: /workspace/proj/sdbuild/build/PYNQ/boards/ZCU104/base/base/base.runs/impl_1/runme.log
launch_runs: Time (s): cpu = 00:01:42 ; elapsed = 00:02:05 . Memory (MB): peak = 2862.246 ; gain = 1172.809 ; free physical = 1247 ; free virtual = 5514
[Sat Mar 21 07:17:36 2020] Waiting for impl_1 to finish…
[Sat Mar 21 09:53:04 2020] impl_1 finished
wait_on_run: Time (s): cpu = 00:02:12 ; elapsed = 02:35:28 . Memory (MB): peak = 2862.246 ; gain = 0.000 ; free physical = 5111 ; free virtual = 6091
error copying “./base/base.runs/impl_1/base_wrapper.bit”: no such file or directory
while executing
“file copy -force ./{overlay_name}/{overlay_name}.runs/impl_1/{design_name}_wrapper.bit {overlay_name}.bit”
(file “build_bitstream.tcl” line 25)
INFO: [Common 17-206] Exiting Vivado at Sat Mar 21 09:53:05 2020…
makefile:16: recipe for target ‘bitstream’ failed
make[1]: *** [bitstream] Error 1
make[1]: Leaving directory ‘/workspace/proj/sdbuild/build/PYNQ/boards/ZCU104/base’

  • unmount_special
  • for fs in $fss
  • sudo umount -l /workspace/proj/sdbuild/build/bionic.aarch64/proc
  • for fs in $fss
  • sudo umount -l /workspace/proj/sdbuild/build/bionic.aarch64/run
  • for fs in $fss
  • sudo umount -l /workspace/proj/sdbuild/build/bionic.aarch64/dev
  • sudo umount -l /workspace/proj/sdbuild/build/bionic.aarch64/ccache
  • rmdir /workspace/proj/sdbuild/build/bionic.aarch64/ccache
    Makefile:325: recipe for target ‘/workspace/proj/sdbuild/output/bionic.aarch64.2.5.img’ failed
    make: *** [/workspace/proj/sdbuild/output/bionic.aarch64.2.5.img] Error 2
    vagrant@wilkins-build-srv:/workspace/proj/sdbuild$

Any ideas how I can resolve this?

This is because the building process requires the pynq sdist to be built, which in turn builds the zcu104 bitstream as well as z1 and z2 bitstreams. I think you can use

make BOARDDIR=<your zcu111 boards dir> PYNQ_SDIST=<pynq.tar.gz>

pynq.tar.gz can be downloaded at: https://pypi.org/project/pynq/#files