![]() |
Routing |
![]() |
The auto-stitching router looks for adjoining facets that make implicit connections, and places wires at those connections to make them explicit. Thus, if the facets in a library have power and ground rails at the top and bottom, and there are ports on the left and right of each rail, then the auto-stitching router can be used to connect all of these rails in a horizontal string of facets. The rules for auto-stitching are (1) connection must be made at a port, (2) the geometry inside of the facet surrounding the ports must touch or overlap, thus creating an implicit connection, and (3) the ports must not already be connected to each other. Also, this stitcher only works on layout, and does not route schematics.
To run the auto-stitcher, use the Do Auto-Stitching subcommand of the Routing command of the Tools menu. The router will make all necessary connections, and incrementally add wires as further changes are made to the circuit. To stop stitching, use the same menu entry, which now reads Stop Auto-Stitching. To run the auto-stitcher only once, and in the highlighted area only, use the Stitch Highlighted subcommand. Note that this auto-stitches all facet instances that intersect the highlighted area, so even if only a portion of a facet falls into the highlighted area, the entire facet is stitched.
![]() | The auto-stitcher allows you to specify a particular type of wire to use in routing. By default, the router figures out which wire to use. However, with the Set Routing Arc subcommand, the specified wire is used (or automatic selection can be resumed). |
One problem with the auto-stitcher is that it may take a different view of the circuit than originally intended. In an area where more than two facets meet, the auto-stitcher may place many wires in an attempt to connect all touching ports. Another problem with the auto-stitcher is that it only makes explicit what is already implicit, and so cannot add all necessary wires. To more directly control the wiring of arrays of facets, there is the mimic-router. This tool lets the designer place a wire between two facets, and then it adds other wires between all other similarly configured facets in the circuit. Thus, it mimics your actions. Specifically, it mimics single wires (if you make a multibend wire, that cannot be mimicked) in all situations where the same ports on the same type of nodes exist, separated by the same distance. To turn on the mimic-stitcher, use the Do Mimic-Stitching subcommand, and to disable the subsystem, use the command in the same menu location, which now reads Stop Mimic-Stitching.
The maze router replaces unrouted wires with actual geometry. The unrouted wire (from the Generic technology) will run at any angle to make a direct connection. To create such a wire, use the Get Unrouted Wire subcommand and then make a connection. Another way to get unrouted wires is to select all or part of an existing route (made with any arc) and use the Unroute subcommand of the Routing command of the Tools menu.
Once unrouted wires have been placed, the router can replace them with real geometry. The Maze-Route Selected subcommand replaces the selected unrouted wires, and the Maze-Route Facet subcommand replaces all unrouted wires in the facet.
Note that maze routing is done one wire at a time, and may fail if no path can be found. Therefore it may be preferable to route the unrouted wires one-at-a-time in order to better control the process.
Note also that maze routing constructs an array of the circuit and searches the array for a routing path. Therefore, long wires will use large amounts of memory and time. Also note that the maze router has not been tested extensively, and should be used with care in complex situations.
For an example of maze routing, open the library file "samples.txt" and edit the facet "tool-RoutingMaze" (you can read the library with the Readable Dump subcommand of the Import command of the File menu). This facet has a number of unrouted wires that can be routed.
River routing is the running of multiple parallel wires between two parallel rows (presumably along facing sides of two facet instances). The wires must remain in sequential order and cannot cross each other. Thus, they appear as a flowing stream of lines, and have the appearance of a river. To specify an intended path for the river-router, every connection must be made with an Unrouted wire from the Generic technology (use the Get Unrouted Wire subcommand before wiring to create this type of arc). The unrouted wire need only make a direct path without concern for design rules. This is because it is replaced with the appropriate geometry during river-routing. Thus, before river-routing, there should be a series of direct (and presumably nonmanhattan) connections.
To convert the unrouted wires into proper geometry, use the Do River-Routing subcommand of the Routing command of the Tools menu. The unrouted arcs will be replaced with proper geometry. If it is necessary, nodes may be moved to make room for the river-routed wires. For an example of river routing, open the library file "samples.txt" and edit the facet "tool-RoutingRiver" (you can read the library with the Readable Dump subcommand of the Import command of the File menu).
![]() |
Previous | ![]() |
Table of Contents | Next | ![]() |