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 File  Load Userware 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 call gui 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 Plugins icon icon.

Cds

Pcb

Analyze the Loaded Database

calculateArea.tcl Plugins icon

Calculate Area

cCoupling.tcl Plugins icon

Coupling Capacitors

cdcExample.tcl

CDC Example

checkDeviceModel.tcl Plugins icon

Check Device Model

clockTree.tcl Plugins icon

Clock Tree Extraction

configCGC.tcl

Identify Clock Gates

configureClockedCells.tcl

Configure Clocked Cells

createUnisimSymbols.tcl Plugins icon

Create UNISIM Symbols

cust1/heavyR.tcl

Find Defined Resistors

cust1/patternSearch.tcl

Search for Interconnected Resistors

cust11/hireconvlogic.tcl

Find Reconvergent Logic

cust13/pathToIP.tcl

Find Paths to IP Blocks

cust14/hi2lo.tcl Plugins icon

Check Voltage Zones

cust22/checkOneLoad.tcl Plugins icon

Check Connectivity to IP Cells

cust22/directlyConnectedFlops.tcl

Detect Cells Directly Connected to Input

cust22/directlyConnectedFlops2.tcl

Detect Cells Directly Connected to Input 2

cust24/clockedWithoutReset.tcl Plugins icon

Find Clocked Cells Without Reset

cust27/colorNets.tcl Plugins icon

Color Nets

cust27/duplicateSubckt.tcl Plugins icon

Find Duplicate Sub-Circuits

cust27/relatedPGtoIO.tcl Plugins icon

Report Related P/G for each I/O

cust32/transistorStatistics.tcl Plugins icon

Transistor Device Statistics

cust35/pinSearch.tcl Plugins icon

Pin Search And Driver Extraction

cust35/switchCell.tcl Plugins icon

Switch Cell Representation

cust36/histogram.tcl Plugins icon

Histogram of W/L

deviceStatistics.tcl Plugins icon

Compute and Display Device Statistics

erc/runerc.tcl Plugins icon

Run ERC Checks

esd/runesd.tcl Plugins icon

Run ESD Checks

expandConnectivity.tcl Plugins icon

Expand Connectivity

findBlackbox.tcl Plugins icon

Find Blackboxes

findGuessedSupplyNets.tcl Plugins icon

Find Guessed Supply Nets

flatfloatNodes.tcl Plugins icon

Find Flat Floating Nodes

floatingGate.tcl Plugins icon

Find Floating Gates

floatingInputs.tcl Plugins icon

Find Floating Inputs

floatingNets.tcl Plugins icon

Find Floating Members in NetBuses

floatingNodes.tcl Plugins icon

Find Floating Nodes

floatingOutputs.tcl Plugins icon

Find Floating Outputs

heavyCR.tcl Plugins icon

Find Heavy Cs and Rs

heavyCRt.tcl Plugins icon

Find Heavy Cs and Rs (Tree-Based)

heavyNodes.tcl Plugins icon

Find Heavy Signals

hierarchyStatistics.tcl Plugins icon

Compute and Display Hierarchy Statistics

libertyArea.tcl Plugins icon

Liberty Area

listIP.tcl

Find IP Modules

multiDriverCheck.tcl Plugins icon

Check for Multiple Drivers

parasitic/debugSPEF.tcl Plugins icon

Debug SPEF

parasitic/filterParasitics.tcl Plugins icon

Filter Parasitic Elements

parasitic/linkToLayout.tcl Plugins icon

Link to Layout

parasitic/markNets.tcl Plugins icon

Mark Nets Without Parasitic Info

parasitic/parasiticStatistics.tcl Plugins icon

Show Parasitic Statistics

parasitic/pinToPinRes.tcl Plugins icon

Calculate the Pin-to-Pin Resistance

parasitic/showContributingCap.tcl Plugins icon

Show Parasitic Coupling Connections

parasitic/topCapNets.tcl Plugins icon

Top Capacitance Nets

parasitic/undriven.tcl

Find Parasitic Nets With No Driver

pathBetweenModules.tcl

Find Path Between Modules

reportConstantNets.tcl Plugins icon

