Standalone
Graphical widgets enhancements
RepView: Timing waveform
visualization widget
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
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.
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.

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.
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.
There are
additional graphical widgets built inside SynView package. Run all of them as
commands from SynView command entry.
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>.
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