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 place_design
and
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 write_iphys_opt_tcl
. The
script contains a series of iphys_opt_design
Tcl commands to
recreate exactly the design changes performed by phys_opt_design
in
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 read_iphys_opt_tcl
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 phys_opt_design
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.