Automatic Metal Only ECO


The use case shows how to automatically do a metal only ECO.

The setup is the same as the "Automatic Functional ECO", except the new added gates being mapped to spare gates.

Flow Chart

Users provide Implementation netlist which is under ECO, Reference netlist which is re-synthesized after RTL modification and modified RTL module names. A DEF file can be read in for physical information.

Internal Logic Equivalent Check engine analyzes the non-equivalent modules and figures out the minimum logic patches to fix the Implementation netlist. After functional ECO is done, spare gates list is extracted from Implementation netlist and the patches are mapped to spare type only gates.

Metal Only ECO Script 

# GofCall ECO script,
# Any new gates added will be mapped to spare gates
use strict;  
undo_eco;  # Discard previous ECO operations
# Setup ECO name, had better be unique to avoid naming confliction

read_library("art.90nm.lib"); # Read in standard library
read_svf("-ref", "reference.svf.txt");       # Optional, must be loaded before read_design, must be in text format
read_svf("-imp", "implementation.svf.txt");  # Optional, must be loaded before read_design, must be in text format

read_design("-ref", "reference.gv");  # Read in the Reference Netlist
read_design("-imp", "implementation.gv");  # Read in the implementation Netlist Which is under ECO

set_top("topmod"); # Set the top module that ECO has been done in the module and its sub-modules
# Fix the module 'topmod' and its sub-modules 
# Now we need to map all new added ECO gates to spare type instances 
read_def("topmod.def"); # Read Design Exchange Format file, optional. 
# Specify spare cell pattern, when 'map_spare_cells' is done,
# a new updated spare list file will be written out.
# The updated spare list file has default name 'spare_cells_script_name.list'.
# Click 'get_spare_cell' below for more usage detail
# Comment the above line and use the following line to use spare list file 
# if the spare list file has been generated already and gone through other ECOs 
# get_spare_cells("-file", "spare_list_file.txt"); 
# To use external Synthesis Tool 
# Use RTL Compiler by the following option 
# map_spare_cells("-syn", "rc"); 
# Use Design Compiler by the following option 
# map_spare_cells("-syn", "dc_shell"); 
report_eco(); # ECO report 
write_verilog("eco_verilog.v"); # Write out ECO result in Verilog 
write_soce("eco_soce.tcl"); # Write out TCL script for SOC Encounter  
exit; # Exit when the ECO is done, comment it out to go to interactive mode when 'GOF >' appears


Run the Script

The above script can be run by '-run' option in GOF command line:

gof -run

Follow us: US | China
© 2023 NanDigits Design Automation. All rights reserved.