Chip Navigation in Expert


With chip density increasing, device size shrinking into the sub-quarter micron range, geometries growing 3D, it is increasingly important to recognize and establish a proper usability tradeoff between automated tools for physical IC design (automated floorplanning, placement, routing) and "polygon" layout editors that combine manual input/editing with built-in verification.

An observable shift from full-custom to semicustom design methodologies, burdened with problems of reusability and scalability, places additional requirements on a layout editor.

A modern layout editor capable of working with multi-million transistor designs, must among other things, provide fast and easy access to any parts of chip's layout for local inspection, simulation, modification, etc.

Expert combines traditional features of polygon layout editors with enhanced means of navigation throughout the chip, both down its hierarchy and across the design plane, by means of Chip Rover, Multiview Navigator, and Locator.


Chip Rover: Navigation through Hierarchy

Chip Rover is a tool for navigating through the hierarchy of the chip design represented in the form of a tree. In addition to hierarchy tree navigation, Chip Rover provides a convenient visual supplement for other layout editing and navigation operations that are somehow related to chip hierarchy: It highlights selected cell instances, visualizes the results of the Locator operation, shows the actual on-tree place of Edit-in-Place, and allows users to specify and show instances placed anywhere in chip's hierarchy.

Depending on Chip Rover's actions it shows chip's hierarchy in two different forms: Basic Tree View and Branch Tree View. For a simple example layout from Figure 1 these two different tree views are illustrated in Figure 2 and Figure 3, respectively.


Figure 1. Sample layout to demonstrate Chip Rover's tree.



Figure 2. Basic tree view for sample layout from Figure 1.



Figure 3. Branch tree view for sample layout from Figure 1.



To understand the difference, let us clarify what chip hierarchy actually is. While it is often loosely referred to as "cell hierarchy", a chip in fact consists of hierarchically nested cell instances. If one tried to display this cell instance hierarchy as a tree, it would look something like the tree in Figure 4.


Figure 4. All-instance tree for sample layout in Figure 1.


Now imagine that the hierarchy becomes deeper and more instances of the same cell appear. It is evident that such "natural" tree quickly becomes enormous and incomprehensible.

Therefore our Basic Tree View branches out only along cells. The instances of the same cell in a common parent cell are grouped together and do not branch further. At Figure 2 one can see that mux4 cell contains mux1 cell instanced three times: one time as an array and two more times as separate instances. Further, mux1 contains two instances of nand2 and one of inverter.

Sometimes, nevertheless, it is necessary to view the place of an instance in its "natural" instance nesting hierarchy. This is the case, during a hierarchy-transparent Locator operation and in other situations. It is not necessary however to see all instances everywhere along the tree. We are interested only in specific ones. The Branch Tree View displays these views. In Figure 3 the following selected instance chains can be seen:

- inverter instance
in entry (0,0)
of 1x2-array of mux1 instances
in top-level mux4;
- nand2 instance
in the same entry (0,0)
of 1x2-array of mux1 instances
in top-level mux4;
- another nand2 instance
in a "standalone" mux1 instance
in top-level mux4.

Chip Rover provides a two-way communication between hierarchy tree and chip's layout.

From Tree into Layout:

  • Double clicking on a cell item you switch to the window for the cell layout.
  • Double clicking on a cell instance/array you switch to a layout window for the father of the cell instance. This instance is seen marked in the layout.
  • If you can specify a chain of nested instances by its names and positions, you may input it into Chip Rover's Branch Tree (see below), and these instances (deep in the hierarchy) will be marked in the layout.
  • You may enter into Edit-in-Place for this instance from Branch Tree by clicking the corresponding button.


From Layout to Tree:

The following actions in layout are immediately reflected on tree:

  • All selection/deselection operations (in Basic Tree view);
  • Edited-in-Place cell's position in the hierarchy (in Branch Tree view);
  • Locator operation, see below.


All operations that modify cell hierarchy (cell/instance creation/modification) are reflected on the tree after pressing the Refresh button.

Chip Rover may show several trees:

Active Cell Tree shows the hierarchy of the cell in the current active window.

Project Tree shows the hierarchy of the whole project.

Branch Tree allows Chip Rover to access cell instances laying deep in hierarchy of the active cell.


Locator (Hierarchical Selection)

Locator is an advanced version of the selection operation. It allows the user to identify any object of the layout, no matter how deep in the hierarchy it is situated. Note that Select operations works only with objects of the edited cell, i.e., at the top level of the cell's hierarchy. You just draw a selection box and right mouse clicks produce you with layout objects one by one. Optionally, Chip Rover may be set to show the located instance on Branch Tree with the whole nested chain of its ancestor instances.

The user may choose whether the Locator will:

  • pick all types of objects;
  • pick only cell instances and arrays;
  • pick only primitives, i.e., regions, boxes, lines
  • pick objects that belong to the active cell only, not go deep into hierarchy.

The following actions are possible with the currently located object:

  • It may be selected from its parent cell.
  • Its parent cell may be opened for editing.
  • Its parent instance may be opened for edit-in-place.


Multiview Navigator: Across the Design Plane

This tool allows you to conveniently manage multiple views of a cell's layout. There is a special window (Map view) that allows the user:

  • to see all work windows (views) as they are overlaid on the whole cell layout.
  • to switch from one view of the cell to another.
  • to change view position and zoom by dragging its image on the Map view.
  • to create new views at selected areas of layout.

When you choose this tool, The Multiview Control Panel and the Map View opens. Initially, the Map View zooms to the view contained in the active window, however, it contains frames for all opened views (windows) of the active cell. To see them all, press the Out button on the Multiview Control Panel.

In the Map View you see the cell layout and a number of frames, assigned to windows opened for the active cell. Each frame shows which piece of layout is visible in the corresponding window, and it reflects the view in that window. Actually a frame exactly matches the corresponding view all the time: any view operations (zoom, pan, scrolling) influences the corresponding frame and vice versa: any changes in size and position of a frame lead to changes of the corresponding view.

This arrangement is very convenient when you explore several places of a large chip simultaneously: you can readily see where you are on the whole layout, to which window you must switch next, how you must zoom/pan the current view to include an interesting nearby feature, etc.

Some frames may be invisible or only partially visible, if the corresponding window shows the piece of layout that lies outside the part of layout shown in Map View. You may zoom out in Map view by ordinary view controls to see more frames. Alternatively, you may click the Out button on the Multiview panel.

The active frame corresponds to the active window (and the active view in it). The remaining frames are inactive. Inactive frames are just white boxes. The insides of the active frame are made brighter than the rest of layout in the map view: its brightness is the same as in an ordinary window. If the active frame is too small, its bottom left corner is supplied with cross-hairs, so that this frame may be easily detected.

If you click the left mouse button with this cursor pointing at the border of an Inactive frame, it becomes active and it activates the corresponding window.

If you click the left mouse button with this cursor pointing at the border of an active frame, the cursor assumes the Border Grab shape. The user can then modify the frame as an ordinary box. You may grab a side or a vertex of the active frame and then drag it, resizing the frame. The view in the active window zooms accordingly, i.e., it will show the chip area falling into the frame. As a result, if the active frame is made larger, the active view zooms out; if the frame shrinks, the active view zooms in.

When the cursor is within the active frame, it assumes the Frame Grab shape. The active frame may be grabbed by pressing and holding the left mouse button, dragging it into a new position and releasing the button.