GOF ECO · Multi-stage netlist ECO

Stop re-running full ECO on every netlist stage.

A functional ECO shouldn't be solved three times. GOF runs the automatic ECO once on the pre-layout netlist, then reapplies the generated script to the DFT and post-layout netlists in minutes — with built-in LEC verifying every stage. The same patch that used to consume hours per stage now ships in a single, fast pass.

Try GOF free See the benchmark numbers

The same ECO, three times over

A functional change must land on three netlists before tape-out: the synthesis (pre-layout) netlist, the DFT netlist, and the post-layout netlist. With a traditional flow, each stage is solved from scratch — a full automatic ECO analysis run against a re-synthesized reference, every time. On a large design that is hours per stage, repeated three times, and the schedule slips with every iteration.

Parallel processing to reduce run time

Parallel processing is not new: since V6.0, GOF splits the design into logic-cone and hierarchical-module packets and processes them simultaneously. Experiments show run speed improves by up to 5× on an 8-core server; . On the multi-million-gate SOCs where ECO runtime actually hurts, the single-script staged reuse below is what turns hours into minutes.

From hours to minutes: the ROI

Same functional change, same multi-million-gate design — five ways to ship it. The times below are drawn from the published 2-million-gate benchmark and the documented RTL-guided ECO flow.

ApproachTime on a multi-million-gate ECOWhat you re-run at each netlist stage
Manual schematic ECO~8 hoursHand-traced logic cones, repeated for pre-layout, DFT, and post-layout
Automatic ECO with full re-synthesis (incumbent)~2 days (24h+ re-synthesis, then ECO)A full re-synthesis at every stage — the slowest part, three times over
GOF staged script reuseOne auto-ECO, then minutes to reapply to DFT + post-layoutOnly the generated ECO script is replayed — no re-analysis
GOF RTL-guided ECO (no re-synthesis)~20 minutes (2M-gate case: under 30 minutes)Nothing — re-synthesis is bypassed entirely
GOF AI (natural language)Describe the ECO in English; the agent fixes the netlist and runs LECOne instruction orchestrates the full GOF workflow

Three levers GOF uses to collapse hours into minutes


Fast apply ECO to DFT and postlayout netlist

The netlist ECO process in IC design involves navigating modifications across various design stages, each with unique characteristics. Typically, these stages include the Synthesis Netlist (or Pre-layout Netlist), the DFT Netlist, and the Post-layout Netlist. Each stage presents distinct requirements and challenges that necessitate a tailored approach to ECO implementation.

For smaller designs, a full re-synthesis can be applied to all three netlist stages. However, the time-intensive nature of a complete automatic ECO run across large designs necessitates a more efficient strategy. GOF ECO addresses this by focusing its automatic ECO capabilities on the initial Synthesis (Pre-layout) Netlist stage.

The workflow involves the following key steps:
Automatic ECO on Pre-layout Netlist: GOF ECO performs an automatic ECO and generates an output script based on the differences identified in the Synthesis Netlist and Pre-layout Netlist.

GOF ECO Output Script Generation: Once the Pre-layout Netlist is fixed, GOF ECO produces a script detailing the necessary modifications.

Write out ECO Perl script from pre-layout ECO:

# GOF ECO script, run_example.pl
use strict;
set_log_file("eco_pre_layout.log");
setup_eco("eco_pre_layout");# Setup ECO name
read_library("tsmc.5nm.lib");# Read in standard library
read_design("-ref", "reference.gv");# Read in Reference Netlist
read_design("-imp", "pre_layout.gv");# Read in Implementation Netlist Which is under ECO
set_top("topmod");# Set the top module
# No need to specify DFT constraint if no DFT logic is in the pre_layout netlist
fix_design();
report_eco(); # ECO report
check_design("-eco");# Check if the ECO causes any issue, like floating
write_verilog("eco_prelayout.v");# Write out ECO result in Verilog
write_perl("eco_prelayout.pl");# Write out ECO result in Verilog
gexit; # Exit when the ECO is done, comment it out to go to interactive mode when 'GOF >' appears

Applying the ECO script to the DFT and post-layout netlist:

use strict;
set_log_file("apply_script.log");
setup_eco("apply_script_pre2post");# Setup ECO name
read_library("art.5nm.lib");# Read in standard library
read_design("-imp", "postlayout.gv");# Read in Implementation Netlist Which is from backend
set_top("topmod");
run("eco_prelayout.pl"); # Apply the Perl script dumped in the previous pre-layout ECO
write_verilog("postlayout_eco.gv");
gexit;

