Merging 3 independent DCPs from separate SLRs #946
-
Hi! I have 3 fully placed/routed/timing-closed DCP checkpoints, each one from a separate SLR with its own pinout unique to that SLR. I am trying to merge these into one DCP containing all 3. There is no communication between SLRs, each SLR is fully independent. After using 'DONT_TOUCH' attribute in Vivado to make sure the netlist names are unique across the checkpoints, I'm getting what seems like a good result when I use mergeDesigns on the 3 checkpoints. However, the timing (and pblock) constraints of the second and third checkpoints are getting removed in the merged checkpoint. So I need one additional step now which is to open the merged checkpoint in Vivado and reapply the constraints from the second and third original checkpoints. Not a big deal, but I just wanted to make sure I'm not missing something or doing something wrong. Thank you! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Yes, this sounds like the right strategy. Using
With these two APIs you should be able to read the constraints off the source DCPs and add them to the destination DCP. Sometimes, there are certain constraints that might have to be modified (that is why we don't wholesale copy them for everyone in Let us know if you run into issues. |
Beta Was this translation helpful? Give feedback.
Yes, this sounds like the right strategy. Using
MergeDesigns
will combine two or more DCPs together but it is not yet smart enough to combine all the constraints on its own. You can also use RapidWright to combine the constraints, but you'll have to write a bit of code to do it. EachDesign
object has a map internally of all the XDC constraints. There are actually different groups of constraints that get applied at different times (see ConstraintGroup). The two key APIs would be:Design.getXDCConstraints(ConstraintGroup cg)
Design.addXDCConstrint(ConstraintGroup cg, String... xdc)
With these two APIs you should be able to read the constraints off the source DCPs and add them to the dest…