Report Constant Nets

saveSelectedSymbols.tcl Plugins icon

Save Selected Symbols

showAllSDFInst.tcl Plugins icon

Find Insts Without SDF Info

wrongBulk.tcl

Check for Wrong Bulks

zeroDriverCheck.tcl Plugins icon

Check for Zero Drivers

Read Side Files and Annotate Data

Modify the Loaded Database

GUI Specific Userware Examples

Create Reports

Miscellaneous Userware Examples

analogWave/create_attributes_for_dc.tcl

Create Attributes for DC

analogWave/create_attributes_for_rc.tcl

Highlight for RC

analogWave/create_attributes_for_tran.tcl

Create Attributes for Transient

analogWave/create_attributes_for_voltage.tcl

Highlight for Voltage

analogWave/highlight_for_dc.tcl

Highlight for DC

analogWave/highlight_for_tran.tcl

Highlight for Transient

analogWave/print_functions.tcl

Functions to Print Data from the Analog Wave Database

analogWave/search.tcl

Search the Analog Waveform Database

analogWave/waveform_parser.tcl

Access the Analog Waveform Parser

batchExportSchematics.tcl

Headless Schematic Export

binlibExport.tcl

Export Binlib as TCL

binlibImport.tcl

Import Binlib from TCL

calculateNewWidth.tcl Plugins icon

Calculate New Width

commentGraphic.tcl Plugins icon

Annotate Cone

comments.tcl Plugins icon

Edit And Show Comments

coneKeepSelected.tcl Plugins icon

Keep Selected Cone Objects

coneStatus.tcl Plugins icon

Cone Status

configureMOSDisplayAttributes.tcl

Configure Attributes At MOS Devices

coupled.tcl Plugins icon

Coupled Elements

cust9/fpga-symbols.tcl Plugins icon

FPGA Symbols

cust11/extractCone2.tcl

Transistor Cone Extraction

cust13/traceThrough.tcl

Trace Through Cells

cust15/additionalCDC.tcl

Do CDC Checks

cust22/exportNetlistBatch.tcl

Batch Netlist Export

cust22/exportSkill.tcl

Automatically Map Symbols and Run Skill Export

cust22/saveView.tcl

Save/Restore Schematic Layout and Highlighting Colors

cust26/displayVoltage.tcl Plugins icon

Display Voltage

cust30/showLibertyTiming.tcl Plugins icon

Cross-Probe To Liberty Sources

cust32/hierGen.tcl Plugins icon

Hierarchical Netlist Generation

cust33/compileDesign.tcl

Compile a Design

cust34/displayComment.tcl Plugins icon

Display Comments

cust34/highlightNodes.tcl Plugins icon

Highlight Nodes

cust38/excludeCell.tcl

Exclude Cells from the Cone Extraction

cust41/connectPG.tcl Plugins icon

Connect Pin to a PG Net

cust41/readPinList.tcl Plugins icon

Read a Pinlist from a File and Display the Path

cust44/forceSymbol.tcl

Force Symbol

cust44/unbundleCells.tcl

Unbundle Liberty Cells

demoPlugin.tcl Plugins icon

Demo Plugin

Diff/diff.tcl Plugins icon

Compute Differences

Diff/diff_nogui.tcl

DB Diff (Batch Mode Version)

exportMangled/exportMangled.tcl Plugins icon

Export Mangled/Obfuscated Netlist

extractCone.tcl

Cone Extraction Example

findInst.tcl

Find Transistor Devices by Name

getSymbol.tcl

Get Symbol String for Built-In Shapes

hierarchyOverview.tcl Plugins icon

Hierarchy Overview

highlightDevices.tcl Plugins icon

Highlight Devices

highlightPulldown.tcl Plugins icon

Highlight Pulldown

highlightsToCone.tcl Plugins icon

Load/Append Highlighted Objects into the Cone Window

hireddev.tcl Plugins icon

Highlight Reduced Devices

ignoreDevice.tcl Plugins icon

Ignore Devices

loadMembers.tcl Plugins icon

Load Members

logicCloud.tcl

Extract Clocked Elements

longPath.tcl

Find Longest Path

mkSym.tcl

Assign Symbols

navigateHier.tcl Plugins icon

Navigate Hierarchy

nextConnectedDevice.tcl Plugins icon

Next Connected Device

obfuscate/obfuscate.tcl Plugins icon

ObfuscateVerilog

oem/dummySpos.tcl

Add Source Code Highlight

oem/socket.tcl

Open Socket Connection

parasitic/createSpiceNetlist.tcl

Generate Spice From Parasitic

pathToInput.tcl Plugins icon

Path to Input

pathToPG.tcl Plugins icon

Path to P/G

permanentHighlight.tcl

Permanent Highlight Colors

preplace.tcl Plugins icon

Save/Restore Schematic Layout

readBookmark.tcl

Restore Bookmarks

recognizeGate.tcl

Pattern for Gate Recognition

restoreMem.tcl Plugins icon

Restore Contents of the Mem Window

saveConeAsSpice.tcl

Save Cone as Spice

saveNetsInCone.tcl Plugins icon

Save Nets in Cone

saveRestoreClockedCells.tcl Plugins icon

Save and Restore Configured Clocked Cells

saveRotation.tcl Plugins icon

Save/Restore Rotation and Orientation

showAllCells.tcl Plugins icon

Show All Cells

showFunc.tcl Plugins icon

Show Function

showICValues.tcl Plugins icon

Show IC Value

showInstComment.tcl Plugins icon

Show Instance Comment Attribute

showModelAttributes.tcl Plugins icon

Show Model Attributes

showMultiplier.tcl Plugins icon

Show Multiplier

showNetName.tcl Plugins icon

Show Selected Net Name

skill/skillClient.tcl Plugins icon

Send Skill Commands To Skill Server

skill/skillServer.tcl

Socket Server for Virtuoso

SkillExport.tcl

Skill Export

SkillExportBatch.tcl

Batch Skill Export

slib2skill.tcl

Convert Slib To Zdb And Show All Symbols

viewLiberty.tcl

Show Contents of Liberty

voltageZones.tcl Plugins icon

Voltage Zones

waveSync.tcl Plugins icon

Synchronize the Analog Waveform with the Digital Waveform

writeEDIF.tcl

Export Schematic as EDIF

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

Miscellaneous Userware Examples

Files

analogWave/waveform_parser.tcl

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

Plugin icon

Section

GUI Specific Userware Examples

Files

addDirectConnections.tcl

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

Miscellaneous Userware Examples

Files

oem/dummySpos.tcl

Example

demo/rtl/aquarius/aquarius.f


Adder Example (Transistor Level)

Small transistor example.


Additional Information in Device Name

Update the displayed name of all modules to show additional information.


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.


Analyze RC Networks

Report the top 5 resistance values in the selected RC network. Usage:

  1. Add the signals (turn on "Signal Mode") to investigate into the Mem window (e.g. by Drag&Drop).

  2. Invoke the "Top 5 Resistors" menu entry to run the analysis.

    Plugin

    Plugin icon

    Section

    Create Reports

    Files

    parasitic/analyzeRC.tcl

    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

Plugin icon

Section

Miscellaneous Userware Examples

Files

commentGraphic.tcl

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.


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.


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.

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>

Beautify Schematics

Call post process operators to beautify the schematic.

Section

Modify the Loaded Database

Files

operpp.tcl

Example

demo/rtl/aquarius/aquarius.f


BrowseCdsLib

Display the contents of a Cadence cds.lib file.

Plugin

Plugin icon

Section

Cds

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.


BUS85 Example (Gate Level)

Use this userware to load the bus85.tcl without transistors.


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.


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

Plugin icon

Section

Analyze the Loaded Database

Files

calculateArea.tcl

Example

demo/spice/alu8bit.sp


Calculate New Width

Calculate new width based on the product of m and w.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

calculateNewWidth.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

parasitic/pinToPinRes.tcl

Example

demo/dspf/example.dspf


CDC Example

Userware example for the ClockTree API. Do additional CDC checks.


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.


Check Device Model

Find and highlight io devices matching the given model name pattern.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

checkDeviceModel.tcl

Example

demo/spice/multivolt.sp


