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 19.23.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 |
!md5 | Print file digest |
Create Output | |
!sa | Save modified cells |
!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 |
!netxp | Net expression checking |
!pcdump | Parameterized cell database dump |
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 |
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 |
!fc | Control capacitance extraction interface |
!fh | Control inductance/resistance extraction 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 |
Keyboard | |
!kmap | Read keyboard mapping file |
Layers | |
!ltab | Manipulate layer table |
!ltsort | Alphanumerically sort layer table |
!exlayers | List layers by applied keywords in console |
Layout Editing | |
!array | Manipulate instance arrays |
!layer | Create layers/objects using expression |
!mo | Move objects |
!co | Copy objects |
!spin | Rotate objects |
!rename | Rename subcells |
!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 |
!jw | Join similar wires with common endpoints |
!split | Split polygon into trapezoids |
!manh | Convert to Manhattan polygons |
!polyfix | Fix polygon errors |
!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 |
!check45 | Select polygons and/or wires with angle non-45 degree multiple |
!dups | Select coincident identical objects |
!wirecheck | Check wire characteristics |
!polycheck | Check polygon characteristics |
!polymanh | Select Manhattan polygons |
!poly45 | Select polygons with angle not a 45 degree multiple |
!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 |
!mmclear | Clear caches |
OpenAccess Interface | |
!oaversion | Print OpenAccess release number |
!oadebug | Enable log files |
!oanewlib | Create new OpenAccess Library |
!oabrand | Permit save from Xic in OA library |
!oatech | Query OpenAccess technology database |
!oasave | Save cell to OpenAccess library |
!oaload | Read cell from OpenAccess library |
!oadelete | Delete OpenAccess object |
Parameterized Cells | |
!rmpcprops | Remove pcell properties from pcell sub-masters |
!preload | Pre-load sub-masters to resolve as cell data are read |
Rulers | |
!dr | Delete rulers |
Scripts | |
!script | Add a script to the User Menu |
!rehash | Re-read script libraries and rebuild User Menu |
!exec | Execute a script |
!lisp | Execute a Lisp script |
!py | Execute a Python script |
!tcl | Execute a Tcl script (no Tk) |
!tk | Execute a Tcl/Tk script |
!listfuncs | Pop-up list of saved functions |
!rmfunc | Delete a saved function |
!mkscript | Create script that generates current cell hierarchy |
!ldshared | Load a script interface plug-in |
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 | |
!attrvars | List the variables that are recognized as tech file keywords |
!dumpcds | Create Cadence VirtuosoTM technology and DRF files |
Update Release | |
!update | Download/install new release |
Variables | |
!set | Set/examine variables |
!unset | Unset variables |
!setdump | Dump variables |
WRspice Interface | |
!spcmd | Execute WRspice command |