RapidWright Placer #1328
Replies: 1 comment 2 replies
-
|
Hi Coherent, We actually have several solutions that address similar scenarios as to what you are describing. In designs that have challenging implementation and also multiple instances of the same cell, we can use a "copy and paste" approach. In this techniques we leverage Vivado to place and route a challenging cell in a pblock in an out-of-context run. In a smaller context, Vivado can spend more effort trying to refine the implementation and has a greater chance of discovering a good implementation. Often we will run multiple Vivado builds in parallel to explore the search space. Once a good implementation is found, we can then apply that solution to multiple instances of that cell like a stencil, replicating the placed and routed solution to multiple cell instances. I wrote up a tutorial on how to choose pblocks and prepare cells for this process here: https://www.rapidwright.io/docs/PreImplemented_Modules_Part_I.html and https://www.rapidwright.io/docs/PreImplemented_Modules_Part_II.html. RapidWright has the concept of adding a level of hierarchy to the physical netlist called a
If the design does not have replicated logic, we have run some experiments with using Vivado to create a "shell" or "overlay" of sorts. Often what happens is that there is infrastructure logic that doesn't change as often and can be locked down. Another part of the design can change frequently and the idea is that you could use the shell or overlay logic as a starting point and place and route the frequently changing logic around it. I wrote up a tutorial on this approach here https://www.rapidwright.io/docs/ReusingTimingClosedLogicAsAShell.html. Unfortunately, in our experiments, some conditions may prevent it from working, but if this is an attractive route, we can explore it with you. Let us know if one of these options matches what your current design needs are and we can help you get started. Chris |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi RapidWright experts,
We’re currently struggling with Vivado placement on a partial netlist. The placer appears to be very aggressively wirelength‑driven (assume we can’t change the placer options). As a result, the router often fails or runs for more than 20 hours on Versal devices, especially when multiple pblock constraints overlap.
Given a partial netlist with high connectivity to the IOs, does RapidWright provide a way to pre‑place that portion of the design (fixing cell/BEL locations) and then hand the full design off to Vivado for full‑chip place and route?
More concretely, is the following workflow realistic?
Any guidance or experience you can share on this approach would be greatly appreciated. If there are example RapidWright placer flows, pointers would be very helpful. Alternatively, do you think this is better handled purely within Vivado using incremental placement?
Thanks,
Coherent
Beta Was this translation helpful? Give feedback.
All reactions