public class CombineDcps
extends Object
read_checkpoint -cell and link_design.
The checkpoints are read in parallel. Each black box is filled with
DesignTools.populateBlackBox(Design, Map, boolean), keeping the routing on its boundary,
which also adds each module's constraints to the design, scoped to its black box.
The caller is responsible for every checkpoint having each of its physical nets named after its
source, as populateBlackBox() requires. This is neither checked nor made so here, as doing so
costs time on every net while checkpoints written by Vivado have so far been found to satisfy it.
A physical net held under another name is missed, and its signal left split across two physical
nets. A checkpoint that does not satisfy it can be written again after
DesignTools.makePhysNetNamesConsistent(Design).
From the command line, the result is written in the 2024.1 DCP format
(Params.RW_WRITE_DCP_2024_1), which keeps everything Vivado needs to read such a design
back, including its DFX state.
A checkpoint with encrypted cells needs a readable EDIF, as for Design.readCheckpoint(Path):
either one with the same name next to it (foo.dcp -> foo.edf), or one generated with Vivado.
| Constructor and Description |
|---|
CombineDcps() |
| Modifier and Type | Method and Description |
|---|---|
static Design |
combine(Path staticDcp,
Map<String,Path> modules,
Path outputDcp)
Combines a design with implementations of its black boxes.
|
static void |
main(String[] args) |
public static Design combine(Path staticDcp, Map<String,Path> modules, Path outputDcp)
staticDcp - The design with the black boxes.modules - The checkpoint to fill each black box with, keyed by the hierarchical name of
the black box cell.outputDcp - Where to write the combined design, in the DCP format that
Params.RW_WRITE_DCP_2024_1 selects. That format should be the 2024.1
one, as CombineDcps.main(String[]) selects, for Vivado to read the design back
with its DFX state.public static void main(String[] args)