Chapter 9: Tools
9-6: Routing
9-6-6: Sea-of-Gates Routing

The sea-of-gates router is able to take an arbitrary set of unrouted arcs and convert them to layout. To run it, use the Sea-Of-Gates Route this Cell command (in menu Tools / Routing). If there are unrouted arcs selected, these will be the only ones converted. Otherwise, all unrouted arcs in the cell will be converted. If sub-cells below the current cell need to be routed, use Sea-of-Gates Route Sub-Cells.

Sea-of-Gates Routing Preferences

The router can be controlled by the Routing Preferences and by cell-specific properties. The Routing Preferences (in menu File / Preferences..., "Tools" section, "Routing" tab) has these options:

Sea-of-Gates Cell Properties

Users can set cell-specific properties that control how a particular cell is routed. Use the Sea-Of-Gates Cell Properties... command in the Tools / Routing menu to control this.

Figure 9.69

The upper-left part of the dialog controls routing properties for the entire cell.

  • Alternating Metal Layer Usage controls the placement of alternating layers for horizontal and vertical wires. You can choose to force this usage, favor the usage (enforces it most of the time, but not always), or ignore the usage. You can then choose whether odd-numbered arcs are horizontal or vertical.
  • Contact inclusion pattern and Contact exclusion pattern let you specify which contacts in the technology to use for routing. You can also select contacts to use in 2X routing. For example, to force only contacts that start with the letters "X-", set the inclusion pattern to "X-(\w+)"
  • Do not place rotated contacts Requests that asymmetric contacts not be tried in a rotated orientation.
  • Do not make Steiner Trees (already done) Before routing begins, the unrouted arcs are reorganized so that daisy-chains (multiple arcs on a single network that connect more than two ports) run in the most efficient way. This efficient path is called a "Steiner Tree". If you believe that the routes are already optimized, you can request that this step be skipped.
  • Contacts down avoided layers and Contacts up avoided layers Requests that nets which start or end on forbidden layers be allowed to place a contact up or down to a permitted layer. The contact cannot create new geometry on the forbidden layer, so the necessary area on that layer must already exist.
  • Routing bounds layer sets the layer which will limit the bounds of routing. If geometry exists in that layer, the extent of the geometry will define the bounds of routing.

The lower-left part of the dialog controls individual layers in the cell. It lets you disable the use of any layer, or favor it above others. You can also request that a layer be a taper by setting a Maximum taper length Tapers are the initial or final segments of a route which use the width of the geometry at the end, rather than the default width. They have a limited run length. You can also request that a given layer be available only for tapers, and not for intermediate routing. For each layer, you can also override the default width and spacing rules on that layer. The "2X width threshold" is the width above which a wire is considered to be "2X" in size. When that happens, special contacts may be used, and mask colors are flipped (only relevant in technologies that have multiple masks on a layer). The Remove Geometry Layer is a layer which will remove the presence of the given layer. For example, if the Remove Geometry Layer for Metal-1 is set to a layer called "DM1", then the presence of the DM1 layer will actually remove any Metal-1 under it for the purposes of routing.

Another layer control is the use of grids. Grids can be Fixed (with a spacing and an offset) or Arbitrary (with multiple grid coordinates). When editing arbitrary grids, icons on the right let you create new grid coordinates, delete existing ones, and even draw the location on the screen. Click Show to draw the grids on the cell to help you see where the grids actually are.

The upper-right side of the dialog controls individual nets that are to be routed. If nothing is listed at the top, then all highlighted nets are routed (or all nets, if nothing is highlighted). Use the Add NetRemove Net button to remove selected nets from the list. When a net is selected, you can even override the layers that will be used to route that net and you can override the width and spacing rules for that layer on that net.

The lower-right part of the dialog lets you add arbitrary rectangles in the chip on given metal layers which will act as blockages, preventing routing in that area. The "add" icon creates new blockages, the "delete" icon removes them, the "edit" icon modifies the selected blockage, and the Show button shows all blockages in the circuit.

At the bottom, the "Import..." button reads a command file that can fill this dialog with values.

Prev Previous     Contents Table of Contents     Next Next