Check for Multiple Drivers

Loop over all signals and check if a signal has more than one driver.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

multiDriverCheck.tcl

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

Analyze the Loaded Database

Files

wrongBulk.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

zeroDriverCheck.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

cust14/hi2lo.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

clockTree.tcl

Example

demo/rtl/aquarius/aquarius.f


Collect Statistics

Traverse Design and collect statistics.


Color Nets

Color nets in the loaded database.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

cust27/colorNets.tcl

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.


Compute and Display Device Statistics

Compute and display statistics about the devices used in the design.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

deviceStatistics.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

hierarchyStatistics.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

Diff/diff.tcl
Diff/diff_common.tcl

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

Miscellaneous Userware Examples

Files

extractCone.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

coneStatus.tcl

Example

demo/rtl/aquarius/aquarius.f


Configure Attributes At MOS Devices

Configure which attributes are displayed at *MOS devices.

Section

Miscellaneous Userware Examples

Files

configureMOSDisplayAttributes.tcl

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

Analyze the Loaded Database

Files

configureClockedCells.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

cust41/connectPG.tcl

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.


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

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

coupled.tcl

Example

demo/spice/examples.sp


Coupling Capacitors

Report coupling Cs in the Mem window.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

cCoupling.tcl

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.


Create And Use Oids Via C-Level API

Create and use OIDs the C-Level API.


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

    Miscellaneous Userware Examples

    Files

    analogWave/create_attributes_for_dc.tcl

    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

    Miscellaneous Userware Examples

    Files

    analogWave/create_attributes_for_tran.tcl

    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.


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:

  1. Look through the BASIC OPTIONS in this createOverview.tcl file. If necessary, edit and save it.

  2. Have this tcl file together with the included file htmlFormat.tcl (or txtFormat.tcl) stored in one directory.

  3. Open a verilog design in StarVision PRO.

  4. Click Menu-File-LoadUserware and navigate to createOverview.tcl from 2.

  5. The createOverview.tcl script will create the depicted html (or txt) files in the specified $outDir. Start browsing with index.html.


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

Create Reports

Files

cust3/printSpice.tcl

Example

demo/spice/adder.sp


Create Instance’s Attribute List

Print all attributes of all instances to a text file.

Plugin

Plugin icon

Section

Create Reports

Files

extractParam.tcl

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

Plugin icon

Section

Create Reports

Files

cust12/nomenclature.tcl

Example

demo/rtl/aquarius/aquarius.f


Create Port- and NetBuses

Create portbuses and netbuses from single bit ports and nets.

Section

Modify the Loaded Database

Files

makeBuses2.tcl

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

Modify the Loaded Database

Files

makeBuses.tcl

Example

demo/spice/gl85.sp


Create Quartus Project

This script can be used to create a Quartus project.


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.


Create Top Block

Create a new top block around all instances in the old top.

Plugin

Plugin icon

Section

Modify the Loaded Database

Files

cust28/createTopBlock.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

createUnisimSymbols.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

cust30/showLibertyTiming.tcl

Example

demo/api/cust4/example.lib demo/api/cust4/example.v


CSIM90 Example

API example of demo/spice/csim90 spice files.


Custom Key Binding

This Userware binds a special hotkey to toggle the visibility of all netnames.


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

GUI Specific Userware Examples

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

Plugin icon

Section

Analyze the Loaded Database

Files

parasitic/debugSPEF.tcl

Example

demo/spef/uart_layout.spef


Delete NetBuses

Delete all netBus information in the loaded database.

Plugin

Plugin icon

Section

Modify the Loaded Database

Files

deleteBuses.tcl

Example

demo/rtl/aquarius/aquarius.f


Delete Objects

Extend the Popup menu to delete selected objects from the loaded database.

Plugin

Plugin icon

Section

Modify the Loaded Database

Files

deleteObjects.tcl

Example

demo/rtl/aquarius/aquarius.f


Demo for API Tutorial

Extend the Popup menu to show all connections of a net/signal.

Section

GUI Specific Userware Examples

Files

customPopup.tcl

Example

demo/spice/gl85.sp


Demo Plugin

