PYNQ: PYTHON PRODUCTIVITY

Triggering Partial Reconfiguration with Jupyter Notebook

Hi,

I’m attempting to complete partial reconfiguration using Jupyter notebooks. When I read the documentation, it says to

  1. users have to set the partial region for the overlay before they can reconfigure it
overlay.set_partial_region('block_0')
  1. After the partial region is set, users can use the download() method for partial bitstreams.
overlay.download('rm_0_partial.bit')

So I’ve attempted this with my own partial reconfiguration project:

Each toggle block has been marked as a reconfigurable partition of PR_LED_PE that has simple timers to change the brightness of the LED connected using PWM.

But when I try to set the partial region this is my error, seeming that the method doesn’t even exit.

After looking at the library, it doesn’t look like this method is notated anywhere.

So, how do I trigger partial reconfiguration in jupyter noteboooks if I have the partial bit stream files already figured out? I’ve tested my design by uploading partial bitstreams from Vivado and they work as intended.

Checking back to see if anyone has some insight. After looking around some more it seems Xilinx offers some DFX IPs which should aid in triggering scheduled reconfiguration for runtime, but I’m still interested in doing this via jupyter note books at the moment. Any ideas?

@rock

Sorry to bug. I’ve been trying to solve this issue and I’m pretty lost. Any suggestion on triggering PR via jupyter notebooks? The documentation seems to have some holes

Hi,

Have you tried with pr_download?

In your case

overlay.pr_download(<partial_region>,<partial_bistream>)

Mario

So I did try this method but I think I am unable to mark partial regions for Pynq as my PR regions are not in my block diagram. Currently these blocks are outside of the block diagram and connected with a top wrapper.


The block in red is what I would like to become PR. I think I’m actually supposed to have this block internal to the BD but I can’t seem to get this done and have not found solid information on how to do so. When I mark the region as PR, it says that Any suggestions?

I believe this is not supported, since pynq is expecting the PR regions to be part of the hierarchy in the IP Integrator.

See, this PR region in the IP integrator region is my issue. When I define a module as a reconfigurable partition, I am no longer able to drag it to the block design hierarchy. Am I supposed to make the module into an IP and there is some setting I can’t find within the IP editor?

The PR ip shown in this comment, how do I create this? I’m pretty sure if I could get this in the design then it would be exposed for pynq to be a partial region.

Hi,

Once you have a hierarchy in your block design, right click on it and select Create Partition Definition after that you can add reconfigurable modules to it.

For further questions about DFX (partial reconfiguration) I suggest Xilinx forums.

Mario

I suggest you watch these tutorials on Xilinx DFX, they may help: