next up previous contents index
Next: Compression Up: xicmanual Previous: Example Script   Contents   Index


Keyboard `!' Commands

The command line interface through the prompt area provides an interface to operating system commands, as well as to a number of internal commands which are often rather specialized and are not associated with a menu button. Each of these commands starts with an exclamation point ``!'', and may be entered when no other command is active, or inside of many commands. These key presses are not recorded in the ``keys'' area below the side menu. If the command entered matches one of the internal commands listed below, that command is executed. Otherwise, an operating system shell and associated window is produced to execute the command, with the exclamation mark stripped.

Special Form: !
Entering a single exclamation point with no other text will produce an interactive terminal window into which the user can issue operating system commands. If any text follows the exclamation point, and that text does not match an internal command, the exclamation point will be stripped, the remaining text sent to the operating system for execution, and the result will be displayed in a pop-up window.

Giving the bare exclamation point is equivalent to giving the !shell command without arguments (see 16.20.1). Giving something like !xyz is equivalent to giving !shell xyz, provided that !xyz is not one of the built-in commands. The use of !shell removes the ambiguity.

Special Form: !!
If a line starts with ``!!'', the rest of the line is taken as a script, and executed by the script parser. This is how to map script interface functions into a macro. For example, below is a macro to reset the current transform:

!!SetTransform(0,0,1) Ctrl-Return

Special Form: !?
Entering ``!?'' will bring up help about the `!' commands.

Special Form: !?name
This special form will bring up help about the help database keyword name.

Special Form: !??
This special form will print a listing of the `!' commands actually available in the program, from internal tables.

Special Form: !#
The last six commands given are saved, and can be recalled with the form ``!#[n]'', that is, an exclamation point and a pound sign followed by an optional integer. The n is an optional integer 0-5, and if not given (the square brackets indicate ``optional'' and are not literal) a value of 0 is taken. The n'th previous command will be printed in the prompt area, where it can be edited and re-executed. If no matching command is found, there is no action.

When a command from the history list is in the prompt area, the Up Arrow and Down Arrow keys can be used to cycle through the other commands in the history list, each of which will be entered into the prompt line in response to the key press.

Each `!' command given, including those from `!#', will be pushed onto the history list in the 0 position if it is not identical to the previous command given.

The following table summarizes the internal commands available. These commands are described in detail in the following sections.

Compression
!gzip Apply compression to file
!gunzip Uncompress a file
Create Output
!sa Save current cell
!sqdump Save selections as native cell
!assemble Process or merge archive files
!splwrite Split a layout into multiple pieces
Current Directory
!cd Change working directory
!pwd Print working directory
Diagnostics
!time Print elapsed run time in seconds in console
!timedbg Print timing info in console
!xdepth Print transform stack depth in console
!bincnt Database diagnostic
Design Rule Checking
!showz Show DRC partitioning
!errs Rebuild DRC error highlighting from file
!errlayer Create error polygons on some layer
Electrical
!calc Calculate parameter expression value
!check Check electrical input for consistency
!regen Regenerate damaged file
!devkeys Print device key table
!sced2xic Convert from sced format
Extraction
!antenna Test for MOS antenna effect
!netext Batch physical net extraction
!addcells Add missing cells
!find Find devices
!ptrms Physical terminal manipulations
!ushow Show unassociated elements
!fx Control FastCap/FastHenry interface
!fxcell Create cell from FastCap/FastHenry interface
Graphics
!setcolor Set attribute color
!display Display graphics in a foreign X window
Grid
!sg Save the current grid
!rg Restore saved grid
Help
!help Call the help system
!helpfont Set help base font family
!helpfixed Set help fixed font family
!helpreset Clear help topic cache
Layers
!ltab Manipulate layer table
!ltsort Alphanumerically sort layer table
Layout Editing
!array Manipulate instance arrays
!layer Create layers/objects using expression
!mo Move objects
!co Copy objects
!ro Rotate objects
!rename Rename subcells
!cont Read contents of native cell
!svq Save selections in register
!rcq Recall selections from register
!box2poly Convert boxes to polygons
!path2poly Convert wire paths to polygons
!poly2path Convert polygon boundaries to wires
!bloat Expand/contract object
!join Join objects into polygon
!split Split polygon into trapezoids
!manh Convert to Manhattan polygons
!polyrev Reverse polygon winding
!noacute Eliminate acute angles
!togrid Move selected object vertices to grid
!tospot Condition object for spot size
!origin Set origin of current cell
!import Import structures into the current cell
Layout Information
!fileinfo Print info about archive file in console
!summary Print summary info of current hierarchy
!compare Compare geometry in files
!diffcells Create cells from !compare output
!empties Check for empty cells
!area Measure object area
!perim Measure object perimeter
!bb Print bounding box of current cell
!checkgrid Check object for off-grid vertices
!checkover Report cells that overlap
!dups Select coincident identical objects
!wirecheck Check wire characteristics
!polycheck Check polygon characteristics
!polymanh Select Manhattan polygons
!polyfix Fix polygon errors
!polynum Show polygon vertex indices
!setflag Set cell flags
Libraries and Databases
!mklib Create or append to a library file
!lsdb List ``special'' databases in memory
Marks
!mark Create user marks in layout
Memory Management
!clearall Clear all memory
!vmem Windows only, print virtual memory statistics
!mmstats print memory manager statistics
!mmrecycle Assert or vacate recycle mode
!mmclear Clear recycle mode free lists
Rulers
!dr Delete rulers
Scripts
!script Add a script to the User Menu
!exec Execute a script
!lisp Execute a Lisp script
!tk Execute a Tcl/Tk script
!listfuncs Pop-up list of saved functions
!rehash Re-read script libraries and rebuild User Menu
!rmfunc Delete a saved function
Selections
!select Select objects
!desel Deselect objects
!zs Zoom to selected objects
Shell
!shell Open terminal window
!ssh Open terminal window to remote system
Technology File
!dumpcds Create Cadence VirtuosoTM technology and DRF files
Update Release
!update Download/install new release
!passwd Set distribution repository password
Variables
!set Set/examine variables
!unset Unset variables
!setdump Dump variables
WRspice Interface
!spcmd Execute WRspice command



Subsections
next up previous contents index
Next: Compression Up: xicmanual Previous: Example Script   Contents   Index
Stephen R. Whiteley 2012-04-01