The design flow involving retrofit is described in the following figure.
Two runs are involved, which are the “original run,” where
phys_opt_design is run after
the “replay run,” where
phys_opt_design netlist changes are
performed before placement.
After the original run, the
phys_opt_design optimizations are saved
to a Tcl script file using the Tcl command
script contains a series of
iphys_opt_design Tcl commands to
recreate exactly the design changes performed by
the original run. You can save the optimizations from the current design in memory
or after opening an implemented design or checkpoint where
phys_opt_design has performed optimization.
The same design and constraints are used for the replay run. Before
place_design runs, the
command processes the
iphys_opt_design command script and applies
the netlist changes from the original run. As a result of the netlist changes, the
design in the replay run might be more suitable for placement than the original run.
The design now incorporates the benefits of the
optimizations before placement, such as fewer high-fanout nets after replication and
fewer long distance paths from block RAM outputs.
Similar to the
phys_opt_design command, the
read_iphys_opt_tcl command has options to limit the replayed
design steps to certain types, such as fanout optimization, block RAM register
optimization, and rewiring.