A demo plugin to demonstrate all features of the plugin API:

  1. Register a callback function to change the display attributes on each database reload.

  2. Add a menu item to print all module names to demo GUI modifications.

  3. Add some configuration options for the plugin.

    Plugin

    Plugin icon

    Section

    Miscellaneous Userware Examples

    Files

    demoPlugin.tcl

    Example

    demo/rtl/aquarius/aquarius.f


Design Histogram

Display a "Design Histogram" of the loaded design database.

Plugin

Plugin icon

Section

Create Reports

Files

cust27/designHistogram.tcl

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).


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

Plugin icon

Section

Miscellaneous Userware Examples

Files

cust34/displayComment.tcl

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.


Display Voltage

Display the voltages in the given file at the nets.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

cust26/displayVoltage.tcl
cust26/ram2k.ic

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.


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


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

Plugin icon

Section

Create Reports

Files

dumpHier.tcl

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

Plugin icon

Section

Create Reports

Files

dumpIO.tcl

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.


Edit and Export W/L Attributes

Change all W/L attributes and update the Spice file.

Section

Modify the Loaded Database

Files

cust7/editWL.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

comments.tcl

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

Modify the Loaded Database

Files

eco.tcl

Example

demo/verilog/gl85.v


ERC Cockpit

Add various ERC checks to the main menu.

Section

GUI Specific Userware Examples

Files

ERC_Cockpit.tcl

Example

demo/spice/amd2901.sp


ERC Usage Example

Usage example for ERC:check02 "Floating Gates".


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.


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.


Example for Debug Messages

Message and debug C-Level API.


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.


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.


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

Plugin icon

Section

Analyze the Loaded Database

Files

expandConnectivity.tcl

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

Plugin icon

Section

GUI Specific Userware Examples

Files

cust22/coneExpandOneLogicLevel.tcl

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

Export Mangled/Obfuscated Netlist

Export a mangled/obfuscated version (stripped attributes, replaced names) of the currently displayed module or the whole database.


Export Quartus DB as TCL

This script contains procedures to query netlist information from the Quartus database and writes out $db load …​ statements.


Export Schematic as EDIF

Export the schematic as EDIF.

Section

Miscellaneous Userware Examples

Files

writeEDIF.tcl

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

Miscellaneous Userware Examples

Files

logicCloud.tcl

Example

demo/rtl/aquarius/aquarius.f


Extract Path

Extract a path using the C-Level API.


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.


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:

  1. Remove all the resistors or capacitors from a selected net in the RC window (NOT from the entire database).

  2. Merge series resistors or parallel capacitors of a selected net.

  3. Filter resistors or capacitors below a specified threshold value of a selected net.

    Plugin

    Plugin icon

    Section

    Analyze the Loaded Database

    Files

    parasitic/filterParasitics.tcl

    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

Plugin icon

Section

Analyze the Loaded Database

Files

findBlackbox.tcl

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.


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

Analyze the Loaded Database

Files

cust1/heavyR.tcl

Example

demo/spice/amd2901.sp


Find Duplicate Sub-Circuits

Find duplicate sub-circuits loaded from a SPICE netlist.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

cust27/duplicateSubckt.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

flatfloatNodes.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

floatingGate.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

floatingInputs.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

floatingNets.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

floatingNodes.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

floatingOutputs.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

findGuessedSupplyNets.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

heavyCR.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

heavyCRt.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

heavyNodes.tcl

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

Plugin icon

Section

Analyze the Loaded Database

Files

showAllSDFInst.tcl

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.


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

    Miscellaneous Userware Examples

    Files

    longPath.tcl

    Example

    demo/rtl/aquarius/aquarius.f


Find Parasitic Nets With No Driver

Find parasitic nets with no driver. A driver is either:


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

Analyze the Loaded Database

Files

pathBetweenModules.tcl

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

Create Reports

Files

cust11/flopsAtIP.tcl

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).


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

Modify the Loaded Database

Files

setPG.tcl

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

Analyze the Loaded Database

Files

cust11/hireconvlogic.tcl

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

Miscellaneous Userware Examples

Files

findInst.tcl

Example

