Gates-On-The-Fly: Verilog Netlist Editor

Netlist Analyzer and ECO tool

Gates-on-the-Fly (GOF) graphically analyzes and edits large Verilog netlists that have been generated from a synthesis or layout tool. Netlists sometimes require changes to either meet timing closure specifications, fix functional logic bugs, or to repartition a design. Using GOF, you can easily find and view specific logic cones in your design on a schematic to visualize just the paths you need to see without unnecessary clutter. GOF also simplifies mapping from RTL level constructs to their gate-level equivalents, so that you can pinpoint the locations where changes need to be made. GOF's ECO mode supports both graphical and script-based editing features for tracking ECO changes. Metal-only ECO operations are also supported with an automatic spare gates flow.

GOF has four main parts: a netlist browser (GofViewer), a schematic viewer (GofTrace), a netlist editor (GofECO), and a scripting program for automating changes (GofCall). You can also debug a design using one of SynaptiCAD's Waveform Viewers to annotate GofTrace schematics with state information from a waveform file (either from a simulation debug session in progress or from a VCD file created during an earlier simulation of the design). Below is a typical design flow using GOF:

(1) Locate Sections of interest in the design in GofViewer

GofViewer displays a netlist as a hierarchical tree of module instances with an associated text window. This is the first window opened after launching GOF from the command line. From this window, the design can be quickly explored by double clicking on the tree and viewing the code. Use the right click context menus and/or double click on objects to quickly find related information such as the drivers and loads of a particular net. GOF is optimized to handle very large netlists, so it only loads the module that you are looking at.

(2) Investigate gates using GofTrace schematic windows

Once a netlist is loaded, you can view sections of the design as a schematic using a GofTrace schematic window. GofTrace allows you to quickly display only the portion of logic that you are interested in by focusing on tracing just the fan in/out of a particular path, unlike other schematic tools which force a fixed placement of the gates that makes it difficult to rearrange the gates to visualize just the area of interest.

Initially a schematic is drawn with straight wires between connections so that you can quickly view the circuit and get an idea of the gates and buffers that have been added by the synthesis tool. However, the nets can then be automatically routed using the Place & Route menus or manually routed with the Line Select Mode to produce quality documentation.

Using one of SynaptiCAD's waveform viewers, you can view waveforms from a simulation or a waveform file (e.g. a VCD file) and also show specific logic states annotated on GOF schematic Windows. The schematic and the waveform displays are linked so that you can quickly display just the waveforms that match the nets of your schematic. You can also right click in the waveform window to send logic states at a particular simulation time back to the schematic.

(3) Use GofECO to graphically edit the netlist gates and connections

GofECO is a graphical method of changing a netlist. You can add, delete or replace gates. You can also add or delete connections between gates and adjust the drive strength of buffers. The schematic background changes color to indicate that the diagram is in ECO mode, and all ECO changes are displayed in a different color than the schematic gates and connections.

(4) Use GofCall for automatic ECOs and Checking the Schematic

Using GofCall's programming API, complicated ECOs can be performed with only a few lines of scripting code. The API lets the user focus on the logic changes, without having to specify all the details like adding hierarchical ports or naming new nets. The GofCall API statements can be entered through an Interactive Command window or executed using a batch file.

change_pin("u_spares/s0/A", "gte_344/U101/Y"); 
change_pin("u_spares/s0/B", "gte_344/U143/Y"); 
change_pin("gte_344/gte_con_reg/D", "u_spares/s0/Y"); 

Above is an example of a three line script that borrows a gate from the spare gate list and makes the connections needed to logically connect up the gate using the change_pin API call. The first line connects up the A input of to the Y output of gte_344.U101, the second line connects up the B input of to the Y output of gte_344.U143, and the third line connects up the D input of gte_344.gte_con_reg to the Y output of u_spares.s0. GofCall will automatically take care of all the tedious aspects of naming nets and creating ports during the connection process.

GOF Features

  • Fully interactive and incremental schematic generator
  • Natural gate symbol display without requiring an additional symbol file
  • Graphical mode for perfoming netlist ECOs
  • Script based ECOs using a powerful API that does much more than other TCL based script
  • Netlist to RTL wire matching feature to help easily locate the point to perform an ECO
  • A programming interface to process netlists
  • GOF can display timing violations from Prime Time report files graphically on a schematic
  • Logic Cone ECO script that changes the entire logic cone that drives an input pin and replaces it with a new set of logic from a newly re-synthesized netlist
  • ECO edit session results can be saved in several formats
  • Lots of other built-in netlist operations, informational reports, and utilities

Evaluate and Purchase Gates-on-the-Fly