Vemis an interactive graphical editor for the
octdesign 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.
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
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
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.
pigi may be run in the background without affecting the program operation.
-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
-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
-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
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
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.