ECO retargeting is to run ECO on the block level netlist and dump the ECO script. The ECO script is retargeted to the post-layout netlist by applying changes on the block in the large netlist. The ECO script is in Perl syntax written out by 'write_perl' command.
Figure 1: ECO Retargeting in Functional Netlist ECO
As shown in Figure 1, B0 is the block level reference netlist which is synthesized after RTL change; B1 is the block level pre-layout netlist which doesn't have boundary optimized done by the back-end tool; B2 is the block inside the large post-layout netlist. B1 and B2 are equivalent, but they maybe different in structure due to the optimization done by the back-end tool.
Synthesizing the full design to get the large complete new netlist would take long time, the block level B0 is much easier to be generated through synthesis. Doing ECO between B0 and B1 is much faster than between the two full netlists.
The first round ECO is run on block level to generate block level ECO script:
The second round ECO is to apply block level ECO script to the large top level post-layout netlist:
One disadvantage is some instances appeared in the ECO script 'mpu_block.gpl' may have been optimized away by back-end tool. In this rare case, the ECO script should be manually adjusted and apply it to the netlist again.
To debug and search for the right instance or net in the netlist, GOF Incremental Schematic feature can be used. Refer to Incremental Schematic for more detail.
Check GOF Manual for more detail