demo/spice/gl85.sp


Fix Bus Characters

Rename net objects to follow the Cadence Virtuoso bus naming semantic.

Section

Modify the Loaded Database

Files

fixSkillBusChars.tcl

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

Modify the Loaded Database

Files

fixSkillNamespace.tcl

Example

demo/spice/buf.sp


Flag Leaf Cells

Flag all modules listed in the provided side file as a leaf cell.

Plugin

Plugin icon

Section

Modify the Loaded Database

Files

flagLeafCells.tcl

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

Modify the Loaded Database

Files

cust11/flatModule.tcl

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


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.


Force Symbol

Overwrite existing cell symbols with symbols in the specified symbol library file.


FPGA Symbols

Create nice symbol shapes for all LUT cells.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

cust9/fpga-symbols.tcl

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

Plugin icon

Section

Read Side Files and Annotate Data

Files

fsm.tcl

Example

demo/rtl/wb_sys/conmax_top.f


Functions to Print Data from the Analog Wave Database

Functions to print parsed data.

Section

Miscellaneous Userware Examples

Files

analogWave/print_functions.tcl

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.


Group Cone Content

Group the contents of the Cone window into an artificial hierarchy.

Plugin

Plugin icon

Section

GUI Specific Userware Examples

Files

groupCone.tcl

Example

demo/rtl/aquarius/aquarius.f


Group Connected And Gates

Create artificial hierarchy around any two connected and2 gates in the database.

Section

Modify the Loaded Database

Files

groupAnd.tcl

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>

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.


Hierarchy Overview

Add a main menu entry to load all hierarchical instances into the Cone window.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

hierarchyOverview.tcl

Example

demo/rtl/aquarius/aquarius.f


Highlight and Annotate Timing Values

Userware example to highlight objects and annotate timing values.


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

Plugin icon

Section

Miscellaneous Userware Examples

Files

highlightDevices.tcl

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

    Miscellaneous Userware Examples

    Files

    analogWave/highlight_for_dc.tcl

    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

    Miscellaneous Userware Examples

    Files

    analogWave/create_attributes_for_rc.tcl

    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

    Miscellaneous Userware Examples

    Files

    analogWave/highlight_for_tran.tcl

    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

    Miscellaneous Userware Examples

    Files

    analogWave/create_attributes_for_voltage.tcl

    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

Plugin icon

Section

Miscellaneous Userware Examples

Files

cust34/highlightNodes.tcl
cust34/report.txt

Example

demo/spice/adder.sp


Highlight Pulldown

Loop over the loaded database and highlight all pulldown devices and nets.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

highlightPulldown.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

hireddev.tcl

Example

demo/spice/asiclib.sp


Histogram of W/L

Create a histogram of all W/L values in the database.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

cust36/histogram.tcl

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.


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

Plugin icon

Section

Miscellaneous Userware Examples

Files

ignoreDevice.tcl

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

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}"


Import Synplicity Project

Insert a Userware menu to import Synplicity project 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.


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


Initialize Customization

Customize *Vision at startup by loading multiple scripts.


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

Plugin icon

Section

Miscellaneous Userware Examples

Files

coneKeepSelected.tcl

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.


Link the Parasitic view with a Layout viewer.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

parasitic/linkToLayout.tcl

Example

demo/dspf/example.dspf


Load FastScan Report

Parse a FastScan report file and display a pin list.


Load HyperFault Logfile

Parse and display a HyperFault report or log file.

Plugin

Plugin icon

Section

Read Side Files and Annotate Data

Files

hyperfault/hyperfault_log.tcl
hyperfault/bus85.flt

Example

demo/verilog/bus85.f demo/verilog/bus85.sym


Load HyperFault Report

Parse and display a HyperFault report or log file.


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

Plugin icon

Section

Miscellaneous Userware Examples

Files

loadMembers.tcl

Example

demo/rtl/aquarius/aquarius.f


Load NAND

Basic transistor example.


Load PMOS Example

Another transistor example.


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.


Lump RC Modules

Merges parallel and serial transistors and resistors of parasitic networks.

Plugin

Plugin icon

Section

Modify the Loaded Database

Files

