The sea-of-gates router is able to take an arbitrary set of unrouted arcs and convert them to layout. It also honors the "Routing Exclusion" nodes to restrict certain metal layers (see Section 9-6-1).

To do this, 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.

The router has many features that can be controlled by the Routing Preferences and by cell-specific properties.

Sea-of-Gates Routing Preferences

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

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 override the default width and spacing rules on that layer.

And you can set a grid for placement of the layer. Grid control 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 right side of the dialog controls individual nets that are to be routed. If nothing is listed on the right, then all selected nets are routed (or all nets, if nothing is selected). Use the "Add Net" button to add a named net and use the "Remove Net" button to remove a listed net. 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.

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