Script Application to Downstream Netlists: This generated GOF ECO output script is then directly applied to the subsequent DFT Netlist and Post-layout Netlist.

The advantages of this approach are significant:

Enhanced Speed: Executing the GOF ECO output script is considerably faster than running a full automatic ECO analysis on each individual netlist stage. This drastically reduces the overall ECO turnaround time.

Simplified DFT Handling: By applying the script, there is often no need to explicitly specify DFT constraints during the fix of the DFT and Post-layout Netlists. The functional changes intended by the ECO are propagated without requiring re-analysis of DFT-specific logic.

Figure 1: Efficient ECO Flow: Applying GOF ECO Output Script to Subsequent Netlist Stages

Addressing Back-end Optimization:

Occasionally, back-end tools perform significant optimizations on the original instances present in the Pre-layout Netlist. This can lead to discrepancies in instance naming and structure that might hinder the direct application of the GOF ECO output script. To overcome this, GOF Debug's schematic viewing capabilities provide a crucial advantage. Engineers can easily visualize the Pre-layout and Post-layout schematics, pinpoint the renamed or optimized instances, and make necessary adjustments to the GOF ECO output script to ensure accurate application.

Managing Isolation Cells in Post-Layout:

A critical consideration in Post-layout Netlists is the presence of isolation cells, which are typically inserted for power management and are absent in the Pre-layout Netlist. Consequently, the standard GOF ECO output script will not include these isolation cells. Directly applying the script might inadvertently bypass the intended behavior of these cells.

To address this, the latest GOF release introduces the set_check_isolation feature. When enabled, this intelligent functionality within GOF ECO analyzes the wires involved in the ECO script and determines if adjustments are needed to maintain the integrity of the isolation cells in the Post-layout Netlist. This ensures that the ECO modifications are applied while preserving the essential power management structures.

In conclusion, GOF ECO offers a streamlined and efficient approach to the IC ECO process by strategically applying automatically generated scripts to downstream netlist stages. Coupled with the debugging capabilities of GOF Debug and the intelligent isolation cell handling of the latest GOF release, this methodology significantly accelerates ECO execution, simplifies DFT considerations, and ensures the accurate implementation of design changes across the entire IC design flow.


RTL Guided ECO Without Re-Synthesis

RTL-guided ECO without re-synthesis eliminates the need for a full synthesis run, which is typically the most time-consuming step in the ECO flow. In many cases, RTL changes introduced during an ECO are incremental and do not justify re-running synthesis from scratch. GOF addresses this challenge by enabling ECO changes to be applied directly to the implementation netlist, bypassing re-synthesis entirely. As a result, ECOs on multi-million-gate netlists can be completed in as little as 20 minutes, compared to several days with a traditional re-synthesis-based approach.

In this flow, only the original RTL, the modified RTL, and the implementation netlist are required. GOF analyzes the differences between the reference RTL and the modified RTL, automatically generates the corresponding ECO operations, and applies them to the implementation netlist. This approach significantly reduces ECO turnaround time and engineering effort, resulting in a faster and more efficient ECO implementation.

Figure 2: RTL Guided ECO Without Re-Synthesis

This method is particularly well suited for small to medium-sized ECOs, where design changes are localized and do not impact the overall structure of the design. By leveraging GOF’s robust RTL comparison, netlist analysis, and ECO generation capabilities, designers can rapidly implement functional changes without the overhead of a full synthesis flow.

Best practice is to apply the ECO to the pre-layout netlist first. The resulting ECO script can then be reused to update the DFT netlist and the post-layout netlist. This staged approach helps avoid boundary optimization and logic restructuring issues that often arise when ECOs are applied directly to post-layout netlists.

RTL Guided ECO without re-synthesis example script:

# GOF ECO script, rtl_eco_wo_syn.pl
use strict;
set_log_file("rtl_guided_wo_syn.log");
setup_eco("rtl_eco_wo_syn_example");# Setup ECO name
read_library("art.5nm.lib");# Read in standard library
set_define("SYNTHESIS");
set_define("NO_SIM");
set_inc_dirs("/project/nd900/vlib/include", "/project/nd900/IPS/include");
read_rtl('-ref', "ref0.sv", "ref1.sv", "ref2.sv");
read_rtl('-imp', "imp0.sv", "imp1.sv", "imp2.sv");
set_top("topmod");
rtl_compare();

