How to find methods associated with overlays?

PYNQ 3.0
RFSoC 4x2 board

Hi everyone. I’m an undergraduate researcher that’s trying to get a handle on the RFSoC 4x2 board. I’m fully in over my head, and these last few weeks of experimenting with this board represent the entirety of my DSP and Python experience. I’m finally to the point of getting my head around the system, I still consider my knowledge and skills to be very surface-level.

I’ve been revisiting some PYNQ notebooks now that I’m ready for a little experimentation, but I’ve run into a problem around understanding exactly what my base overlay for the RFSoC 4x2 is capable of. Take this method in the following block, for example:

from pynq.overlays.base import BaseOverlay
base = BaseOverlay('base.bit')
base.init_rf_clks()

or these lines that are setting values

base.radio.transmitter.channel[0].control.enable = enable
base.radio.transmitter.channel[0].control.gain = gain
base.radio.transmitter.channel[0].dac_block.MixerSettings['Freq'] = frequency

or this import statement

from rfsystem.spectrum_sweep import ToneGenerator

Everything I’ve learned about this board and PYNQ so far have come from tutorials and notebook examples, so the only reason I know that the the init_rf_clks() method exists is because it was given to me. The same could be said for the entirety of the 2nd block of code above. I only know about setting those parameters because I was shown. The line from rfsystem.spectrum_sweep import ToneGenerator imports a library that looks like it would be very useful for testing purposes, but I’m unsure if this is associated with the base overlay or is just some outside library that the notebook is taking advantage of.

How would I have found out about the existence and functionality of these methods and settings on my own? Is there some library or documentation that I can study that will list and explain the capablities of the base overlay?

Thank you in advance to anyone that can offer advice.

Hi,
Have you check this page?
(RFSoC 4x2 Base overlay | RFSoC-PYNQ)

Here is also a github about the hierarchies and python classes in the Processing System (PS) of the board:
(RFSoC-PYNQ/boards/RFSoC4x2/packages/rfsystem/package/rfsystem at master · Xilinx/RFSoC-PYNQ · GitHub)

1 Like

Thanks for the reply. I’ll be sure to check those resources more when dealing with new blocks…