Top Up Prev Next Bottom Contents Index Search

19.1 Terminology

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.

The -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/

The console window echoes user input and outputs various help and status messages. After starting, the console will display a prompt and wait for input. Ptolemy users rarely need to use this window, and eventually, it will be eliminated.

If the 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.

New windows can be created using open-facet command (see table 2-2 on page 7). It is also possible to open a window from the 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.

Commands to 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.

There are five types of input to 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).

Once entered, graphics arguments (points, boxes, and lines) can be modified in various ways. For all arguments, a point can be moved by moving the cursor over the point and pressing, dragging, and releasing the right mouse button. New points can be added to a group of lines by moving over a point in the segment, depressing, dragging, and releasing the left mouse button. This will insert a new point after the point. It is also possible to interactively move, rotate, and mirror object arguments (selected items). See the description of the transform command in the command reference below.

This version of 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.

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

Top Up Prev Next Bottom Contents Index Search

1 Other oct applications use other views such as "symbolic" or "physical."

Copyright © 1990-1997, University of California. All rights reserved.