read_svf("-imp", "syn.svf.txt");  # Optional, must be loaded before read_design, must be in text format
read_design("-imp", "prelayout.gv");# Read in Implementation Netlist Which is under ECO
set_top("topmod");# Set the top module
# Preserve DFT Test Logic
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);
fix_design();
report_eco(); # ECO report
check_design();# Check design for issues such like floating
write_perl("eco_wo_syn.pl");# Write out ECO result to Perl script
write_verilog("eco_verilog.gv");# Write out ECO result in Verilog
exit; # Exit when the ECO is done, comment it out to go to interactive mode when 'GOF >' appears

After generating the ECO Perl script, it can be applied to the DFT and post-layout netlists.

Applying the ECO script to the post-layout netlist:

use strict;
set_log_file("apply_script.log");
setup_eco("apply_script_pre2post");# Setup ECO name
read_library("art.5nm.lib");# Read in standard library
read_design("-imp", "postlayout.gv");# Read in Implementation Netlist Which is from backend
set_top("topmod");
run("eco_wo_syn.pl");
write_verilog("postlayout_eco.gv");
exit;

In many scenarios, it is unnecessary to provide the full RTL for comparison. If the ECO impacts only a specific sub-module, GOF can limit the RTL comparison to that module. Designers can specify the hierarchical instances to be updated using set_path_prefix.

For example, if the RTL modification affects SUB_MOD_A, and the change needs to be applied to two instances 'u_sub_mod1/u_sub_mod_a' and 'u_sub_mod3/u_sub_mod_a_1' only the sub-module RTL files are required. GOF applies the ECO selectively to the specified hierarchical paths.

Figure 3: RTL Compare on Sub-module

RTL guided ECO with sub-module only:

# GOF ECO script, rtl_eco_wo_syn.pl
use strict;
set_log_file("rtl_on_sub.log");
setup_eco("rtl_on_sub_mod");# Setup ECO name
read_library("art.5nm.lib");# Read in standard library
set_path_prefix("u_sub_mod1/u_sub_mod_a", " u_sub_mod3/u_sub_mod_a_1");
read_rtl('-ref', "SUB_MOD_A.modified.v");
read_rtl('-imp', "SUB_MOD_A.v");
set_top("SUB_MOD_A");
rtl_compare();

read_svf("-imp", "syn.svf.txt");  # Optional, must be loaded before read_design, must be in text format
read_design("-imp", "prelayout.gv");# Read in Implementation Netlist Which is under ECO
set_top("SOC_TOP");# Set the top module
# Preserve DFT Test Logic
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);
fix_design();
report_eco(); # ECO report
check_design();# Check design for issues such like floating
write_perl("eco_wo_syn.pl");# Write out ECO result to Perl script
write_verilog("eco_verilog.gv");# Write out ECO result in Verilog
exit; # Exit when the ECO is done, comment it out to go to interactive mode when 'GOF >' appears

Summary

RTL-guided ECO without re-synthesis is an efficient and scalable approach for implementing functional ECOs with minimal turnaround time. By directly comparing original and modified RTL and applying the resulting changes to the implementation netlist, GOF enables fast, controlled, and repeatable ECO execution. The ability to scope ECOs down to specific sub-modules further enhances productivity, making this flow especially effective for localized design updates late in the design cycle.


Lever 3: AI fixes the netlist directly

RTL-guided ECO is also what lets an LLM fix the netlist directly. Because GOF can compare RTL and apply the change without re-synthesis, an AI agent can take a plain-English ECO instruction, drive the GOF engines, and produce a verified patch in one pass. In the published case, the AI-generated patch was ~30% smaller than the output of standard automated ECO — AI reasoning matched the finesse of an experienced engineer doing a manual “surgical” fix.

When the post-layout netlist has been optimized and instances are renamed, the same AI reads both the pre-layout and post-layout netlists and maps the original instance and net names to their new names, so the staged ECO script keeps applying cleanly.


Stop re-running full ECO on every netlist stage. Download GOF free (netlists under 500K need no license), run the shipped examples/auto_eco benchmark yourself, or request an evaluation for your design.

Follow us:
© 2026 NanDigits Design Automation. All rights reserved.