One script line to add 3 gates, one port, 4 new wires, 13 connections, 1 disconnection!
A flop's D input should be changed to NAND of three signals, one of the three is the original D input wire.
The ECO operations are done in line 4
To run the script, you can use GofCall Graphical mode. In GofViewer, Menu Actions->"GofCall, APIs interactive" to get GofCall window. Press "Advance" button to run in code snip. Or save to a file, key in "run the_script_file" in "GOF > " shell entry to run in batch mode.
Key in "sch eco012345_inst0" in "GOF > " shell entry to launch schematic to verify the ECO on the fly.
After ECO, three new gates, "eco012345_inst0", "eco012345_inst1" and "eco012345_inst2" are created. One port is added to connect "con_bit" from sub-instance "gte_344". Four new wires are created "eco012345_wire0", "eco012345_wire1", "eco012345_wire2" and "con_bit". 13 pin connections are added. And D input of "frplx_reg" is disconnected and reconnected. If converted to Design Compiler TCL script format, there are more than 20 lines!
current_design gte
create_port -direction out con_bit
connect_net [get_nets con_bit] [get_ports con_bit]
current_design TM_qciflt
create_net eco012345_wire0
create_net eco012345_wire1
create_net con_bit
create_net eco012345_wire2
create_cell eco012345_inst0 tmc65nm/NAND3X4
connect_net [get_nets n3150] [get_pins eco012345_inst0/A]
connect_net [get_nets eco012345_wire1] [get_pins eco012345_inst0/B]
connect_net [get_nets eco012345_wire2] [get_pins eco012345_inst0/C]
connect_net [get_nets eco012345_wire0] [get_pins eco012345_inst0/Y]
create_cell eco012345_inst1 tmc65nm/MXI2X2
connect_net [get_nets qciflsb3b_e] [get_pins eco012345_inst1/A]
connect_net [get_nets con_bit] [get_pins eco012345_inst1/B]
connect_net [get_nets e_bonn] [get_pins eco012345_inst1/S0]
connect_net [get_nets eco012345_wire1] [get_pins eco012345_inst1/Y]
create_cell eco012345_inst2 tmc65nm/BUFX6
connect_net [get_nets qcif_s0_good] [get_pins eco012345_inst2/A]
connect_net [get_nets eco012345_wire2] [get_pins eco012345_inst2/Y]
disconnect_net [get_nets n3150] [get_pins frplx_reg/D]
connect_net [get_nets eco012345_wire0] [get_pins frplx_reg/D]
connect_net [get_nets con_bit] [get_pins gte_344/con_bit]
The nested long line can be separated into three small operations, but more manual intervenes are needed to specify the new net names or instance names.
Check GofCall Use Cases, or GofCall Overview for more information.