Netlist ECO Flows
Gates On the Fly provides multiple ECO flows for different netlist ECO scenarios.
Automatic ECO is done by "fix_design" command in GofCall scripts. GOF supports both global mode and incremental mode Automatic ECO. GofCall script is compatible with Perl and it uses exported APIs to access the netlist database. In full layers ECO, gates can be added or deleted freely.
The global mode Automatic ECO runs a top down Logic Equivalence Check on the design. Non-equivalent modules are found and isolated. The global mode can guarantee the logic equivalence of the ECO result comparing to the reference netlist.
In the incremental Automatic ECO flow, the modified module names are directly specified in "fix_modules" argument list. Compared with fix_design global mode ECO, it runs faster and it is good for fast ECO size estimation.
GOF uses the dedicated built-in Logic Equivalence Check Engine to figure out the minimum number of patch gates to fix the non-equivalent modules.For each non-equivalent module isolated, GOF extracts all non-equivalent points. For each non-equivalent point, GOF analyzes the two logic cones from the implementation and reference netlist. The built-in Logic Equivalence Check Engine collects all related logic in implementation logic cone and combines with new patch logic to fix the failing logic cone. After the patching, the two points become equivalent. When all modules are fixed, the implementation and reference netlists are equivalent.
Compared to other ECO tools in the market, GOF can produce smaller logic patches. It can avoid redundant fixes in good modules. For example, Conformal ECO has defect in fixing complicated combinational logic. In some ECOs, Conformal ECO needs more than 30s or 40s gates, while GOF uses only gate number in single digit.
If ECO involves new flops, GOF has an API to stitch the scan chain automatically. Further more, by combining the GUI ECO mode and script ECO mode which will be covered in the following paragraph, into automatic ECO flow, GOF can achieve optimal ECO result. A mixed mode use case can be found here.
The use case "Automatic Full Layers ECO" shows how to fix a modified module automatically.
Metal Only ECO can be done automatically as well. The implementation netlist should have spare gates instantiated. A spare gate pattern is set in GofCall ECO script, GOF uses internal synthesis engine or external synthesis tool to re-synthesize patch circuit to have spare gates type only. In the end, GOF maps all spare gates to the exact spare instances.
The use case "Automatic Metal Only ECO" shows how to do automatic metal only ECO.
In many cases, the ECO operations are well known by users. They can be inserting buffers to a 128bits bus, or adding isolation AND gates to all outputs of a module. In these cases, manually ECO is more efficient and resource saving.
Manually ECO can be done in Script mode or GUI mode. GOF exports many APIs for ECO operations in GofCall script.
Key factors for successful manual ECO are fast locating the ECO spots and implementing the changes efficiently. GOF APIs serves these two key factors seamlessly. The netlist browsing APIs find instances, ports, pins or nets in a quick and global way. For example, 'get_cells' API can get flops hierarchically by a type option, 'get_pins' API can get input/output pins of the specified instance. The netlist modification APIs modify instances, ports, pins and nets right away. For example, 'change_pin' API inserts any type of gate into the specified pin and reconnects up the original connection.
The detail flow is described in the manual, Script Mode Full Layers ECO.
In Manual Metal Only ECO, any new added gates will be mapped to spare gate instances by 'map_spare_cells' command. A Design Exchange Format file should be loaded for the tool to find optimal spare instances. If the file is not present, the new added gates will be mapped to spare type gates only.
The use case "Script Mode Metal Only ECO" shows how to do manual metal only ECO in script mode.
GUI mode is good for debugging and fix small netlist changes. In full layers modification, user can add or delete any gates.
The basic flow to do GUI mode ECO can be found in here
The use case "Insert buffers and inverters in GUI mode" illustrates how to add buffers and inverters in full layers ECO in GUI mode.
In this mode, user picks which spare gate from Layout Viewer window and implements ECO on a schematic. A DEF file is loaded for accurate instance locations.
The use case "Metal Only ECO in GUI mode" is an use case to do Metal Only ECO in GUI mode.