Code Monkey home page Code Monkey logo

pynq_rfsoc_workshop's Introduction

PYNQ RFSoC Workshop

A collection of designs and notebooks for the PYNQ & RFSoC workshop — part of the ZCU111's PYNQ image.

Getting started

On ZCU111 PYNQ SD card images, these notebooks are already included. The steps to get started with this image are:

  1. Download the "ZCU111 PYNQ image" file from the PYNQ website.

  2. Refer to the PYNQ docs for steps to:

  3. Navigate to http://<IP address>/lab for the new JupterLab interface. We use features that aren't in the default interface.

  4. Attach a SMA loopback cable between the DAC/ADC pair as shown below.

Now you're ready to use the notebooks in the rfsoc_workshop folder, as highlighted below:

Building from source

This step is optional. Only continue if you want to build your own image.

You can recreate this workshop manually if, for example, you want to use it on a different PYNQ image. Clone this repo and manually install the constituent RFSoC overlays:

  1. RFSOC-QPSK
  2. SDFEC-PYNQ
  3. DSP-PYNQ

Run make install to deploy the workshop notebooks to the rfsoc_workshop folder.

Hosting a lab session

Note that there is a make install target that will replace the notebooks with the original copies. Use this to do a soft reset between groups.

FAQ

  • Q: Which RFSoC boards are supported?

    • Currently the ZCU111 is the only officially supported board
  • Q: Can I run these notebooks on my custom RFSoC board?

    • You can build a PYNQ image for a custom board by following these steps. You will also likely need to rebuild the Overlays used in this lab — for support please raise an issue on the relevant repo (Data Converter, SD-FEC, or DSP)
  • Q: Where can I get general support?

    • There is a public forum for PYNQ at https://discuss.pynq.io/, where you can ask (or respond to) questions about this lab and more
  • Q: Which version of Vivado was used to build these Overlays?

    • Vivado 2020.1 was used for the latest build of Overlays
  • Q: There is erroneous or zero data on the receive path in the "PYNQ & Data Converter" notebook

    • Check that the SMA cable is connected to the correct ports on the daughtercard (as shown in this README)
  • Q: The plots do not appear in the "PYNQ & Data Converter" notebook

    • Check that you are using the Jupyter Lab interface. Try navigating to http://<IP address>/lab

License

BSD 3-Clause

pynq_rfsoc_workshop's People

Contributors

cramsay avatar lewismcl avatar schelleg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pynq_rfsoc_workshop's Issues

metal: error: PLL Lock timeout error in XRFdc_WaitForRestartClr

Hi, as I was runing the 02_pynq_and_data_converter.ipynb. I got some error. Can you please help me? Thank you very much.

Details are :

metal: error:
PLL Lock timeout error in XRFdc_WaitForRestartClr


RuntimeError Traceback (most recent call last)
in
----> 1 ol = QpskOverlay(init_rf_clks=False)

/usr/local/lib/python3.6/dist-packages/rfsoc_qpsk/qpsk_overlay.py in init(self, bitfile_name, init_rf_clks, dark_theme, presentation_mode, **kwargs)
115
116 # Set sane DAC defaults
--> 117 self.dac_tile.DynamicPLLConfig(1, 409.6, 1228.8)
118 self.dac_block.NyquistZone = 2
119 self.dac_block.MixerSettings = {

/usr/local/lib/python3.6/dist-packages/xrfdc/init.py in DynamicPLLConfig(self, source, ref_clk_freq, samp_rate)
222
223 def DynamicPLLConfig(self, source, ref_clk_freq, samp_rate):
--> 224 self._call_function("DynamicPLLConfig", source, ref_clk_freq, samp_rate)
225
226

/usr/local/lib/python3.6/dist-packages/xrfdc/init.py in _call_function(self, name, *args)
201
202 def _call_function(self, name, *args):
--> 203 return self._parent._call_function(name, self._type, self._index, *args)
204
205 def _call_function_implicit(self, name, *args):

/usr/local/lib/python3.6/dist-packages/xrfdc/init.py in _call_function(self, name, *args)
260
261 def _call_function(self, name, *args):
--> 262 safe_wrapper(f"XRFdc{name}", self._instance, *args)
263
264

/usr/local/lib/python3.6/dist-packages/xrfdc/init.py in _safe_wrapper(name, *args, **kwargs)
59 raise RuntimeError(f"Function {name} not in library")
60 if getattr(_lib, name)(*args, **kwargs):
---> 61 raise RuntimeError(f"Function {name} call failed")
62
63

RuntimeError: Function XRFdc_DynamicPLLConfig call failed

the Jupyter 9090 port login requires password

I load the PYNQ 2.7 image downloaded from the official website on my ZCU111 board, and I connect the board to a network switch. I can use another computer to access the PYNQ Jupyter notebook environment, but the 9090 port needs a password. I do not find an available password to login. Any clues?

Missing Image

The image showing the ADC/DAC connections (README.md step 4) needed to complete the tutorial will not display.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.