Partial reconfiguration support. #608
-
|
Hi everyone. As the title suggests, I am trying to do dynamic partial reconfiguration. Apparently this has already been done in FlexBex and ICESOC. I've read the config part of the fabric, and from what I understand, I need to send to the config subsystem all the frames from the columns I want to reconfigure. Is this the case? If so, then the challenge is to make sure that when nextpnr performs place and route, it constrains the design to different slots. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 7 replies
-
|
This is an example. You will need to use the latest main version of nextpnr, as the feature required was recently merged. In the example above, the "inner" is what you want to partially reconfigure, and the outer is your harness. The general flow is: first place and route the harness, which gives you a fasm file; then look at the fasm and use the This explains how partial reconfiguration is modelled in nextpnr. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
For this specific use case, you will actually want to set prohibit to all resources except your partial slots, which generates a "region". What I should have done is provide a |
Beta Was this translation helpful? Give feedback.
-
|
Ok great thank you. I found in the nextpnr docs (https://github.com/YosysHQ/nextpnr/blob/main/docs/netlist.md) that the router cannot constrain a net to a specific region :
Doesn't that prevent doing what I am trying to do ? |
Beta Was this translation helpful? Give feedback.
-
|
A message from Dirk:
|
Beta Was this translation helpful? Give feedback.

Something just came to mind that I did not think about when I implemented the command feature. The prohibit wire/pip command creates a dummy net that cannot be placed/routed. You should get an error on the dummy net not routed, but if you have the FASM output, it will still export the result. I will try to work on a fix ASAP.
The current clean error-free workaround is to remove those wires/pipes from
pips.txt, which will make them absent from the placement and route graph. You can check this out https://github.com/NeverInControl/FABulousPartialReconfigurationTool , and @NeverInControl will be able to give you better guidance.