RISC-V-On-PYNQ - PL server connection error

  • PYNQ version: Release 2019_02_21 2382a55
  • Board: PYNQ-Z1
  • Vivado 2017.4

My goal is to implement a PicoRV32 RISC-V processor on my PYNQ board and I found the RISC-V-On-PYNQ project on Github. Until notebook 4 Packaging-An-Overlay everything went fine but instantiating the overlay leads to the following error:
ConnectionError: Could not connect to PL server

Has anybody else experienced these issues and does anyone know how to fix it?

Thanks,
Peter

Full output:

import sys
sys.path.insert(0, '/home/xilinx/RISC-V-On-PYNQ/riscvonpynq/picorv32/')

from tut.tutorial import TutorialOverlay

overlay = TutorialOverlay("tutorial.bit")

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py:299: UserWarning: Users will not get PARAMETERS / REGISTERS information through TCL files. HWH file is recommended.
  warnings.warn(message, UserWarning)
---------------------------------------------------------------------------
ConnectionError                           Traceback (most recent call last)
<ipython-input-2-6d8ffe0f6845> in <module>()
      4 from tut.tutorial import TutorialOverlay
      5 
----> 6 overlay = TutorialOverlay("tutorial.bit")

/usr/local/lib/python3.6/dist-packages/riscvonpynq/Overlay.py in __init__(self, bitfile, **kwargs)
     83         if(not os.path.isabs(bitfile)):
     84             bitfile = os.path.join(self.__get_path(), bitfile)
---> 85         super().__init__(bitfile, **kwargs)
     86 

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in __init__(self, bitfile_name, download, ignore_version)
    313 
    314         if download:
--> 315             self.download()
    316 
    317         self.__doc__ = _build_docstring(self._ip_map._description,

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in download(self, partial_bit)
    377                     Clocks.set_pl_clk(i)
    378 
--> 379             super().download()
    380             PL.reset(self.parser)
    381         else:

/usr/local/lib/python3.6/dist-packages/pynq/pl.py in download(self)
   1936         # use fpga manager to download bin
   1937         if not self.partial:
-> 1938             PL.shutdown()
   1939             flag = '0'
   1940         else:

/usr/local/lib/python3.6/dist-packages/pynq/pl.py in shutdown(cls)
   1456 
   1457         """
-> 1458         ip = cls.ip_dict
   1459         for name, details in ip.items():
   1460             if details['type'] == 'xilinx.com:ip:pr_axi_shutdown_manager:1.0':

/usr/local/lib/python3.6/dist-packages/pynq/pl.py in ip_dict(cls)
   1295 
   1296         """
-> 1297         cls.client_request()
   1298         cls.server_update()
   1299         return cls._ip_dict

/usr/local/lib/python3.6/dist-packages/pynq/pl.py in client_request(cls, address, key)
   1417         except FileNotFoundError:
   1418             raise ConnectionError(
-> 1419                 "Could not connect to PL server") from None
   1420         cls._bitfile_name, cls._timestamp, \
   1421             cls._ip_dict, cls._gpio_dict, \

ConnectionError: Could not connect to PL server

I suspect the reason is that you reinstalled pynq at some point and that failed or got interrupted. What about restarting the board?

thanks, flashing the PYNQ 2.4 image again fixed the problem