SynView: Alternative Design Compiler/Primetime GUI

 

Contents

 

*     Basic features of SynView

*     Installation

*     Using SynView:

*     Hierarchical Viewer Tab

*     Netlist Viewer Tab

*     Timing paths visualization  

*     Standalone Graphical widgets enhancements

*     RepView:  Timing waveform visualization widget

*     View and Vman widgets

 

 

 

Basic Features of SynView

Synview is alternative Design Compiler/Primetime GUI written on TCL/TK. I believe, that this GUI implements some handy featuers , that  Design Analyzer lacks, for example:

 

*     Convenient module hierarchy representation and current module selection

*     Command entry and Scripts entry widgets

*     Designs elements searching using wildcards

*     Netlist Viewer, implementing region-of-interest viewing and manipulation (unlike Design Analyzer Netlist Viewer, that shows the contents of the whole block at once)

*     Handy GUI launching directly from TCL Design Compiler shell (dc_shell-t) and possibility to return to the same shell after exiting from GUI application

 

 

Installation

The main installation steps are the following:

 

*     Download synview.tar.gz file; uncompress and untar it.

*     Change the path to wish executable (the first line of synview.tk file)

*     Change the path to bwidget directory (line 37 of synview.tk file), if required or set the full unix path to this directory in a case of problems accessing bwidget package

*     Change the path to synview.tk file to match the actual synview.tk unix path inside synview.tcl (look at the end of file)

*     Make synview.tk file to be executable: chmod +x synview.tk

*     Source synview.tcl file to dc_shell-t and then run “synview” command in order to launch SynView GUI.

 

There are the following files inside SynView directory:

*     synview.tcl : Server part of application. Source this file to dc_shell-t or include the line “source <path-to-synview.tcl> to your initialization .synopsys_dc.setup file.

*     synview.tk : Client part of application. This is actually TK-based GUI that launches when user enters “synview” command into dc_shell-t.

 

 

Using SynView

Hierarchical Viewer Tab

It is possible to load design before launching SynView or after that. In the first case, all design modules already appear inside modules combobox after the tool launches; in the second case, design in DB format can be downloaded using Design -> Load Design button. Enter “synview” command to dc_shell-t and the following GUI appears:

 

 

Click on “Design -> Load Design menubutton to launch “Read Design” window:

 

 

Choose Design in DB format to download, and then click on the “Modules List” to select the top design. After top design selection, all modules hierarchy appears inside “Modules Tree” widget:

 

 

Double click on chosen module inside “Modules Tree” window to make corresponding design to be “current” (It is the same as using “current_design <design_name>” command). The name of current design appears on the top of “Reports window” widget. Type any Design Compiler command inside the command entry line and push “Enter” key. Design compiler will process this command and command’s output appears inside Reports Window. During command’s execution, Status Indicator in the right bottom corner of SynView GUI will change its value to “Working…” and then, after successful command execution – to “Done”. All executed commands accumulate inside the “history lines” command entry combobox. Click on command entry combobox arrow button in order to review/select previous commands. 

 

There is yet another option of communication with Design Compiler. This option is intended for those, who develop scripts for dc_shell-t and want to execute multiple lines of code at once. User can type or copy developed scripts into “Scripts entry” widget, select chosen lines with left mouse button and then execute these lines clicking on “Run” button:

 

 

It is also convenient to have search capability for results review. Insert search pattern into the same Command entry and click on “Find” button in order to search for this pattern inside reports window. Clicking once more selects the next occurrence of searched pattern, and so on. Click on “Clear” button to clear Reports window.

 

 

 

Netlist Viewer Tab

Using Netlist Viewer, designers can explore specific regions of netlist connectivity and get better understanding about synthesized design. Click on the ‘netlist” Tab in order to switch to the netlist viewer:

 

 

Netlist viewer is intended to explore connectivity of current design only (The name of current design appears on the top left corner of the netlist viewer). From the very beginning, netlist viewer window is empty.

First, click on “Type” combobox to select the elements of chosen type (gates, types, inputs, outputs, nets). In order to narrow search, enter the pattern inside “Pattern” entry and click on “Search” button. Then, open “Results” combo box in order to select specific element from the search results. The graphical representation of this element appears on the screen. In order to explore the region near this element, click with left mouse button on selected element’s pin: all gates/ports/nets, connected to this pin will appear on the screen as well. Continue this process to build the needed region.

Module names of selected gates appear on the top of the gate; Instance name indicator in the right bottom corner will show the instance name on the element when mouse cursor is on the top of it.

Drag all elements in the viewer with right mouse button in order to reposition them for better connectivity understanding.

Delete unneeded gates from viewer (without modifying design’s netlist!) pointing with mouse cursor on those elements while holding “Delete” key.

Print the contents of netlist viewer using “Print” button or “Netlist -> Print” menubutton (This will pop up another printing dialog window)

Clear all contents of the netlist viewer clicking on the “Clear” button.

 

 

Timing Paths Visualization

One of the recent additions to SynView is capability to visualize timing paths, or even parts of timing path reports.

In order to visualize needed timing path,

1.     Select one of modules in loaded design to be “current” and run timing report for the current design from the Command Entry line. Use “report_timing  with obligatory option –input_pins (shortcut –in can be used instead), adding any number of additional options.

2.     Mark any part of timing report , that appears inside report’s widget with the left mouse button and then click on “Netlist -> Show Gates” menubutton.

3.     All gates within marked report lines will appear inside Netlist Viewer, visualizing chosen timing path.

 

 

 

Graphical Widgets Enhancements

There are additional graphical widgets built inside SynView package. Run all of them as commands from SynView command entry.


RepView:  Timing waveform visualization widget

RepView widget allows user to move with mouse through timing report lines, while observing waveform dynamic movement in the graphical form. Data Timing propagation waveform is displayed against corresponding clock waveform. All timing information, such as setup time, data slew etc is visualized as well.

The following picture shows  RepView snapshot:

 

 

In order to run RepView widget, simply type repview in the SynView’s command entry, followed by <Return>.

 

View and Vman Widgets

These widgets are no more than simple standalone report viewers. Using these widgets user can work with arbitrary number of report window rather that with only one nested report widget. View  widget is shown in the following picture:

 

 

In order to get any type of report in standalone graphical window, simply type : view before any reporting command, invoked from SynView’s command line, for example: 

view report_timing –max_paths 20 –from MY_PORT

view report_area

       etc

 

Using vman command instead of man opens command’s help in the separate graphical window. Examples of vman usage follow:

vman compile

vman insert_pads