Expert - PC NT Layout Editor Recent Significant Advances


Expert layout editor has been designed to handle multi-million-transistor layouts with any kind of hierarchies, from flat to deep ones, while utilizing computing power of an ordinary Pentium-based PC running under Windows NT. To achieve this goal, the following components of Expert were carefully designed:

  • A sophisticated geometric database was designed to support fast search and editing operations for huge amounts of geometric data.
  • Fast drawing algorithms were fine-tuned to achieve a trade-off between drawing speed and detail level.
  • Powerful tools were designed for convenient navigation through chip hierarchy and across design plane: Locator, Chip Rover, Multiview Navigator, and Edit-in-Place tools.
  • Highly efficient built-in DRC checks facilitate the user to maintain design correctness, in addition to complete runs of Savage DRC system checks.

Usability of a layout editor to a significant degree depends on its readiness to enhance designer's productivity in terms of daily routine operations: device and simple library cell creation, composing larger layouts from pre-created cells, etc. The initial release of Expert provided basic and some advanced editing capabilities. The objective of the new release is to enhance the usability of Expert by adding a set of additional powerful editing features.

A partial list of significant improvements in Expert, version 1.30 is:

  • Undo Operation
  • Derived layers
  • Fill patterns (stipples)
  • Improved Hardcopy
  • Improved Modify Operation
  • Multi-object Stretching
  • Resolving name collisions during cell import
  • Improved Numeric Input interface
  • Various improvements of visual appearance
  • Network-based protection scheme
  • Setup for GDSII Read/Write

The release notes contain a detailed description of these and other newly developed features.

Figure 1. A general view of a multi-million transistor
IC with corresponding tree of cell hierarchy.


Undo Operation

An Undo Operation has been implemented to provide unlimited rollback depth for both Local and Global Undo operations. Both operations maintain their own undo lists. Undo is invoked in one of the following three ways: by menu command Edit>>Undo, by clicking the Undo button at the Command bar, or by pressing Ctrl-Z.

Esc key allows editing to be interrupted.

The Undo feature is applicable only to Create, Modify, Copy, Move operations and to the drawing of zoom and selection boxes. Currently, Undo operation is not available for pan/zoom, select operations, switching among windows, flatten, explode, create cell in place operations. These features will be available in future versions of Expert.


Derived Layers

Definitions of derived layers may now be typed into the technology file or input interactively via the improved Layer Setup dialog.

A Derived Layer is a layer whose contents are produced by certain operations involving other layers. In the current version three types of layer operations are supported:

  • selection
  • logical
  • resizing

Layer Derivation may be performed either via Layer Setup dialog or by writing the corresponding commands into the technology file.

Layer Generation (or Layer Rebuilding) is the process of actual construction of the contents of derived layers according to their definition. It may be invoked in several ways:

  • from menu
  • from Generation bar
  • on activation of a derived layer using Layer bar
  • on switching to a window where a derived layer is the active one

Figure 2. Interactive definition of derived layers.



Fill patterns (Stipples)

Three drawing modes for layout objects are supported:

  • wireframe mode, where only object's boundary is shown
  • solid mode, where the whole object is filled by the selected color
  • stipple mode, where the object's boundary is shown and its interior is filled in a semi-transparent way by a selectable stipple pattern (hatching, dot filling, etc.)

Figure 3. Sample layout display using stipple mode.


The group of plotting commands permits you to make a hardcopy of the visible part of the layout. These commands are invoked from the "Project" submenu.

"Plotter Setup" command invokes standard Windows NT dialog to assign the default output device, size and orientation of paper sheets, as well as other device-specific properties. These properties will be used by default for previews and plotting operations.

"Plot preview" command invokes Expert's Page Layout dialog and standard Windows NT preview session to show placement of the plotting layout on paper sheets.

"Page Layout" Dialog is invoked within Plot Preview and Plot commands. It permits definition of the size or scaling of the plotted image. For example to split the drawing into several pages, and to set drawing margins on the page.

"Plot" command invokes standard Windows NT dialog to assign output device using for drawing and then plots the visible part of the layout. The method of drawing (printing or plotting) will be selected automatically according the hardcopy device.

Figure 4. Page setup for plotting.


Modify Operation

There are several improvements in the Modify operation for various types of objects. The most important of them is removal of some restrictions for 90° and 45° geometries. All region modifications (except of vertex/side deletion) can be done for 90° and 45° angle modes preserving restrictions on angles. When a vertex or side is deleted, a warning is issued that angle mode cannot be preserved with this operation.

Stretch Operation

Stretch operation is used to modify several sides of multiple regions and multiple wires at the same time. The user may select several pieces of boundaries of several objects and move them while stretching/contracting object's sides that connect the chosen pieces to the rest.

This operation consists of the following steps:

  • Select several region sides and/or several wire segments, possibly from different regions, boxes, and wires. They will move during stretch.
  • Specify the restrictions on stretch
  • Specify the amount of stretch (stretching shift)

During the stretch segments are classified into movable, fixed and stretchable:

  • Selected segments will be moved as whole
  • Segments with one end shared by a selected segment will stretch to accommodate the shift of selected segments ("rubber-bending")
  • Segments with both ends shared by some selected segments will move as whole
  • Segments with no end shared by selected segments will rest in place

Stretch operation is controlled by several settings:

  • segments can be selected individually, by box, or by whole objects
  • stretching type may be controlled in terms of the original shape, just as for the ordinary Modify operation (Save Angle and Unrestricted modes)
  • premitted stretch directions are vertical, horizontal, orthogonal, diagonal, and all-angle modes of stretching

Figure 5. Stretch operation for multiple objects.


Resolving Name Collisions

The Cell>>Import feature has been improved to process name collisions. When newly imported cells and cells already present in the project have the same names the following possibilities for pairs of colliding cells:

  • replace all old cells by the new ones
  • ignore all new cells
  • rename all new cells by appending a user-defined suffix
  • process cells one by one (replace/ignore/rename)

Figure 6. Automated detection and resolution
of name collisions during cell import.