add global nets routing to module checkpoints #434
-
Hello, I'm currently facing an issue when exporting individual checkpoint files for each module of my design: Is there anyway to force the clock nets (and more generally any net that cross the module boundaries) to be included in the checkpoint files ? Thank you in advance! GBrick |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Hi GBrick, When you describe "exporting individual checkpoint files", do you mean running You can try to restore the clock routing (either fully or in part) by copying it from the original DCP where the clock is routed and pasting it into the module-based DCP. You can do this either in RapidWright or Vivado. In RapidWright, you'd need to load both DCPs and then get the Design srcDesign = Design.readCheckpoint(...);
Design dstDesign = Design.readCheckpoint(...);
...
dstDesign.getNet(destNetName).setPIPs(srcDesign.getNet(srcNetName).getPIPs()); In Vivado, a similar operation could be performed using: set pips [get_pips -of $your_src_net]
set_property FIXED_ROUTE $pips $your_dest_net |
Beta Was this translation helpful? Give feedback.
-
Thank you for your answer. Indeed, the issue was occurring when running the I couldn't solve the problem with the second solution (directly from Vivado) as multiple errors were reported indicating the absence of some PIPs when copying them to the destination net (I couldn't figure out why these errors were reported). However, by using the first solution with RapidWright, all the PIPs from the source net have been properly copied to the destination node. By writing back a checkpoint file with the corrected design, I was able to confirm the effectiveness of the solution from Vivado GUI. Thank you very much for your precious help! GBrick |
Beta Was this translation helpful? Give feedback.
Hi GBrick,
When you describe "exporting individual checkpoint files", do you mean running
write_checkpoint -cell
in Vivado? What you describe seems to be the behavior of that Tcl proc. I don't think there is a way in Vivado to preserve the cross-boundary nets.You can try to restore the clock routing (either fully or in part) by copying it from the original DCP where the clock is routed and pasting it into the module-based DCP. You can do this either in RapidWright or Vivado. In RapidWright, you'd need to load both DCPs and then get the
Net
object with the routing you want to copy as well as the destinationNet
and copy thePIP
objects over. For example: