The incremental flow uses a variant from a previous run as well as the current design variant. In order to maintain clear understanding the following terminology is used:
The reference design is preferably a fully routed checkpoint from a recent iteration of the same design. To use a different variant of a design, it is important that the hierarchy names from the reference design match the incremental design. Whilst it is possible to use a placed checkpoint as a reference, there will be reduced benefits when compared to a routed checkpoint; timing will not be as consistent and compile time will be higher.
The reference design must match the device and it is recommended to match the tool version but not a strict requirement.
The incremental design is the updated design that is to be run through the
implementation tools. It can include RTL changes, netlist changes, or both but these
changes should be typically < 5%. Prior to issuing the
read_checkpoint -incremental command, there is no knowledge that the
incremental implementation flow is being used. Therefore it is important to not
introduce significant netlist changes by changing
options when compared with the reference design.
Constraint changes are allowed but general tightening of constraints will significantly impact placement and routing and is generally best added outside of the incremental flow.