Netman: Verilog Netlist Manager/Viewer

 

Netlist manager/viewer tool allows designers to explore Verilog Netlist, created as a result of the Synopsys DC Complier synthesis. The main features of NETMAN are:

·         Module extraction capability and module hierarchy viewer

·         Quick and convenient access to selected module netlist code

·         Graphical netlist connectivity viewer for region-of-interest exploration

 

The tool can be very useful both for ASIC design and for reverse engineering purposes, as well as for DFT. Using Netman, designers can search for the needed element, such as a port, gate or net, bring it into netlist viewer and then, beginning with this element, explore the region’s connectivity.

 

Download Netman open source package:  netman.tar.gz

 

Netman GUI Interface contains two tabs: Hierarchical Viewer and Netlist Viewer:

 

      

 

 

The main source file for the tool is verilog netlist which can be created from the Design Compiler using the “write –f verilog -hier –o <verilog_file_name> command.

 

Working with Hierarchical Viewer

 

First, module hierarchy information must be extracted from the netlist file using “Extract Hierarchy” dialog window from the command panel. This command will produce hidden .hierarchy file in the same directory, where netlist file resides. Then, produced .hierarchy file must be loaded using “Load Hierarchy” dialog window and design hierarchy will appear inside “Modules Tree” widget:

 

 

Double Clicking on the module’s tree node will make corresponding module “active” for viewing and load it’s netlist into textual netlist viewer window. In order to edit module’s netlist, specify your favorite editor name using “Set Editor” dialog window from the command panel. Then, double clicking on the node will load corresponding module verilog netlist into your favorite editor.

 

Verilog Netlist viewer has built-in smart searching capabilities. There are two “combo” boxes on the right side of the “Search” entry. The left one with default string “Select” has the following entries:

 

*     inputs – loads into the right combo box all module inputs names

*     outputs – loads into the right combo box all module outputs names

*     wires - loads into the right combo box all module wires (nets) names

*     cells - loads into the right combo box all module cell instance names

*     types - loads into the right combo box all module cell instance types names

 

The following pictures show an example of searching for module inputs. Selected input will appear inside “Search” string, and pushing “Search” button corresponding input will be found in the Textual Viewer window:

 

 

 

Working with Netlist Viewer

Netlist viewer allows netlist exploration in the graphical form. In order to use Netlist Viewer window, the verilog library file (or files) must be specified. This file is needed in order to define for the tool pin types (input/output/bi-directional) of each library cell. Use “Netlist -> Library Files” dialog window in order to specify all library files that contains the cells, used in current design. Each library file full path name must be specified on the separate line. Library files information then will be saved in “.netman_defaults” file in the same directory, where netlist file reside. So, library files can be defined only once, and opening design with “Netman” once more they will appear inside “Library Files” window and will be loaded automatically.

 

“Netlist Viewer” tab contains Netlist Viewer widget and entry/combo widgets on the bottom.

The “Command” entry allows designer to use tcl language with additional functions in order to get information about design and manipulate with graphical representations.

Using other entries (Search, Pattern, Results), designer can find the first element of interest and then view it in the graphical form:

 

*     First, define which “ class” of element you are looking for selecting it in “Search” combo box. Specified element classes are: gates, types, inputs, outputs, nets.

*     Second, specify the matching pattern in the “Pattern” entry. Leaving this entry empty selects all elements of current “class”.

*     All selected elements will appear in “Results” combo widget. When the element in “Results” combo is selected, it appears in the graphical form inside the Netlist Viewer.

 

The concept of “Netman” netlist viewer is different from the one used in Synopsys DC Analyzer. Here, netlist viewing window is empty in the very beginning. Then, only selected element, chosen by search window, appears on the screen. Clicking on the element’s pin brings to graphical window all the elements (nets/gates/ports), connected directly to this pin. Using this approach, only the “region of interest” connectivity can be displayed.

All design elements, except from nets, are movable and can be easily adjusted on the screen for better viewing and connectivity understanding. Move them using right mouse button staying on selected element. In order to delete unneeded elements from viewing, simply point to these elements while pushing the “Del” key.

All element information, except from a cell instance name, is shown in the viewer. The instance name of the cell appears on the right bottom corner of the tool when mouse pointer is on the top of this cell.

 

The following pictures illustrate the process of selecting/viewing of the netlist with Netman tool:

 

Choosing element’s “class”:

 

 

 

Viewing search results and selecting the first design element:

  

Exploring netlist connectivity:

 

 

Printing netlist connectivity: