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:
Reference Design
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.
Incremental Design
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 synth_design
or opt_design
tool
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.