parasitic/lump.tcl

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

Plugin icon

Section

Modify the Loaded Database

Files

lutSymbols.tcl

Example

demo/edif/pulpino.edf


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

Plugin icon

Section

Modify the Loaded Database

Files

renameObj.tcl

Example

demo/rtl/aquarius/aquarius.f


Mark Nets Without Parasitic Info

Mark all nets without parasitic info.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

parasitic/markNets.tcl

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

Plugin icon

Section

Modify the Loaded Database

Files

cust27/mergeSerialVeriRes.tcl

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

Modify the Loaded Database

Files

cust5/postProcess.tcl

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

Plugin icon

Section

Read Side Files and Annotate Data

Files

nanotime/nanotime.tcl
nanotime/gl85.rpt

Example

demo/spice/gl85.sp


Navigate Hierarchy

Extend the Popup menu to traverse the design hierarchy.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

navigateHier.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

nextConnectedDevice.tcl

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).


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.


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.


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.


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.


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.


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

Plugin icon

Section

Miscellaneous Userware Examples

Files

pathToInput.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

pathToPG.tcl

Example

demo/spice/gl85.sp


Pattern for Gate Recognition

Add more patterns to the gate recognition code.


Permanent Highlight Colors

Demonstrate the usage more highlight colors using permanent highlight.


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.


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.

Print Design as PDF

Print each module of the loaded design as a PDF file.

Section

Create Reports

Files

cust3/printPDF.tcl

Example

demo/spice/adder.sp


Progress Bar Example

Create a progress bar for a long running function.


Prune SPF

General purpose script to prune any kind of loaded netlist data.

Plugin

Plugin icon

Section

Modify the Loaded Database

Files

parasitic/pruneSPF.tcl

Example

demo/dspf/example.dspf


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.


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.


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.


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.


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.


Re-Create Hierarchy

Re-create the hierarchy structure of a flat design based on the instance names using $db oper addhier.

Section

Modify the Loaded Database

Files

createHier.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

cust41/readPinList.tcl

Example

demo/verilog/gl85.v


Read ERC Analyzer Report

Parse a AnalyzerReport report file and display all paths in a custom widget.


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

Read Side Files and Annotate Data

Files

cust10/faultVisu.tcl
cust10/faultlist

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

Read Side Files and Annotate Data

Files

cust2/showInstGroups.tcl
cust2/input_file.txt

Example

demo/spice/csim90/chip2.sp


Read Side File

Read a sidefile and display the values of the sidefile in the schematic window.


Read Voltage Collision Report

Parse a VoltageCollision report file and display all paths in a custom widget.


Remove All Capacitors

Traverse the database and remove all capacitors.

Section

Modify the Loaded Database

Files

cust1/rmAllCapacitors.tcl

Example

demo/spice/amd2901.sp


Remove All Resistors

Traverse the database and remove all resistors.

Section

Modify the Loaded Database

Files

cust1/rmAllResistors.tcl

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

Modify the Loaded Database

Files

removeHierarchy.tcl

Example

demo/rtl/aquarius/aquarius.f


Rename Resistors

Simple example to traverse the DB and rename all resistors primitives and instances.


Replace AND-Gates

Replace any two connected and2 gates by one module.

Section

Modify the Loaded Database

Files

replaceAnd.tcl

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.


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


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


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


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

Plugin icon

Section

Analyze the Loaded Database

Files

reportConstantNets.tcl

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


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


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


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


Report Logic Loop

Example Tcl script that uses Zdb API commands to get logic loops. Usage: starsh reportLogicLoop.tcl design.zdb report.txt


Extract the related power/gnd of all IO signals.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

cust27/relatedPGtoIO.tcl

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


Restore Bookmarks

Restore a bookmark file specified on the command line.

Section

Miscellaneous Userware Examples

Files

readBookmark.tcl
aquarius.bm

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

restoreMem.tcl

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.


Run ESD Checks

Load the ESD checks.

Plugin

Plugin icon

Section

Analyze the Loaded Database

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

saveRestoreClockedCells.tcl

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

Miscellaneous Userware Examples

Files

saveConeAsSpice.tcl

Example

