This document lists all Userware examples that can be found in the demo/api directory of the RTLvision PRO release package.
There are different possibilities to execute an Userware script:
-
Load the Userware script file using the menu entry.
-
Execute the Tcl command
source <userware.tcl>
in the Console window, where<userware.tcl>
is your Userware script. -
Start RTLvision PRO with commandline option
-userware <userware.tcl>
, where<userware.tcl>
is your Userware script file. If you use this method, make sure that you register your script to be executed using the API callgui database registerChangedCallback
. -
Use the Plugins dialog. Only scripts that follow certain rules (see demo/api/demoPlugin.tcl for an example) can be loaded as a Plugin. The API examples in the table below that can be loaded as a Plugin are marked with the
icon.
Analyze the Loaded Database
Read Side Files and Annotate Data
Modify the Loaded Database
GUI Specific Userware Examples
Create Reports
Miscellaneous Userware Examples
Link to Other Tools
Load Netlist Data
C Level Examples
API Examples Details
Access the Analog Waveform Parser
This file contains an example for the use of the Analog Waveform library access functions.
The used functions allow to parse spice simulation results and to retrieve the contained data.
The comments in the example code give more explanations on the performed API function calls.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/Fig24_30.csv
Add Direct Connections
Add a new main menu entry to loop over all objects loaded to the Cone window and automatically load all direct connections between objects.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/buf.sp
Add Source Code Highlight
Create dummy objects and associate arbitrary file positions with these objects. Now any position in a source file can be highlighted.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Adder Example (Transistor Level)
Small transistor example.
- Section
- Files
Additional Information in Device Name
Update the displayed name of all modules to show additional information.
- Section
- Files
Analyze Blackbox Connectivity
Analyze the connectivity of a blackbox instance and try to arrange the pins on the left or right side depending on the connectivity.
- Plugin
-
- Section
- Files
Analyze RC Networks
Report the top 5 resistance values in the selected RC network. Usage:
-
Add the signals (turn on "Signal Mode") to investigate into the Mem window (e.g. by Drag&Drop).
-
Invoke the "Top 5 Resistors" menu entry to run the analysis.
- Plugin
-
- Section
- Files
- Example
-
demo/spef/usb_phy.spef
Annotate Cone
This is a prototype implementation of a Cone window annotation feature.
To access this feature the main menu is extended by an Annotate Cone
button.
The Start Annotation
menu entry will activate the annotation mode and
disables the normal mouse actions like zoom, double-click, etc.
Now simple elements like rectangles, circles, lines and text boxes can
be added on top of the schematic.
Annotation items can be moved or deleted using the corresponding menu
entry. The Clear Annotation
menu entry will remove all created
annotation objects. The End Annotation
entry will switch back to
normal mode an re-install all normal mouse bindings. This will also
remove all created annotation objects.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Assign Symbols
Assign a built-in symbol shape to a loaded primitive. The first character of the instance name defines the symbol type.
- Section
- Files
Automatically Map Symbols and Run Skill Export
Open a design database, automatically map all symbols for all database cells matching by name, render the schematic for each module and export the schematic as a Skill file.
- Section
- Files
Batch Netlist Export
Read a System Verilog design and export the created netlist as a structural Verilog netlist.
- Usage
starsh demo/api/cust22/exportNetlistBatch.tcl \
-rtl <READ_RTL_OPTIONS> \
-netlist outputFile.v <NETLIST_EXPORT_OPTIONS>
READ_RTL_OPTIONS:
All supported options of the zrtl Tcl command.
NETLIST_EXPORT_OPTIONS:
-namedConnectivity: Create named connectivity.
-implementFunction: Add implementations for selected primitives.
-gzip: Write a gzipped output file.
-writeSymlib: Also write a .sym file.
-writeLiberty: Also write a .lib file.
- Section
- Files
Batch Skill Export
Export the schematic as Skill in batch mode using starsh.
- Usage
starsh demo/api/SkillExportBatch.tcl \
-spice <READ_SPICE_OPTIONS> \
-skill <SKILL_EXPORT_OPTIONS>
- Section
- Files
Beautify Schematics
Call post process operators to beautify the schematic.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
BrowseCdsLib
Display the contents of a Cadence cds.lib file.
- Plugin
-
- Section
- Files
-
cust42/browseCdsLib.tcl
cust42/img/cell-16.png
cust42/img/cell-24.png
cust42/img/cell-32.png
cust42/img/cell-48.png
cust42/img/cell-64.png
cust42/img/layoutView-16.png
cust42/img/layoutView-24.png
cust42/img/layoutView-32.png
cust42/img/layoutView-48.png
cust42/img/layoutView-64.png
cust42/img/library-16.png
cust42/img/library-24.png
cust42/img/library-32.png
cust42/img/library-48.png
cust42/img/library-64.png
cust42/img/schematicView-16.png
cust42/img/schematicView-24.png
cust42/img/schematicView-32.png
cust42/img/schematicView-48.png
cust42/img/schematicView-64.png
cust42/img/symbolView-16.png
cust42/img/symbolView-24.png
cust42/img/symbolView-32.png
cust42/img/symbolView-48.png
cust42/img/symbolView-64.png
BUS85 Example
Fill the database with the bus85 example design. The bus85.tcl
example
refers to the bus85prim.sp
spice source. The bus85prim.sym
Symbol
library fits to the bus85.tcl
example.
- Section
- Files
BUS85 Example (Gate Level)
Use this userware to load the bus85.tcl
without transistors.
- Section
- Files
C-Code Skeleton
Skeleton that can be used to create a shared object that can be loaded into the *Vision tools to register new Tcl Object Commands.
- Section
- Files
Calculate Area
Add a main menu entry to calculate the estimated chip area.
Add a comment to the top module with the total area.
A text report with details about the chip area consumption can be created.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/alu8bit.sp
Calculate New Width
Calculate new width based on the product of m and w.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/aquarius.sp
Calculate the Pin-to-Pin Resistance
Report the pin-to-pin resistance for two given pins on the same net without opening the Parasitic window. Select two pins on the same net and access this function from the extended Popup menu.
- Plugin
-
- Section
- Files
- Example
-
demo/dspf/example.dspf
CDC Example
Userware example for the ClockTree API. Do additional CDC checks.
- Section
- Files
Check Connectivity to IP Cells
Loop over all output pins of all instances of the given start cell list and check that each output pin only connects to one instance of the given IP cell list.
- Plugin
-
- Section
- Files
Check Device Model
Find and highlight io devices matching the given model name pattern.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/multivolt.sp
Check for Multiple Drivers
Loop over all signals and check if a signal has more than one driver.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/bus85.f
Check for Wrong Bulks
Loop over all PMOS and NMOS transistors and check if their bulks are connected to power and ground respectively. If not, the transistor is reported in the Mem window.
- Section
- Files
- Example
-
demo/spice/amd2901.sp demo/spice/csim90/g1310.sp
Check for Zero Drivers
Loop over all signals and check if a signal has no driver.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/wb_sys/conmax_top.f
Check Voltage Zones
Find signals that connect transistors in a low voltage zone with transistors in a high voltage zone.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/multivolt.sp
Clock Tree Extraction
Extract the clock tree structure of the loaded design.
Usage: - Right click on an input port (e.g. CLK) and invoke - "Userware→Clock Tree" from the context menu. - Now switch to the Cone window to see the result.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Collect Statistics
Traverse Design and collect statistics.
- Section
- Files
Color Nets
Color nets in the loaded database.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/parity1.sp
Compile a Design
Example Tcl script to compile all HDL design files into an in-memory (ZDB) database to be used with the Vision SDT platform. In the binary directory (linux64 or win64) of the Vision platform package you can find the starsh binary. This is a Tcl shell extended by all HDL parsers provided by the Vision platform. Either use the option -help to get a list of all possible options or see doc/parser/*parser.html for a more detailed description of the parser options.
- Section
- Files
Compute and Display Device Statistics
Compute and display statistics about the devices used in the design.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Compute and Display Hierarchy Statistics
Compute and display statistics about the design hierarchy, e.g. number of instances of each cell, depth of hierarchical modules, etc. The statistics can also be exported as a CSV file.
The plugin script can also be run in batch mode via: starsh hierarchyStatistics.tcl -batch ZDB_FILE OUTPUT_FILE
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Compute Differences
Compute and display the differences of the currently loaded database
and a binary database (.zdb file).
Can be run directly from the command line using the command line options
-userware3 diff.tcl db1.zdb db2.zdb
.
- Plugin
-
- Section
- Files
- Example
-
demo/api/Diff/netlistA.v demo/api/Diff/netlistB.v
Cone Extraction Example
API example how to use the Cone extraction API: extract the logic cone or path between a start node and several targets.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Cone Status
Add a main menu entry to highlight complete or empty modules loaded in the Cone window in different colors.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Configure Attributes At MOS Devices
Configure which attributes are displayed at *MOS devices.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Configure Clocked Cells
Userware to flag cells as clocked cells and ports of clocked cells as the clock ports.
- Section
- Files
- Example
-
demo/verilog/gl85.v
Connect Pin to a PG Net
Extend the Popup menu and add a new entry to disconnect the connected net and connect a constant 1 or 0 to the pin. It is also possible to restore the original connectivity.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/gl85.v
Connect two Selected Instances in the Cone
Extend the popup menu and add an entry to add all direct connections between two selected instance in the Cone window.
- Plugin
-
- Section
- Files
Convert Slib To Zdb And Show All Symbols
Convert symbols from slib format to zdb and show all symbols.
starvisionpro -userware3 slib2skill.tcl slibfname libname
- Section
- Files
Coupled Elements
Add a main menu entry to collect information about all coupled K-objects and load all instances to the Mem window.
Coupled instances can be displayed in the Cone window including all
connected R, C or L devices. If option Full LRC
is set the
corresponding R and C to the L are loaded into the cone, too.
Coupled instances can be grouped into a new hierarchy.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/examples.sp
Coupling Capacitors
Report coupling Cs in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/amd2901.sp demo/spice/csim90/gm19.sp
Create And Fill ZDB Via C-Level API
Create and fill a binary database using the C-Level API.
- Section
- Files
Create And Use Oids Via C-Level API
Create and use OIDs the C-Level API.
- Section
- Files
Create Attributes for DC
This example shows how to use the waveform parser to - read a DC analysis result file - traverse all curves defined in this file - create value attributes in the schematic from this data
-
Load the spice netlist "demo/spice/Fig24_30/Fig24_30.sp".
-
Load this userware file. A small GUI will open
-
Open the DC simulation result (1) "demo/spice/Fig24_30/dcOpInfo.info"
-
Select a subtype such as "bsim3v3.region".
-
Click "Create"
-
Check the attributes for the transistors in the schematic. Attributes such as "bsim3v3.region=1" have been added. (2) "demo/spice/Fig24_30/dcOp.dc"
-
Select a type such as "volt".
-
Click "Create"
-
From the menu select "View→Select Attributes" and change "Net Attributes → Net" to "%volt"
-
The generated attributes are visible on the nets of the schematic.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/dcOpInfo.info demo/spice/Fig24_30/dcOp.dc
Create Attributes for Transient
This example shows how to use the waveform parser to - read a transient analysis result file - traverse all curves defined in this file - create value attributes in the schematic from this data
-
Load the spice netlist "demo/spice/Fig24_30/Fig24_30.sp".
-
Load this userware file. A small GUI will open
-
Open the tran simulation result "demo/spice/Fig24_30/Fig24_30.csv"
-
Select a type such as "volt".
-
Click "Create"
-
From the menu select "View→Select Attributes" and change "Net Attributes → Net" to "%volt"
-
The generated attributes are visible on the nets of the schematic.
-
Change the x-axis value to 0.7e-6
-
Click "Create"
-
The attribute values are adjusted
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/Fig24_30.csv
Create Flat Binary Database
Create and fill flat binary database using the C-Level API.
- Section
- Files
Create HTML/Text Overview
Create a design overview report of the loaded design either in HTML or ASCII text format. This example can easily be extended to create an other output format.
The HTML pages contain many typical information about the design, such as: module and submodule names with their instantiations, schematics, input/output/inout ports, clocked elements, all with the places of definition in the source files. Furthermore Operator types and Primitive functions are printed with the number of their occurrences.
Alternately you can create the same information in text files - without connecting links, of course.
In addition to the schematics in HTML, linked pdf files are generated; they have better zoom view options than the former.
DIRECTIONS:
-
Look through the BASIC OPTIONS in this
createOverview.tcl
file. If necessary, edit and save it. -
Have this tcl file together with the included file
htmlFormat.tcl
(ortxtFormat.tcl
) stored in one directory. -
Open a verilog design in StarVision PRO.
-
Click Menu-File-LoadUserware and navigate to
createOverview.tcl
from 2. -
The createOverview.tcl script will create the depicted html (or txt) files in the specified $outDir. Start browsing with index.html.
- Plugin
-
- Section
- Files
-
createOverview/createOverview.tcl
createOverview/htmlFormat.tcl
createOverview/txtFormat.tcl
- Example
-
demo/rtl/aquarius/aquarius.f
Create Images from Spice
Load all Spice files in a given folder and create a PNG image of each sub-circuit.
Loop over spice files; read each spice file (by calling
zspice <options>
) and then load each sub-circuit
into the Schem window and print it to postscript.
Terminology: ZDB uses the Verilog name Module for a Spice "sub-circuit" and the name Primitive for a Spice "model".
- Section
- Files
- Example
-
demo/spice/adder.sp
Create Instance’s Attribute List
Print all attributes of all instances to a text file.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/aquarius.sp
Create Nomenclature
Create a list of instance names with their corresponding page and sector. If the instance has an attribute named 'PartValue' then the value of this attribute is added to the created instance list.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Create Port- and NetBuses
Create portbuses and netbuses from single bit ports and nets.
- Section
- Files
- Example
-
demo/spice/aquarius.sp
Create Port- and Netbuses (Pattern Based)
Create portbuses and netbuses from single bit ports and nets.
The script can be used as a template for creating special
purpose versions. The hard coded pattern for
collecting simple buses may need modifications.
Currently the pattern for collecting single bits matches
simple names like A[1]
, B{1}
, C_1_
or A1
.
Foreach module all nets are examined. If the name (e.g. BUS[77]
)
matches a pattern containing a basename (e.g. BUS
), some letters
preceding the bitsubscript (e.g. [
) and some trailing letters
(e.g. ]
) this triplet is used as an index identifying the bus.
All bitsubscripts (e.g. 77
) are collected and sorted in a list.
After all subscripts are collected, a netBus or portBus is
created.
For PortBuses there are no "gaps" in the bitsubscripts allowed.
If a net is already member of a bus the bitsubscript list is
cleared to mark the bus as already bundled.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Create Quartus Project
This script can be used to create a Quartus project.
- Section
- Files
Create Timing Netlist from TimeQuest
A script that can be used to generate a zdb binfile of a timing netlist from TimeQuest.
This script can be loaded as a Userware in RTLvision PRO or as a
script in the batch tool starsh. In both cases a zdb binfile is
created based on the netlist in the Tcl file <PROJECT>.rtlvision.tcl
.
- Section
- Files
Create Top Block
Create a new top block around all instances in the old top.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Create UNISIM Symbols
Create symbols for cells with UNISIM-style names.
The function is activated by the new main menu entry
Userware > UNISIM Symbols
.
- Plugin
-
- Section
- Files
- Example
-
demo/edif/gl85.edf
Cross-Probe To Liberty Sources
Extend the popup menu with an entry Show Liberty
to cross-probe from
the schematic to Liberty source code.
- Plugin
-
- Section
- Files
- Example
-
demo/api/cust4/example.lib demo/api/cust4/example.v
CSIM90 Example
API example of demo/spice/csim90 spice files.
- Section
- Files
Custom Key Binding
This Userware binds a special hotkey to toggle the visibility of all netnames.
- Section
- Files
Custom Popup
Example code for doc/tutorial/guiCustomization.html
Custom Widget
Example code for doc/tutorial/guiCustomization.html
Customize Layout
Example code for doc/tutorial/guiCustomization.html
Customize Menu
Example code for doc/tutorial/guiCustomization.html
Customize Toolbar
Example code for doc/tutorial/guiCustomization.html
- Section
- Files
-
guiCustomization/customizeToolbar.tcl
guiCustomization/show-net-16.png
guiCustomization/show-net-24.png
guiCustomization/show-net-32.png
guiCustomization/show-net-48.png
guiCustomization/show-net-64.png
DB Diff (Batch Mode Version)
Compare two ZDBs. Differences are printed to STDOUT. If there are no differences, the script terminates with exit code 0, otherwise with exit code 1.
Usage:
starsh diff_nogui.tcl [OPTIONS...] <ZDB_FILE1> <ZDB_FILE2>
--ignore-case
Ignore case when comparing names.
--ignore-equivalent-primitives
Consider primitives with the same function to be equivalent.
--normalize-arrays
Normalize array/bus names.
--skip-cells
Don't report cells that only exist in one DB.
--skip-connectivity
Don't report connectivity differences (nets, netbuses, ...).
--skip-instances
Don't report instances that only exist in one DB.
--skip-interfaces
Don't report interface differences (e.g. ports, portbuses).
Debug SPEF
Internal SPEF debugging.
- Plugin
-
- Section
- Files
- Example
-
demo/spef/uart_layout.spef
Delete NetBuses
Delete all netBus information in the loaded database.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Delete Objects
Extend the Popup menu to delete selected objects from the loaded database.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Demo for API Tutorial
Extend the Popup menu to show all connections of a net/signal.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Demo Plugin
A demo plugin to demonstrate all features of the plugin API:
-
Register a callback function to change the display attributes on each database reload.
-
Add a menu item to print all module names to demo GUI modifications.
-
Add some configuration options for the plugin.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Design Histogram
Display a "Design Histogram" of the loaded design database.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/aquarius.sp
Detect Cells Directly Connected to Input
Detect and highlight any FF/latches (with specific std cell name pattern) that is directly connected to the input ports (directly driven by input ports without any buffers/inverters).
- Section
- Files
Detect Cells Directly Connected to Input 2
Detect and highlight any FF/latches (with specific std cell name pattern) that is directly connected to the input ports (directly driven by input ports without any buffers/inverters).
Display Comments
Add comments from a file to the netlist.
- Plugin
-
- Section
- Files
- Example
-
demo/api/cust34/commentCircuit.sp demo/api/cust34/comment.nv
Display Path Extraction Results
This example script demonstrates how to display path extraction results generated by the extract C demo and stored as database root attributes in the Cone window.
- Section
- Files
Display Voltage
Display the voltages in the given file at the nets.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/ram2k.sp
Do CDC Checks
Do additional CDC checks. The user can specify that input ports are in sync with a specific clock.
- Section
- Files
Dump Design Metrics as JSON
Analyze a given ZDB and produce the following design metrics for each design (top level module):
-
Module name
-
Number of ports
-
Number of input ports
-
Number of output ports
-
Number of bi-dir ports
-
Number of instances in the module
-
Number of nets in the module
-
Number of registers
-
Number and types of sub-module instances (including standard cells) instantiated.
-
Length of scan-chains
-
Number of clock domains
- Section
- Files
Dump Hierarchy
Dump hierarchy information to a text file.
Right click on a hierarchical instance or module to invoke the Dump
Hierarchy
function from the Userware Popup menu.
This function will write hierarchy information starting from the
selected object.
From the Userware main menu the Dump Hierarchy Tree
function can be
used to dump the hierarchy tree for each top module.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Dump I/O Ports
Add a main menu entry to loop over all modules and dump the I/O ports to a text file.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Dump Zdb to ASCII Text File
Dump the contents of the zdb database into an ASCII text file. This example do not need Tcl and can be used as a reference how to access the ZDB structures.
- Section
- Files
Edit and Export W/L Attributes
Change all W/L attributes and update the Spice file.
- Section
- Files
- Example
-
demo/api/cust7/example.sp
Edit And Show Comments
This plugin extends the Popup menu to add comments to the selected object.
From the extended main menu a report can be displayed or saved as a text file.
Also, all objects with a comment can be loaded to the Mem window.
The plugin also lets the user toggle the display of comments at nets in the schematic view.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Engineering Change Order
Allow simple ECO changes.
This userware assist the user to do ECO changes. The Popup menu is extended to perform the following operations on insts/pins:
Disconnect - Disconnect a pin from a net.
Connect - Connect a pin to a net.
Change Connections - Change all connections of an instance.
Change Cellref - Change the cell referenced by an instance.
Replace Instance - Replace an instance by an instance of an other
cell.
For each operation a string with the performed action is printed to the Console window. Instead of this text a DC-script could be created to perform the ECO action on the netlist.
- Section
- Files
- Example
-
demo/verilog/gl85.v
ERC Cockpit
Add various ERC checks to the main menu.
- Section
- Files
- Example
-
demo/spice/amd2901.sp
ERC Usage Example
Usage example for ERC:check02 "Floating Gates".
- Section
- Files
Example For C Fillflat
C implementation of the fillflat Userware. This example script demonstrates how to use the flat tree creation compiled as a shared library in the starsh.
- Section
- Files
Example for C Userware
C implementation of the floatingNodes Userware. This example script demonstrates how to use the userware extension compiled as a shared library in the *Vision GUI as well as in the starsh.
- Section
- Files
Example for Debug Messages
Message and debug C-Level API.
- Section
- Files
Example for Wdb Gui API
Shows the usage of the Gui Wave API functions and the extension of a wave database via the TCL API.
- Section
- Files
Exclude Cells from the Cone Extraction
Read the side file 'excludeCell.txt' and match the name patterns against the loaded database to flag cells exclude from the cone extraction.
- Section
- Files
Expand Connectivity
Expand the connectivity of devices in the Cone window excluding all the MOS devices that are connected to the net by the 'gate' pin.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Expand one Logic Level in the Cone
Extend the popup menu and add an entry to expand the first logic level of all selected hierarchical instance in the Cone window.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/bus85.f
Export Binlib as TCL
Since the binlib file format becomes incompatible if the database structure changes here are two scripts that can be used to migrate the contents of a compiled binlib to a new binlib version.
Run the old version of *Vision to export the binlib to Tcl:
starvisionpro -userware3 binlibExport.tcl oldBinlib.zdb /tmp/binlib.tcl
Run the new version of *Vision to import the Tcl and save a new version of the binlib:
starvisionpro -userware3 binlibImport.tcl /tmp/binlib.tcl newBinlib.zdb
- Section
- Files
Export Mangled/Obfuscated Netlist
Export a mangled/obfuscated version (stripped attributes, replaced names) of the currently displayed module or the whole database.
- Plugin
-
- Section
- Files
Export Quartus DB as TCL
This script contains procedures to query netlist information from the
Quartus database and writes out $db load …
statements.
- Section
- Files
Export Schematic as EDIF
Export the schematic as EDIF.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Extract Clocked Elements
Extract logic cloud from all given start points to all clocked elements and load the result to the Cone window. Flip-flops belonging together are lined up in columns and get the same color.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Fill Flat Example
C implementation of the fillflat Userware. This example script demonstrates how to fill flat data compiled as a shared library in the starsh.
- Section
- Files
Filter Parasitic Elements
This script can be used to filter parasitic elements of the RC network displayed in the Parasitic window. Sometimes the RC network even for a single net is too complicated and therefore when viewed for multiple nets, it can be very complicated to for debugging and visualization.
This script enables the user to:
-
Remove all the resistors or capacitors from a selected net in the RC window (NOT from the entire database).
-
Merge series resistors or parallel capacitors of a selected net.
-
Filter resistors or capacitors below a specified threshold value of a selected net.
- Plugin
-
- Section
- Files
- Example
-
demo/dspf/example.dspf
Find Blackboxes
Add a main menu entry to find all blackbox cells in the loaded database and show the result in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/top.v
Find Clocked Cells Without Reset
Find all instances of clocked cells and check the nets connected to the clock and reset pins.
- Plugin
-
- Section
- Files
Find Defined Resistors
Traverse the design hierarchy tree for all Rs, check the resistance value, and collect the objects bigger than the defined threshold value. The result is stored in the Mem window.
- Section
- Files
- Example
-
demo/spice/amd2901.sp
Find Duplicate Sub-Circuits
Find duplicate sub-circuits loaded from a SPICE netlist.
- Plugin
-
- Section
- Files
- Example
-
demo/api/cust27/duplicateSubckt.sp
Find Flat Floating Nodes
Loop over all nets/signals and count the number of pins for each net/signal. All nets/signals with exactly one pin are stored in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/amd2901.sp
Find Floating Gates
Loop over all instances and find floating gates. The result is stored in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Find Floating Inputs
Loop over all signals and report signals that have no driver. Also loop over all primitive instance pins and report unconnected inputs.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/aquarius.sp
Find Floating Members in NetBuses
Loop over the database and find floating/dangling member nets in netbuses. Results are displayed in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Find Floating Nodes
Loop over all nets/signals and count the number of pins for each net/signal. All nets/signals with exactly one pin are stored in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/amd2901.sp demo/spice/csim90/gm1.sp
Find Floating Outputs
Loop over all signals report signals that do not drive anything.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/amd2901.sp
Find Guessed Supply Nets
Add a main menu entry to find all guessed supply nets in the loaded database and show the result in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/amd2901.sp
Find Heavy Cs and Rs
The heavyCR procedure loops over all C or R and checks each value (capacitance or resistance) and collects the 10 objects with the biggest values. The 10 biggest Cs and 10 biggest Rs are stored in the Mem window. heavyCR is the tree-based version.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/amd2901.sp demo/spice/csim90/g1310.sp demo/spice/csim90/gm1.sp demo/spice/gl85.sp
Find Heavy Cs and Rs (Tree-Based)
The heavyCR procedure loops over all C or R and checks each value (capacitance or resistance) and collects the 10 objects with the biggest values. The 10 biggest Cs and 10 biggest Rs are stored in the Mem window. heavyCRt is the tree-based version.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/amd2901.sp demo/spice/csim90/chip2.sp demo/spice/gl85.sp
Find Heavy Signals
Loop over all signals and count the number of pins for each signal. The 10 biggest signals are stored in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp demo/spice/csim90/chip2.sp
Find Insts Without SDF Info
Find all instances without SDF info. Load to mem or mark them.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/pulpino/pulpino.f
Find IP Modules
Based on a given list of cell name patterns create an output file to list all instantiation paths to cells matching the given pattern list.
- Section
- Files
Find Longest Path
Extract and show the longest path between two selected objects.
Features:
-
Define start and endpoint by selecting each object in the Schem window and press the corresponding button in the dialog window created by this userware.
-
Pressing the "Run Search" button will perform a path extraction and display the result in a listbox. Each entry in this listbox can be double clicked to show it in the Cone window.
-
There is a limit to 100000 paths, feel free to increase this value for fast machines.
-
A progress bar appears which let you interrupt the path search process.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Find Parasitic Nets With No Driver
Find parasitic nets with no driver. A driver is either:
-
a top level input port or
-
an output pin or
-
a pin with the name
Y
.- Section
- Files
Find Path Between Modules
Find all paths between the output pins of a given start module instance and any pin of a given target module instance.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Find Paths to Clocked Cells
Read an input file that contains cell names and pin names. Then a path search is performed and the name of the first reachable clocked cell is dumped into an output file.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Find Paths to IP Blocks
Find paths from all nets of a given block to all IP blocks (flag undefined).
- Section
- Files
Find Power/Ground Nets
Flag all nodes that matches one of the given patterns with a power, negpower or ground flag to get a more readable schematic.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Find Reconvergent Logic
Read a side file that contains pairs of FF pins. The task of this userware is to find paths with reconvergent logic between these pins. The first column in the file is used as the start pin the second column is used as the target pin.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Find Transistor Devices by Name
Search for transistor devices by name. The device might be moved to a new hierarchy created by the 'Recognize Gate' feature.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Fix Bus Characters
Rename net objects to follow the Cadence Virtuoso bus naming semantic.
- Section
- Files
- Example
-
demo/spice/aquarius.sp
Fix Colliding Names
Adjust instance and net names to satisfy the Cadence Virtuoso namespace rules. - Instances cannot contain a dot character. - Scalar net names and netbus names share the same namespace.
- Section
- Files
- Example
-
demo/spice/buf.sp
Flag Leaf Cells
Flag all modules listed in the provided side file as a leaf cell.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp demo/api/flagLeafCells.txt
Flat Modules in the Design
Flat all instances of a given module. For the simple case of only one hierarchy '$db oper expand' may be an simpler approach.
- Section
- Files
- Example
-
demo/spice/param.sp
Flat the Design
Example Tcl script that uses ZDB API commands to flatten the design in the given binary ZDB file and write out a structural Verilog netlist of the flattened database. Usage: starsh flatDesign.tcl design.zdb design.v
- Section
- Files
Floating Nodes Example
C implementation of the floatingNodes Userware. This example script demonstrates how to use the userware extension compiled as a shared library in the *Vision GUI as well as in the starsh.
- Section
- Files
Force Symbol
Overwrite existing cell symbols with symbols in the specified symbol library file.
- Section
- Files
FPGA Symbols
Create nice symbol shapes for all LUT cells.
- Plugin
-
- Section
- Files
- Example
-
demo/edif/pulpino.edf
FSM
Extract FSM information copied from the parse tree to the netlist database and display FSMs using a graphical and a table view.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/wb_sys/conmax_top.f
Functions to Print Data from the Analog Wave Database
Functions to print parsed data.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/Fig24_30.csv
Generate Spice From Parasitic
Read a text file containing names of hierarchical instances. For all nets inside these sub-circuits the RC network will be loaded to the Parasitic window and a Spice netlist is created.
Get Symbol String for Built-In Shapes
Example code to extract the DEF string for the built-in symbol shapes.
- Section
- Files
Group Cone Content
Group the contents of the Cone window into an artificial hierarchy.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Group Connected And Gates
Create artificial hierarchy around any two connected and2 gates in the database.
- Section
- Files
- Example
-
demo/verilog/gl85.v
Headless Schematic Export
Load a binary database (ZDB file), and create a graphics file for each module (SVG, PDF or POSTSCRIPT). This script works without a GUI and must be executed directly with starsh.
Usage:
starsh batchExportSchematics.tcl <ZDB_FILE> <FILE_TYPE> <TARGET_FOLDER>
- Section
- Files
Hierarchical Netlist Generation
Read a Spice netlist with X/Y annotations for each device and a side file that contains polygon definitions then this Plugin can be used to re-create a hierarchical database.
- Plugin
-
- Section
- Files
Hierarchy Overview
Add a main menu entry to load all hierarchical instances into the Cone window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Highlight and Annotate Timing Values
Userware example to highlight objects and annotate timing values.
- Section
- Files
Highlight And Remove Devices
Highlight and remove PODE and DUMMY devices by model/cell name patterns. Highlight devices py parameter name patterns.
Highlight Devices
Loop over the loaded database and highlight different devices (based on the model name) in a different color.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Highlight for DC
This example shows how to use the waveform parser to - read a DC analysis result file - traverse all curves defined in this file - highlight elements in the schematic from this data
-
Load the spice netlist "demo/spice/Fig24_30/Fig24_30.sp".
-
Load this userware file. A small GUI will open
-
Open the DC simulation result (1) "demo/spice/Fig24_30/dcOpInfo.info"
-
Select a subtype such as "bsim3v3.region".
-
Define a min / max value such as 2.0 and 2.0
-
Click "Highlight"
-
The concerned components are highlighted in the schematic. (2) "demo/spice/Fig24_30/dcOp.dc"
-
Select a type such as "volt".
-
Define a min / max value such as 0.0 and 0.01
-
Click "Highlight"
-
The concerned nets are highlighted in the schematic.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/dcOpInfo.info
Highlight for RC
This example shows how to use the waveform parser to - read a DC analysis result file - traverse all curves defined in this file - create value attributes for resistors and capacitors in the schematic
-
Load the spice netlist "demo/spice/Fig24_30/Fig24_30.sp".
-
Load this userware file.
-
Open the DC simulation result "demo/spice/Fig24_30/dcOpInfo.info"
-
From the menu select "View→Select Attributes" and change "Net Attributes → Net" to "%volt" The generated attributes are visible on the nets of the schematic.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/dcOpInfo.info
Highlight for Transient
This example shows how to use the waveform parser to - read a DC analysis result file - traverse all curves defined in this file - highlight elements in the schematic from this data
-
Load the spice netlist "demo/spice/Fig24_30/Fig24_30.sp".
-
Load this userware file. A small GUI will open
-
Open the tran simulation result "demo/spice/Fig24_30/Fig24_30.csv"
-
Select a type such as "volt".
-
Define a min / max value such as 0.0 and 0.01
-
Click "Highlight"
-
The concerned nets are highlighted in the schematic.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/Fig24_30.csv
Highlight for Voltage
This example shows how to use the waveform parser to - read a DC analysis result file - traverse all curves defined in this file - create voltage attributes on corresponding nets in the schematic
-
Load the spice netlist "demo/spice/Fig24_30/Fig24_30.sp".
-
Load this userware file.
-
Open the DC simulation result "demo/spice/Fig24_30/dcOp.dc"
-
From the menu select "View→Select Attributes" and change "Net Attributes → Net" to "%volt" The generated attributes are visible on the nets of the schematic.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/dcOp.dc
Highlight Nodes
Read a side file that contains node names. Highlight all interconnected nodes in the same color.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/adder.sp
Highlight Pulldown
Loop over the loaded database and highlight all pulldown devices and nets.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/ram2k.sp
Highlight Reduced Devices
Loop over the loaded database and highlight reduced objects that are
marked with the $CONSISTINGOF
attribute (e.g. after
$db oper mergeParallel
).
- Plugin
-
- Section
- Files
- Example
-
demo/spice/asiclib.sp
Histogram of W/L
Create a histogram of all W/L values in the database.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Identify Clock Gates
Open a binfile and loop over all cells in the database and remove the clock flag from all CGC cells.
- Section
- Files
Ignore Devices
Extend the popup menu with the options to ignore or grey out devices. The ignored devices are stored in the Mem window and can be undone.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/asiclib.sp
Import Binlib from TCL
Since the binlib file format becomes incompatible if the database structure changes here are two scripts that can be used to migrate the contents of a compiled binlib to a new binlib version.
Run the old version of *Vision to export the binlib to Tcl:
starvisionpro -userware3 binlibExport.tcl oldBinlib.zdb /tmp/binlib.tcl
Run the new version of *Vision to import the Tcl and save a new version of the binlib:
starvisionpro -userware3 binlibImport.tcl /tmp/binlib.tcl newBinlib.zdb
- Section
- Files
Import Pcb Netlist
Parse pcb netlist and create ZDB.
Supported formats: - siemens / mentor / xpedition - altium / protel - cadence / orcad
Open issues: - symbol / function creation - better/unified dict/list handling - unified data for one single zdb save code - power/ground nets - better pin directions - sections in orcad (?) - error handling - insts/primitives checks
Usage: *vision -userwareargs pcbimport.tcl \ "-altium {Altium Netlist.NET}" *vision -userwareargs pcbimport.tcl \ "-siemens {Xpedition Netlist.qcv}" *vision -userwareargs pcbimport.tcl \ "-cadence {OrCAD Netlist Part 1.dat} \ {OrCAD Netlist Part 2.dat} \ {OrCAD Netlist Part 3.dat}"
- Section
- Files
-
cust43/pcbsiemens.tcl
cust43/pcbaltium.tcl
cust43/pcbcadence.tcl
Import Synplicity Project
Insert a Userware menu to import Synplicity project files.
- Plugin
-
- Section
- Files
Import Timings from TimeQuest
A Userware to visualize the results of the sta_report.tcl
script.
This is a Userware to provide a widget to manage timing paths.
The script sta_report.tcl
executed in Altera’s TimeQuest tool will
generate an output file that uses this PathVision Userware.
- Section
- Files
Import Xilinx Project
Insert a Userware menu to import Xilinx Vivado and Xilinx ISE project files.
Just create the userware menu
$tool -userware importXilinx.tcl
Create userware menu and immediately import project.xpr
$tool -userware2 importXilinx.tcl project.xpr
Create userware menu, immediately import project.xpr
and
create project.set
$tool -userware3 importXilinx.tcl project.xpr project.set
Inspired by code from the XML Parser YAXMLP in wiki.tcl.tk/20146 from George Peter Staplin
- Plugin
-
- Section
- Files
Initialize Customization
Customize *Vision at startup by loading multiple scripts.
- Section
- Files
Keep Selected Cone Objects
Extend the Popup menu of the Cone window and add the option to keep the selected and delete all other objects.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Liberty Area
Add a new main menu entry to calculate the estimated chip area based on the Liberty area attribute.
- Plugin
-
- Section
- Files
Link to Layout
Link the Parasitic view with a Layout viewer.
- Plugin
-
- Section
- Files
- Example
-
demo/dspf/example.dspf
Load FastScan Report
Parse a FastScan report file and display a pin list.
- Plugin
-
- Section
- Files
-
fastscan/fastscan.tcl
fastscan/bus85.fas
fastscan/bus85_small.fas
fastscan/minirisc.fas
- Example
-
demo/verilog/bus85.f
Load HyperFault Logfile
Parse and display a HyperFault report or log file.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/bus85.f demo/verilog/bus85.sym
Load HyperFault Report
Parse and display a HyperFault report or log file.
- Plugin
-
- Section
- Files
-
hyperfault/hyperfault.tcl
hyperfault/bus85.dictionary
hyperfault/bus85_small.dictionary
- Example
-
demo/verilog/bus85.f demo/verilog/bus85.sym
Load Members
Extend the Popup menu with a function Load Members Into Memory
that
loads the members of the selected buses into the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Load/Append Highlighted Objects into the Cone Window
Add main menu entries to load/append all highlighted objects/nets/instances into the main Cone window.
- Plugin
-
- Section
- Files
Lump RC Modules
Merges parallel and serial transistors and resistors of parasitic networks.
- Plugin
-
- Section
- Files
- Example
-
demo/spef/usb_phy.spef
LUT Symbols
Add a main menu entry to apply LUT/PLA symbols to LUT-style instances.
In order to be recognized as a LUT-style instance, there must be
n
inputs (2⇐n⇐10)
, exactly 1 output, and the instance must have an
attribute INIT
with an exact bit-width of 2^n
.
- Plugin
-
- Section
- Files
- Example
-
demo/edif/pulpino.edf
Manipulate Design
Allow for deleting & creating hierarchies, rotating & moving transistor-level device instances, etc.
- Plugin
-
- Section
- Files
-
manipulateDesign/manipulateDesign.tcl
manipulateDesign/annotate.tcl
manipulateDesign/appendcone.tcl
manipulateDesign/flatten.tcl
manipulateDesign/history_tab.tcl
manipulateDesign/merge.tcl
manipulateDesign/merge_tab.tcl
manipulateDesign/move.tcl
manipulateDesign/replace.tcl
manipulateDesign/rotate.tcl
manipulateDesign/search_tab.tcl
manipulateDesign/session.tcl
manipulateDesign/gl85-example.session
- Example
-
demo/spice/gl85.sp
Manually Rename Objects
Extend the Popup menu with a Rename
entry that allows for renaming of
the selected object.
Warning: bad names (e.g. empty names, names of an existing objects, names containing hierarchy separators) may result in an invalid data base.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Mark Nets Without Parasitic Info
Mark all nets without parasitic info.
- Plugin
-
- Section
- Files
- Example
-
demo/dspf/example.dspf
Merge Serial Verilog Resistors
Replace all modules matching any of the given name patterns in the provided side file as a resistor device. Then merge all serial resistor devices.
- Plugin
-
- Section
- Files
- Example
-
demo/api/cust27/mergeSerialVeriRes.v demo/api/cust27/mergeSerialVeriRes.txt
Move R/C Objects
Scan the database for top level R/C objects with a period (.) in a connected node name and move that object down the hierarchy to the path specified in the node name.
- Section
- Files
- Example
-
demo/api/cust5/example.sp
NanoTime
Parse a NanoTime report file and display all paths in a custom widget. Timing values are annotated in the schematic view. Individual paths can be displayed in the Cone window.
Usage:
After loading a NanoTime report, the tab 'NanoTime' shows the original report file, as well as the list of report items found in the file. Clicking a report item scrolls the report file to the corresponding position and highlights the path nodes of the report item.
The button 'Load Cone' loads the path nodes of the selected report item into StarVision’s/SpiceVision’s 'Cone window'. You can annotate the path with attribute values by checking some check boxes in the 'Show' section.
The button 'Load Mem' loads the path nodes into the 'Mem window'.
Checking 'Show Only Violating Items' updates the items list to only show report items which violate slack constraints; unchecking it will display all items.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Navigate Hierarchy
Extend the Popup menu to traverse the design hierarchy.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Next Connected Device
Extend the popup menu with the option to load the next connected device in the Cone window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/asiclib.sp
ObfuscateVerilog
Obfuscates all names of the loaded design and writes Verilog code to obfuscated directory structure. Generates obfuscated filesets and an corresponding map to reverse the obfuscation (e.g. in a NanoTime report).
- Plugin
-
- Section
- Files
-
obfuscate/obfuscate.tcl
obfuscate/obfuscatedNanoTimeReport_aquarius.rpt
obfuscate/hash.tcl
obfuscate/keywords.tcl
- Example
-
demo/rtl/aquarius/aquarius.f
Open Socket Connection
This Userware example script establishes a socket connection between *Vision PRO (server) and an arbitrary Tcl-based application, e.g. tclsh (client). This file contains the code for both sides, the server and the client side.
Try it out: Source this file into a *Vision PRO tool AND into a standard "tclsh" and type commands at the tclsh prompt like
set oid {inst gl85 C1 M2 U2 m10}
set db [sv set db]
set val [sv $db flatattr $oid getMergedValue w]
or
sveval $script
The first executes set db
and $db flatattr $oid getMergedValue w
in the *Vision process and sets the result to the val
variable,
the second executes the contents of the script
variable.
- Section
- Files
Parse NDL Data
Parse NDL files and create zdb. The proprietary netlist format is the gate-level design description language named 'Network Description Language' (NDL) used by LSI.
- Section
- Files
Parse PathMill Reports
Parse a Pathmill report file and load the paths into the Cone window. On click, the values are displayed on the schematic.
Select Pathmill→Open Pathmill File (from main menu) and open the report file.
- Plugin
-
- Section
- Files
-
pathmill/pathmill.tcl
pathmill/compound.out
pathmill/compound.spi
pathmill/gl85.out
- Example
-
demo/spice/gl85.sp
Parse Tab Separated Values
Parse tab-separated-value (TSV) file into zdb database.
b block_type
d bus_name bus_direction
i instance_name block_type
n is_global net_name
p instance_name port_name
where:
b is the block_type/module_name
d is the portbus_name, and its direction (input/output/bidir)
i is the instance_name and the module type of an instance
in module_name
n is the net_name which may be global
p is the port_name on inst_name which connects to the
previous defined net_name. if inst_name is same as
the previous module_name, the nets connects to
interface port.
This is the C implementation of the readTSV.tcl
userware. It is
faster on processing large files but must be compiled be before usage.
- Section
- Files
Parse TSV Files
Parse TSV (tab separated value) files and load the connectivity to zdb.
Parser for a tab-separated-value (TSV) file which looks like this:
b block_type
d bus_name bus_direction
i instance_name block_type
n is_global net_name
p instance_name port_name
where:
b is the module_name
d is the port_name, and its direction (input/output/bidir)
i is the instance_name and the module type of an instance in module_name
n is the net_name which may be global
p is the port_name on an instance which connects to the last
net_name being defined.
The C implementation tsv2zdb.c
of this userware can be used to speed
up the parsing process. The TCL implementation can be adjusted to the
user’s requirements without recompiling.
- Section
- Files
Path to Input
Use the Cone Extraction API to find a path from a given start pin or node to primary input. If a cell contains only transistors then this cell is treated as a leaf cell, because the Cone Extraction cannot trace through transistors.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Path to P/G
Extend the Popup menu to extract a path from a S, D or G pin of a transistor to power and ground. Go through resistors, inductors and D→S or S→D of NMOS or PMOS transistors.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Pattern for Gate Recognition
Add more patterns to the gate recognition code.
- Section
- Files
Permanent Highlight Colors
Demonstrate the usage more highlight colors using permanent highlight.
- Section
- Files
Pin Search And Driver Extraction
Search for hierarchical pins and extract the driver. The menu entry "Search Pins/Search" opens a dialog to search for hierarchical pins. Results are displayed in the "Mem" window. The "Mem" window’s popup menu entry "Search Pins/Extract to Driver" searches for the driver of the selected pin and appends the result to the "Cone" window.
- Plugin
-
- Section
- Files
PrimeTime
Parse a PrimeTime report file and display all paths in a dialog window. Timing values are annotated in the schematic view. Individual paths can be displayed in the Cone window.
Features:
-
one file may have multiple paths (sets of faultlists)
-
one path may have multiple pins
-
for each pin, different attributes may be stored and displayed
-
source pinlist will be displayed
-
parsed pinlist can be loaded to Mem window
-
paths can be loaded into Cone
Note
|
Only one faultlist file may be active the same time. |
- Plugin
-
- Section
- Files
-
primetime/primetime.tcl
primetime/bus85.timing
primetime/bus85_single.timing
- Example
-
demo/verilog/bus85.f
Print Design as PDF
Print each module of the loaded design as a PDF file.
- Section
- Files
- Example
-
demo/spice/adder.sp
Progress Bar Example
Create a progress bar for a long running function.
- Section
- Files
Prune SPF
General purpose script to prune any kind of loaded netlist data.
- Plugin
-
- Section
- Files
- Example
-
demo/dspf/example.dspf
Quartus Link
RTLvision PRO userware to implement a GUI showing the use of
server.tcl
and client.tcl
.
Start Quartus in the background, start a server inside Quartus and connect to this server (RTLvision is the client). Now a Quartus project can be created, the timing netlist can be transferred and the timing paths can be queried from Quartus and visualized in RTLvision.
- Section
- Files
Quartus Link Client
Tcl client for quartus socket server
Important
|
The script 'quartus/server.tcl' is NOT a *Vision Userware. |
It is a Tcl script that can be executed in Altera’s Quartus/TimeQuest tools to evaluate Tcl commands in the Quartus environment. The script 'quartus/client.tcl' is a *Vision Userware and implements the client side.
- Section
- Files
Quartus Link Server
Important
|
The script quartus/server.tcl is NOT a *Vision Userware.
|
It is a Tcl script that can be executed in Altera’s Quartus/TimeQuest
tools to evaluate Tcl commands in the Quartus environment. The script
quartus/client.tcl
is a *Vision Userware and implements the client
side.
Because quartus has no TCL main loop, vwait is used to process incoming data (and freeze gui) until Server:Shutdown is evaluated.
- Section
- Files
Quartus/TimeQuest Netlist Exporter
Transfer the timing netlist from Quartus to a zdb tcl file.
Script that can be executed in TimeQuest to transfer the timing netlist.
Important
|
This script is NOT a *Vision Userware. |
It is a Tcl script that can be executed in Altera’s Quartus/TimeQuest tools to export the netlist for RTLvision PRO as a Tcl Userware file. Run this script as:
quartus_sta -report=getNetlist.tcl <Project>
It will generate the file <Project>.rtlvision.tcl
containing
$db load …
commands. This file can be loaded as a Userware
in RTLvision PRO.
- Section
- Files
Quick Highlight Color Change
Show all highlight colors below the Console window. From there the user can select his favorite color. The visibility of the widget can be toggled from the Userware menu.
- Section
- Files
Re-Create Hierarchy
Re-create the hierarchy structure of a flat design based on the
instance names using $db oper addhier
.
- Section
- Files
- Example
-
demo/verilog/bus85.f
Read a Pinlist from a File and Display the Path
Read a pin list from a side file and load each pin into the Cone window.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/gl85.v
Read ERC Analyzer Report
Parse a AnalyzerReport report file and display all paths in a custom widget.
- Plugin
-
- Section
- Files
Read Fault List
Read a faultlist sidefile and add a colored graphical mark at each pin of the read pinlist.
Input
Hierarchical Verilog netlist and a textfile with pinnames and error types (one per line).
Format of the report file:
O1 testchip_digital.DUT.U418.O UD
O0 testchip_digital.DUT.U418.O UD
I0 testchip_digital.DUT.U1367.I EQ
O0 testchip_digital.DUT.U1366.O EQ
O1 testchip_digital.DUT.U1357.O UD
I1 testchip_digital.DUT.U1357.I UD
First character of first field can be ignored. The second character
of the first field is the type: can be either 0 or 1.
The second field is the hierarchical pin name.
Only lines with UD
(undetected) as the third field are interesting
and should be processed.
Result
Add a colored graphical mark at each pin of the pinlist, e.g. red for pins of type 0 and green for pins of type 1. Blocks in upper hierarchy display two values showing the number of type 0 and type 1 pins inside the hierarchy.
- Section
- Files
- Example
-
demo/verilog/gl85.v
Read Group Information
Read a text file that contains grouped instance information. All instances of a group are loaded into the Memory window and the Cone window.
- Section
- Files
- Example
-
demo/spice/csim90/chip2.sp
Read Side File
Read a sidefile and display the values of the sidefile in the schematic window.
- Section
- Files
Read Voltage Collision Report
Parse a VoltageCollision report file and display all paths in a custom widget.
- Plugin
-
- Section
- Files
Remove All Capacitors
Traverse the database and remove all capacitors.
- Section
- Files
- Example
-
demo/spice/amd2901.sp
Remove All Resistors
Traverse the database and remove all resistors.
- Section
- Files
- Example
-
demo/spice/amd2901.sp
Remove Hierarchy (Oper-Command)
Remove all levels of hierarchy and create a flat version of the loaded
design (using $db oper rmhier
).
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Rename Resistors
Simple example to traverse the DB and rename all resistors primitives and instances.
- Section
- Files
Replace AND-Gates
Replace any two connected and2 gates by one module.
- Section
- Files
- Example
-
demo/verilog/bus85.f
Replace Devices
Extend the Popup menu to replace selected device-type instances by non-device instances to allow for rotation, moving, etc.
- Plugin
-
- Section
- Files
Report All Instance Parameters
Example Tcl script that uses ZDB API commands to extract all instance parameters (default and non-default) and print a report to an output file. The script may get confused by "(* … *)"-style Verilog attributes and parameters with the same name as internal Vision attributes.
Usage: starsh reportAllInstanceParameters.tcl design.zdb report.txt
- Section
- Files
Report Array Information
Example Tcl script that uses ZDB API commands to get information about arrays in the design. Usage: starsh reportArrayInformation.tcl design.zdb report.txt
- Section
- Files
Report Clock Trees
Example Tcl script that uses ZDB API commands to get information about clock domains in a given design and print a report to an output file. Usage: starsh reportClockTrees.tcl design.zdb report.txt
- Section
- Files
Report Constant Nets
Loop over all nets of each module and search for constant values. For the found nets all connected pins are stored in the Mem window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/uar.v
Report Design Hierarchy
Example Tcl script that uses ZDB API commands to get information about the design hierarchy in a given design and print a report to an output file. Usage: starsh reportDesignHierarchy.tcl design.zdb report.txt
- Section
- Files
Report Fan-In Cone
Example Tcl script that uses Zdb API commands to get fanIn cones of a node to a DFF driver. Usage: starsh reportFanInCone.tcl design.zdb report.txt
- Section
- Files
Report Gate Count
Example Tcl script that uses Zdb API commands to extract instance count for hierarchical modules. Usage: starsh reportGateCount.tcl design.zdb report.txt
- Section
- Files
Report Instance Parameters
Example Tcl script that uses ZDB API commands to extract non-default instance parameters and print a report to an output file. Usage: starsh reportInstanceParameters.tcl design.zdb report.txt
- Section
- Files
Report Logic Loop
Example Tcl script that uses Zdb API commands to get logic loops. Usage: starsh reportLogicLoop.tcl design.zdb report.txt
- Section
- Files
Report Related P/G for each I/O
Extract the related power/gnd of all IO signals.
- Plugin
-
- Section
- Files
- Example
-
demo/api/cust27/relatedPGtoIO.sp
Report Signal Information
Example Tcl script that uses ZDB API commands to report all signals with the type (input, output, wire, reg, logic type of every electrical connection, sequential and combinational logic). Usage: starsh reportSignalInformation.tcl design.zdb report.txt
- Section
- Files
Restore Bookmarks
Restore a bookmark file specified on the command line.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Restore Contents of the Mem Window
Open a file saved from the Mem window to restore the contents.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Run ERC Checks
Load the ERC checks. - check01.tcl: Check that the gate pin of a MOSFET device is not connected to a power or ground node.
-
check02.tcl: Detect floating gates at the MOS devices, either directly or through pins of a resistor.
-
check03.tcl: Check for wrong bulk connections.
-
check04.tcl: Forward bias diode between power and ground.
-
check05.tcl: Capacitor like devices between power and ground.
-
check06.tcl: Floating input, power and ground ports.
-
check07.tcl: Cell tie-off.
- Plugin
-
- Section
- Files
-
erc/runerc.tcl
erc/utils.tcl
erc/check01.tcl
erc/check02.tcl
erc/check03.tcl
erc/check04.tcl
erc/check05.tcl
erc/check06.tcl
erc/check07.tcl
erc/check14.tcl
- Example
-
demo/spice/ram2k.sp demo/spice/amd2901.sp
Run ESD Checks
Load the ESD checks.
- Plugin
-
- Section
- Files
-
esd/runesd.tcl
esd/utils.tcl
esd/check01.tcl
esd/check02.tcl
esd/check03.tcl
esd/check04.tcl
esd/check05.tcl
esd/check06.tcl
esd/check07.tcl
esd/check08.tcl
esd/check09.tcl
esd/check10.tcl
- Example
-
demo/api/esd/testcase01.sp demo/api/esd/testcase02.sp demo/api/esd/testcase03.sp demo/api/esd/testcase04.sp demo/api/esd/testcase05.sp demo/api/esd/testcase06.sp demo/api/esd/testcase07.sp demo/api/esd/testcase08.sp demo/api/esd/testcase09.sp demo/api/esd/testcase10.sp
Save and Restore Configured Clocked Cells
This plugin allows you to save manually configured clocked cell information to a text file and restore it from the file.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/gl85.v
Save Cone as Spice
Save Cone as Spice uses spos information at the instances loaded to the Cone window to do a "Copy and Paste" like Spice export. Works only for flat netlist.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Save Design Statistics
Save the design statistic (as displayed in the Tools→Report InstCount
dialog) to a file.
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Save Nets in Cone
Add a main menu entry to save a text file with the names of all nets loaded in the Cone window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Save Selected Symbols
Save a symlib file containing mappings for all cells with a symbol attribute.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/gl85.v
Save/Restore Highlights
Traverse the loaded design database and collect all highlight information. The collected information is stored as an userware file that can be sourced to restore the highlights or loaded via the corresponding menu entry. The stored file contains: 0. Database call command 1. Used highlighting colors 2. List of module-based highlights 3. List of flat highlights 4. Code to import used colors 5. Code to import and create module-based highlights 6. Code to import and create flat highlights 7. If enabled as config option: Load objects of the highlights into the mem window 8. Code to restore highlights
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Save/Restore Rotation and Orientation
Save/Restore the module rotation and pin orientation
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Save/Restore Schematic Layout
Save/Restore the current schematic layout ('preplace' information) to/from a set of files.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Save/Restore Schematic Layout and Highlighting Colors
This script combines: - preplace.tcl: save/restore the current schematic layout - saveHilight.tcl: save/restore highlight information - saveRotation.tcl: save/restore module rotation and pin orientation
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Search for Interconnected Resistors
Search the loaded database to extract lists of interconnected resistors.
- Section
- Files
Search the Analog Waveform Database
Example to parse spice simulation results and to retrieve the contained data.
- Section
- Files
- Example
-
demo/spice/Fig24_30/Fig24_30.sp demo/spice/Fig24_30/Fig24_30.csv
Send Skill Commands To Skill Server
Send skill commands to skill server. Configure host name and port number to match the skill server. The Skill server script needs to be loaded into the Cadence Virtuoso environment.
- Plugin
-
- Section
- Files
Set Custom Settings at Tool Startup
Configure *Vision at startup by setting global settings
.
A mapping between the options in the Preferences dialog and the
corresponding global settings
can be found in
the Preferences dialog section of the reference manual
(doc/manual.html#Dialog).
- Section
- Files
Set Net Value
Extend the Popup menu with functions to set value of selected nets to
0
/1
/X
/Z
or flag them as power
/negpower
/ground
.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Set Preferences
Configure *Vision at startup by setting global settings
.
A mapping between the options in the Preferences dialog and the
corresponding global settings
can be found in
the Preferences dialog section of the reference manual
(doc/manual.html#Dialog).
- Section
- Files
Set Resistors to Value
Traverse the database and set the value of all resistors to 1k.
- Section
- Files
Show All Cells
Add a main menu entry to load an instance of each cell into the Cone window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Show Contents of Liberty
Read the given Liberty file, create a top module and load an instance of each Liberty cell.
Usage:
starvisionpro -userware2 viewLiberty.tcl <LIBERTY_FILE.lib>
- Section
- Files
- Example
-
demo/liberty/gl85.lib
Show Function
Add a main menu entry to toggle the display of the function at each primitive instance.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Show IC Value
Display IC values coming from the .IC
, .DCVOLT
or .NODESET
Spice
commands as net attributes in the schematic view.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/aquarius.sp demo/spice/aquarius.ic
Show Instance Comment Attribute
Show special instance comment attribute ($ICOMMENT
) at MOS devices
created by the Spice parser in the schematic view.
Each instance with this attribute set can be added to the Mem window.
The Spice parser option -icomment
needs to be enabled to get the
$ICOMMENT
attribute at instances.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/multivolt.sp
Show Model Attributes
Add a main menu entry to toggle the display of the model name and all model attributes at each transistor device.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp
Show Multiplier
Add a new display attribute to show the multiplier value as an instance attribute in the schematic view.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/aquarius.sp
Show Parasitic Coupling Connections
Extend the Popup menu in the Parasitic window to show the contributing capacitance of coupled nets.
- Plugin
-
- Section
- Files
Show Parasitic Statistics
Show parasitic statistics in the Console window.
- Plugin
-
- Section
- Files
- Example
-
demo/dspf/example.dspf
Show Selected Net Name
Extend the Popup menu and add a function to show the net name only at the selected nets.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
ShowReport
Read a report file that contains hierarchical net names and display all lines of the input file in a dialog window. Selecting a line of the report file in the dialog will search for the net in the database and goto the object in the GUI.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/parity1.sp
Skill Export
Export the schematic as Skill. SkillExport Userware example: this Userware can be used to export a design as Skill in batch mode, e.g. start SpiceVision with the following commandline options:
spicevisionpro -userware ../demo/api/SkillExport.tcl \
-symlib ../demo/spice/parity1.sym -symlib /path/to/analogLib.sym \
../demo/spice/parity1.sp
The design parity1.sp
is read into the SpiceVision database, all
primitive symbols are mapped as specified in the spice lines of your
symbol library analogLib.sym
. All sub-circuit symbols are mapped from
demo/spice/parity1.sym
. If you don’t know how to create your symbol
library (analogLib.sym) and how to map the symbols, then please refer
to the doc/skillExportTutorial.html
.
After the Skill file is written SpiceVision will quit.
- Section
- Files
- Example
-
demo/spice/parity1.sp demo/spice/parity1.sym
Socket Server for Virtuoso
Socket Server started from skillServer.il
This file should be installed in the same directory as skillServer.il and needs execute permission
It needs path access to a working tclsh interpreter.
- Section
- Files
Stripped-Down BUS85
Stripped-down version of bus85.tcl
Stripped down by:
$db foreach module m {
if {[$db refCount $m] == 0} {
puts $m
}
}
- Section
- Files
Switch Cell Representation
Provide different views for insts. Requires the design to be read with '-resolveDuplicates off' which automatically rename the cells and set the required attributes for this plugin.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f demo/spice/aquarius.sp demo/spice/aquarius.sym
Synchronize the Analog Waveform with the Digital Waveform
Opens a Waveform window and an Analog Waveform window below on Init. A zoom operation in the Waveform window will trigger the same zoom operation in the current plot of the Analog Waveform window. Setting a cursor in the Waveform window will add a cursor at the same time in the current plot of the Analog Waveform window.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/gl85.sp demo/spice/gl85.tr0 demo/vcd/gl85.vcd
Tempus Timing Report
Parse a Tempus report file and display all paths in a custom window. Timing values are annotated in the schematic view. Individual paths can be displayed in the Cone window.
- Plugin
-
- Section
- Files
- Example
-
demo/verilog/bus85.f
TimeQuest Export Tool
Get STA timing report from TimeQuest.
Important
|
This script is NOT a RTLvision PRO Userware. |
It is a Tcl script that can be executed in Altera’s TimeQuest tool to generate an Userware to visualize timing paths.
Run this script as:
quartus_sta -report=sta_report.tcl <Project>
It will generate the file <Project>.rtlvision.tcl
that can be loaded
as a Userware in conjunction with the PathVision Userware.
- Section
- Files
Toggle Bitblasted
Extend the Popup menu with a Toggle Bitblasted
entry that allows for
exchanging buses in the selected instances by bitblasted nets, and
vice versa.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Top Capacitance Nets
Report the top total capacitance nets in the design.
- Plugin
-
- Section
- Files
- Example
-
demo/dspf/example.dspf
Trace Cell
Find all possible paths from all primary input ports of all loaded modules to all internal nodes and to all primary output ports. Also find paths from all internal nodes to all primary output ports. The result can be visualized in the Cone window and in addition it is written to an ASCII file.
- Section
- Files
Trace Path to File
Userware script that reads in a configuration file containing names of start net/nodes and target cells. Search paths between the start net and the target cell and dump this path into an output file.
- Section
- Files
Trace Through Cells
Flag cells as feed through cells. A double click in the Cone window will go through these cells.
- Section
- Files
- Example
-
demo/verilog/bus85.f
Transistor Cone Extraction
Do a special cone extraction on a transistor netlist.
- Section
- Files
- Example
-
demo/spice/gl85.sp
Transistor Device Statistics
Report all the unique combinations for L and W in the design to gain insight into how many different combinations of L and W transistors exist in the design and where the different combinations are in the hcells.
- Plugin
-
- Section
- Files
Transistor Example
Small transistor example from demo/spice/csim90
.
- Section
- Files
Unbundle Liberty Cells
Remove bundle information from Liberty cells.
- Section
- Files
Unfold Hierarchy in Schem
Unfold the visible hierarchy modules in the Schem window.
- Plugin
-
- Section
- Files
- Example
-
demo/rtl/aquarius/aquarius.f
Update Diodes Width and Height Parameters
Update all diode instances and add the width and height parameters according to the area and perimeter parameters.
- Plugin
-
- Section
- Files
Use Graphical Marks
Demonstrate the usage of attributes and graphical marks.
- Section
- Files
Voltage Zones
Highlight power nets with different names or different voltage values in a different color.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/multivolt.sp
Wrap Top Modules
Add a main menu entry to create a wrapper module that instantiates all top cells in an artificial new top module.
- Plugin
-
- Section
- Files
- Example
-
demo/spice/asiclib.sp