Vem
is an interactive graphical editor for the oct
design database. It was written by David Harrison and Rick Spickelmier in the CAD group at UC Berkeley. It has been extended by Andrea Cassotto and Bill Bush. An introduction to the terminology used in the system is given in
"The oct design database and its editor, vem" on page 2-21. In this chapter, we give more detailed information about vem
. Most users will not need this much detail; chapter
2 will be enough.
Most of this chapter is extracted from standard documentation for the octtools
distribution. No oct
documentation is included. See
"Customizing Vem" on page 19-23 for other resources.
The fundamental oct
objects that we edit with vem
are called facets. Facets are specified by three names separated by colons. This is usually written as "cell:view:facet". The first component is the cell name; it is used to name the design. Note that cell name may not contain any spaces. In pigi
, the second component, called the view name, will always be "schematic".1 Third, is the "facet" component, which can either be "contents" or "interface". The former specifies a block diagram, while the latter defines an icon. This usage of the term "facet" is different from our previous usage. Thus, "facet" can mean either the oct
object called a facet, or "contents" vs. "interface". The intended meaning is usually clear from context. In commands that depend on the facet (in the latter sense), if you do not specify it, vem
assumes that you mean the contents facet. Thus, "wave:schematic" refers to the facet with cell name "wave", view name "schematic", and facet name "contents".
Vem
was originally written with VLSI designs in mind. Ptolemy is an attached tool, invoked via a program called pigiRpc
. Vem
was originally intended for IC design. As such vem
provides standard graphics editing capabilities for physical (mask-level), symbolic, and schematic designs. Ptolemy uses schematic capabilities for applications and physical capabilities for icons.Vem
may be started by simply typing vem
, but this will not start Ptolemy. To start the Ptolemy interactive graphical interface, simply execute the command pigi
in $PTOLEMY/bin. This invokes a shell script that starts vem
and the associated pigiRpc
process. Vem
is started in general with the following command line options:
vem [-F cell[:view[:facet]]] [-G WxH+X+Y] [-R [host,]path] \ [-display host:display] [name=value ...]
For example, the following script could be used to start Ptolemy on a Sun 4 workstation:xrdb -m $PTOLEMY/lib/pigiXRes9
vem -G 600x150+0+0 -F init.pal:schematic \
-G 600x300+0+170 -R $PTOLEMY/bin.sun4/pigiRpc
The first line merges the X Windows resources defined in $PTOLEMY/lib/pigiXRes9
. The next line starts vem
and the associated pigiRpc
process. The pigi
script is simply a more elaborate version of this that ensures the existence of the init.pal
facet and sets up the user's environment.Vem
looks at the value of the DISPLAY
environment variable to determine what host and display to use for output. Vem
and pigi
may be run in the background without affecting the program operation. -F
, -G
, and -R
command line options allow a user to specify a start-up window configuration for vem
. These three options are considered triplets that specify the initial cell, position and size, and remote application respectively for a window. There is no limit to the number of triplets that may be specified. The -F
flag marks the start of each new triplet. The corresponding -G
and -R
flags after the -F
flag are optional. If the -G
flag is omitted, vem
will not specify a location for the window and most window managers will interactively prompt for the window location. If the -R
flag is omitted, no remote application will be started in the window. The -F
flag can be omitted from the first triplet. In this case, the -G
and -R
flags apply to the console window. For example, the pigi
script above starts vem
with its console window at (0,0) with a size of 600 by 150, and one window looking at the cell "init.pal:schematic" at (0,170) with a size of 600 by 300, running the pigiRpc
remote application. Vem
is a highly customizable editor. Nearly all of the colors, font styles and fill patterns vem
uses can be changed by the user. Normally, these parameters are read from the user's X resources (which are usually loaded when X is started from a file named ~/.Xdefaults
, or something similar). However, one can set certain parameters on the command line using the = (equal) command line option. A list of all configurable parameters can be found in the document "Customizing Vem," which is distributed with the standard octtools
distribution. This document can also be found as $PTOLEMY/src/octtools/vem/doc/Vemcustom.ps
.init.pal
facet does not exist in the directory in which pigi
is started, then it will be created. A blank facet will appear. Convention in Ptolemy dictates that this facet should be used to store icons representing complete applications, or universes, that are defined in the directory. If such icons already exist in the init.pal facet, the applications can be examined using the pigi
"look-inside" command. vem
console using the open-window command, but this new window will not be attached to pigiRpc
(see the command reference below). This means that you will not be able to issue the pigi
commands in table
2-2 from these windows.
Each window has exactly one associated cell. Mouse action with the cursor positioned inside a window cause operations to occur to the associated cell. Any number of windows can be created with the same or different associated cells. More than one window may have the same associated cell. In this case, all of the windows are attached to the same cell. Thus, a change to one of the windows may cause updates to other windows that look at the same cell.
Vem
assumes a three-button mouse. The left button is used for entry of graphics information. The middle button is used for the primary menu of commands. The right button is used to modify graphics information entered using the left button. vem
are specified in post-fix form. The user builds an argument list first and then selects a command. Commands can be selected in three ways: pop-up menus, single keystrokes, or by typing in the command name. Pressing and releasing the middle button in a graphics window causes a vem
menu to appear. The user can use the mouse to riffle through the options until the desired choice is highlighted. The commands are summarized in table
2-3 on page 11. Pressing and releasing the mouse button activates the selected command. Pressing and releasing the mouse outside the menu cancels the selection. Normally, pressing and releasing the middle button causes a vem
menu to appear. Holding the shift key and clicking the middle button causes the pigi
menu to appear. Both menus are useful.
A number of common commands can be selected via a single keystroke. Key bindings for various commands are shown next to the corresponding entry in the
vem
menu, are listed in the command reference below, and can be queried interactively using the bindings command. Typing a colon (:
) allows the user to type in the command name (or a user defined alias) in the console window. The standard line editing keys can be used while typing the command name. This interface supports automatic command completion. Typing a tab will complete the command if it is unique or offer a list of alternatives if it is not unique. The command is selected by typing a carriage return. vem
: points, boxes, lines, text, and objects. Points are entered by pressing and releasing the left button of the mouse. Boxes are entered by pressing, dragging, and releasing the left button. Lines are entered by pressing, dragging and releasing the left button over a previously created point or line. Text is entered by typing the text enclosed in double quotes. If entering a filename, typing a Tab
character will cause vem
to try to complete the name if it is unique or offer a list of alternatives if it is not unique. Objects are entered using the select-objects and unselect-objects commands. The last item on an argument list can be deleted using the standard character for delete. The last group of items can be deleted using the word erase character Control-W
. The entire argument list can be deleted using the standard kill-line character (usually Control-U
). vem
supports three basic editing styles: physical, symbolic, and schematic. Physical editing involves the entry and editing of basic geometry and the creation of interface terminals. This style is used in pigi
to build icons. Symbolic editing involves the placement of instances of leaf cells and the interconnection of these instances. Pigi
does not use symbolic editing. Schematic editing is an extension of symbolic where the primitive cells are schematic symbols and wire width is insignificant. Schematic cells use used by pigi
to represent block diagrams. vem
opens a new cell directly (i.e. not via pigiRpc
), a dialog will appear asking for three property values: TECHNOLOGY, VIEWTYPE, and EDITSTYLE. The TECHNOLOGY and VIEWTYPE properties determine the location of the technology facet, which specifies the colors and layers in the display. A standard technology facet has been designed for Ptolemy, so the defaults that appear are almost always acceptable. Layer display and design rule information is read from this facet. The EDITSTYLE property is used by vem
to determine the set of commands available for editing the cell. Currently, the legal editing styles are PHYSICAL, SYMBOLIC, or SCHEMATIC.
Copyright © 1990-1997, University of California. All rights reserved.