demo/spice/gl85.sp


Save Design Statistics

Save the design statistic (as displayed in the Tools→Report InstCount dialog) to a file.

Section

Create Reports

Files

saveInstCount.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

saveNetsInCone.tcl

Example

demo/rtl/aquarius/aquarius.f


Save Selected Symbols

Save a symlib file containing mappings for all cells with a symbol attribute.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

saveSelectedSymbols.tcl

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

Plugin icon

Section

Create Reports

Files

saveHilight.tcl

Example

demo/rtl/aquarius/aquarius.f


Save/Restore Rotation and Orientation

Save/Restore the module rotation and pin orientation

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

saveRotation.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

preplace.tcl

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

Miscellaneous Userware Examples

Files

cust22/saveView.tcl

Example

demo/rtl/aquarius/aquarius.f


Search for Interconnected Resistors

Search the loaded database to extract lists of interconnected resistors.


Search the Analog Waveform Database

Example to parse spice simulation results and to retrieve the contained data.

Section

Miscellaneous Userware Examples

Files

analogWave/search.tcl

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.


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).


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

Plugin icon

Section

Modify the Loaded Database

Files

setNetValue.tcl

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).


Set Resistors to Value

Traverse the database and set the value of all resistors to 1k.


Show All Cells

Add a main menu entry to load an instance of each cell into the Cone window.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

showAllCells.tcl

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

Miscellaneous Userware Examples

Files

viewLiberty.tcl

Example

demo/liberty/gl85.lib


Show Function

Add a main menu entry to toggle the display of the function at each primitive instance.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

showFunc.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

showICValues.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

showInstComment.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

showModelAttributes.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

showMultiplier.tcl

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.


Show Parasitic Statistics

Show parasitic statistics in the Console window.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

parasitic/parasiticStatistics.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

showNetName.tcl

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

Plugin icon

Section

Read Side Files and Annotate Data

Files

cust26/showReport.tcl
cust26/showReport.txt

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

Miscellaneous Userware Examples

Files

SkillExport.tcl

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.


Stripped-Down BUS85

Stripped-down version of bus85.tcl

Stripped down by:

$db foreach module m {
    if {[$db refCount $m] == 0} {
        puts $m
    }
}

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

Plugin icon

Section

Analyze the Loaded Database

Files

cust35/switchCell.tcl

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

Plugin icon

Section

Miscellaneous Userware Examples

Files

waveSync.tcl

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

Plugin icon

Section

Read Side Files and Annotate Data

Files

tempus/tempus.tcl
tempus/timingpaths.txt

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.


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

Plugin icon

Section

Modify the Loaded Database

Files

toggleBitblasted.tcl

Example

demo/rtl/aquarius/aquarius.f


Top Capacitance Nets

Report the top total capacitance nets in the design.

Plugin

Plugin icon

Section

Analyze the Loaded Database

Files

parasitic/topCapNets.tcl

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.


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.


Trace Through Cells

Flag cells as feed through cells. A double click in the Cone window will go through these cells.

Section

Miscellaneous Userware Examples

Files

cust13/traceThrough.tcl

Example

demo/verilog/bus85.f


Transistor Cone Extraction

Do a special cone extraction on a transistor netlist.

Section

Miscellaneous Userware Examples

Files

cust11/extractCone2.tcl

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.


Transistor Example

Small transistor example from demo/spice/csim90.


Unbundle Liberty Cells

Remove bundle information from Liberty cells.


Unfold Hierarchy in Schem

Unfold the visible hierarchy modules in the Schem window.

Plugin

Plugin icon

Section

GUI Specific Userware Examples

Files

unfoldHierarchy.tcl

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.


Use Graphical Marks

Demonstrate the usage of attributes and graphical marks.


Voltage Zones

Highlight power nets with different names or different voltage values in a different color.

Plugin

Plugin icon

Section

Miscellaneous Userware Examples

Files

voltageZones.tcl

Example

demo/spice/multivolt.sp


WDB API Demo

Create and fill wdb.


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

Plugin icon

Section

Modify the Loaded Database

Files

wrapTops.tcl

Example

demo/spice/asiclib.sp