GOF ECO is the functional netlist ECO tool in GOF platform. GOF ECO integrates leading technologies and methodologies to provide complete functional netlist ECO solutions.
The tool does Automatic ECO in both global mode and incremental mode. The global mode can have full picture of the design and the ECO result can be guaranteed to be equivalent.
Figure 1: ECO Solutions
GOF has implemented several automatic ECO methods.
The methods include:
Structure Method utilizes the similarity of the implementation and reference netlists. It keeps the existing logic in the implementation netlist as much as possible and only replaces those different sub-circuits. So it would improve the performance of this method if synthesis process uses the same constraint after RTL changes.
Reorder Method adjusts the end points in logic cone internal expression. The right order of end points would create the optimal fix and thus results in a minimum size ECO patch.
Cut Point Method tries to fix every potential signal in the implementation netlist and finds the best location to fix the non-equivalences with the minimum patch.
For instance, RTL change may add an AND gate into a combinational signal, after synthesis the combinational signal has name changed or the signal may have been optimized away. GOF can find the best point in the netlist to add the AND gate and achieve the optimal fix to match the RTL change.
GOF runs the three methods and evaluates performances and chooses the result with minimum patch size.
Figure 2: Automatic ECO Methodologies
Synopsys Design Compiler Topographical(DCT) or Design Compiler Graphical(DCG) optimizes netlist for floorplanning, routing and timing, but it brings difficulties in functional ECO. During synthesis, the hierarchical module boundaries are changed to add clone ports or invert the original ports phase and flops may be merged.
Conformal ECO makes wrong ports mapping in functional ECO. As shown in the Figure 2, Conformal ECO makes wrong mapping in the clone ports added by DCG/DCT and it produces 3X more gate counts than necessity in fixing the logic.
Figure 3: Boundary mapping affects ECO quality
The synthesis tool adds cloned ports, but they are not one to one mapping between the Reference Netlist and the Implementation Netlist. When the ECO tool forces to make these ports equal, it brings redundant gates to the ECO patch or it even makes the final logic not equivalent.
Figure 4: DCG/DCT Boundary optimized netlist
GOF maps the clone ports properly and only the exact non-equivalent point is fixed.
Figure 5: GOF result, only the red spot is fixed
Sometimes, it doesn't make sense to resynthesize multi-million gates design to have only one inverter added. It's not a good practice either to use text editor to change a Giga-byte size netlist. If a design is reasonably verified, those ECOs involving more than 20 gates should be less than 10%. For those 90% small size or replicated ECOs, global mode Automatic ECO is over-killed and inefficient. Gates On the Fly gives users flexibilities to choose GUI and Script mode for those small size or replicated ECOs.
With the help of GUI and Script, the manual work becomes much simpler and more accurate. Sometimes, manual ECO result always gives better results than Automatic ECO. More importantly, the turn around time is much shorter.
In GUI mode, Gates On the Fly has incremental schematic engine (GofTrace) and it fits well in isolating problematic logic. Once the logic under ECO is isolated on the schematic, ECO mode can be enabled and ECO operations can be done on the same schematic.
GOF can parse physical database files, Design Exchange Format (DEF) and Library Exchange Format (LEF). By loading physical database, GOF can view physical layout and connections by LayoutViewer window. The LayoutViewer window has full interactivity with the incremental schematic, GofTrace window. This unified platform serves Metal Only ECO very well. User can solve Metal Only ECO in one stop, instead of going back and forth between back-end and front-end.
The GUI ECO mode has sharp learning curve for beginners and non-frequent users. Click here for one GUI mode ECO use case.
The script mode has the same syntax as Perl which can easily integrate existing netlist processing scripts. The script mode is good for replicated works like inserting AND for all output pins. Also the script mode exports lots of netlist processing APIs, like check design, support end-point trace and logic cone extraction.
When combining netlist processing APIs and Perl's programming algorithm, powerful in-house tools can be created efficiently. Click here for one Script mode ECO use case.
Figure 6: Incremental Schematic
Figure 7: ECO on the same Schematic
ECOs can become very complicated in some scenarios. Using only automatic mode would give unacceptable result. To achieve optimal ECO patch, Automatic ECO and Manual ECO have to be used together.
For example, the ECO case in right hand side requires a new bus port (IN_B) to control half of the logic (LOGIC B) that is controlled by bus port A (IN_A) originally. LOGIC A and LOGIC B may have overlap. LOGIC C is required to be fixed as well and it has data path changes which has to be done by Automatic ECO.
When apply only Automatic ECO, Fix 1 (IN_A/IN_B/LOGIC-A/LOGIC-B) needs ~200 gates. Use GOF APIs to analyze logic paths from port IN_A to STATE_A_reg and STATE_B_reg, we can find that LOGIC A and LOGIC B have very few gated shared. Duplicating these shared gates, there would be clean cut of LOGIC A and LOGIC B to make them being driven by IN_A and IN_B separately. Click here for this mixed mode ECO use case.
Figure 8: Mixed Automatic and Manual ECO
Please read Use Cases for all use cases.
For other usages and flows, check Online Manual for more detail