Routing and Unrouting
Connections can be routed in the editing area automatically or manually. When you use automatic routing (AutoRoute), the system selects the routing path for each connection you select. In manual routing, you specify the routing path.
You can enable the Automatic Routing option to automatically route any unrouted net pins created as a result of an editing action, such as placing a component or creating a new net. Automatic Routing, when enabled, occurs after add, place, autoplace, copy, and swap operations.
You can also unroute connections. Unrouting unroutes any specified routes without eliminating the logical connections in the nets involved.
You can route or unroute selected connections; you can also route or unroute all connections in the design.
The following sections describe routing, unrouting, and the Automatic Routing option.
Automatic Routing
The AutoRoute command automatically routes the objects you specify. You can autoroute these objects.
- Nets
- Net pins
- Ratsnest lines
- Components
- Macros
In addition, you can autoroute between two resources including the following.
To automatically route selected objects follow these steps.
- Select the objects you want to automatically route.
You can select any combination of nets, net pins, ratsnest lines and components and macros. Net pins, ratsnest lines, components, macros, and partially or fully routed nets in the editing area. But unrouted nets can only be selected by displaying a net list in the EPIC List dialog box, then selecting the desired net names.
- Perform the Autoroute command in one of the following ways.
- In the Route menu, select AutoRoute.
- Select the Autoroute push button.
- Enter autoroute in the EPIC Command Line dialog box.
The objects you selected are routed (if possible). The display for each routed connection changes from a ratsnest display to a routed net display. If an object could not be completely routed, an error message appears in the history area and the ratsnest remains.
Notes on Automatically Routing Selected Objects
- When you autoroute a net pin, the amount of routing performed depends on whether the net pin is an output pin (a net driver) or an input pin (a net load). If the pin is a net driver, AutoRoute routes the entire net. If the pin is an input pin, AutoRoute only routes the connection between the pin and the net driver.
- When you autoroute a component, each net pin on the component is routed.
- Autorouting a macro is discussed in the Routing and Unrouting Macros section of the Working with Physical Macros chapter.
- When you autoroute a net or a ratsnest line, the entire net is routed.
- Delay-based autorouting takes delay values into account. When disabled, cost-based autorouting is done instead. Delay-based autorouting takes longer, but can result in better routing, especially on a crowded design. By default, the delay-based auto-routing option is enabled. This option has no effect when you autoroute all nets.
- When you autoroute selected objects within EPIC, no existing routing is unrouted and rerouted to accommodate any new routing. Also, no component pins will be swapped for a better routing. Because the PAR program unroutes routes and swaps pins if necessary, routing done with PAR is more efficient than routing done in EPIC.
You can also select, then autoroute two objects on a single net. The two objects can be any combination of the following: net pin, route segment, local line, long line, or pinwire used by the net. When you then perform the Autoroute command, the system attempts to route a path between the two objects.
As an example, the following drawing shows the result achieved when selecting a pin and performing an autoroute.
Suppose you do not want the pin to be routed using the vertical local line the software selected. To specify a different path for the route, select the pin and the horizontal local line already used for the net routing. Automatic Routing would be performed as follows.
To automatically route the entire design use the following procedure.
- Perform the Autoroute -All command in one of these ways.
- In the Route menu, select AutoRoute All.
- Enter post autoroute all in the EPIC Command Line dialog box.
The Autoroute All Attributes dialog box appears.
The fields are described as follows.
Automatic
| If selected, runs to completion unless the router determines it cannot complete. If not selected, runs the number of routing passes specified in the Number of Passes field.
|
Number of Passes
| If Automatic is not selected, sets the number of iterations for the router. Routing stops earlier than the maximum number of iterations if an iteration routes to 100% completion.
|
Disable Timing Driven
| Turns off timing-driven routing.
|
Number of Cost-Based Cleanup Passes
| Determines the number of cost-based clean-up passes to run. In cost-based clean-up passes, the router makes routing decisions by assigning weighted values to the factors affecting delay times between sources and nets, for example, the type of routing used
|
Delay-Based Cleanup Passes
|
|
Do Not Do Cleanup
| Do not run any delay-based clean-up passes.
|
Do Cleanup
| Run delay-based cleanup passes based on the number entered in the Number of Passes field.
|
Do Cleanup Only if Fully Routed
| Run delay-based cleanup passes only if the design is fully routed.
|
Number of Passes
| Number of delay-based cleanup passes to run. This field is disabled if Do Not Do Cleanup is selected.
|
- In the dialog box, specify the routing options you want, then click OK.
All unrouted connections are routed, if possible. The display for each routed connection changes from a ratsnest display to a routed net display. If a net cannot be routed to completion, an error message appears in the history area.
Notes on Automatically Routing the Entire Design
- When you automatically route the entire design from EPIC, these are the default routing options performed.
- Three iterations of the router
- One cost-based cleanup pass
- No delay-based cleanup passes
- If you want to specify the number of routing iterations to perform instead of accepting the default value (three iterations), you can modify the number of passes in the Autoroute All dialog box or enter the autoroute -all -i [number] command in the EPIC Command Line dialog box. The number, which can be from 1 to 999, indicates the maximum number of iterations to perform. The router continues to perform iterations until one of the following occurs.
- The design is routed to completion and constraints are met.
- The router completes the number of iterations you specified.
- The router determines that it cannot route the design to completion or meet constraints, if no iteration number is given.
- When you route an entire design within EPIC, no existing routing is unrouted and rerouted to accommodate any new routing. Because the PAR program unroutes routes if necessary, routing done by running PAR produces different results than routing done in EPIC. PAR routes more efficiently, and a densely packed design can more easily be routed in PAR than in EPIC.
Manual Routing
Manual routing is done using the Route command. Manual routing allows you to specify the path the signal routing takes. Select the net pins or pinwires to connect and the routing resources to use, for example, long lines or local lines, and the system routes the specified path. As part of the manual routing, you can select unused pins on placed components, then route these pins together to form a new net, or route them to an existing net.
To route manually perform this procedure.
- Select the net pins, pinwires, local lines, long lines, route segments, and unused components pins.
- Perform the Route command in one of the following ways.
- Select Manual Route from the Route menu.
- Select the Route push button.
- Enter route in the EPIC Command Line dialog box.
The objects you selected are routed in the specified order.
Notes on Manual Routing
- Selected objects must be part of the same net. For example, you cannot select a net pin which is part of one net and a long line that is part of another net.
- If no connection exists between specified objects that connection is not be routed, and an error message appears in the history area. If enhanced routing is enabled, EPIC attempts to autoroute between the two selected routing resources. Enhanced routing is described in the Main Window Attributes section.
- When you specify objects to route together, consider the direction of current flow through the switches connecting the two objects. You can route from source to load or from load to source, but you cannot mix the two directions during one Route command run.
- When you select an unused net pin or pinwire for a connection, this net pin is added to the net you are routing.
- Manual routing only routes the specified connections. All other unrouted connections on the applicable net remain unrouted, unless enhanced routing is enabled.
- A feature called Stub Trimming displays only those portions of routing resources, for example, long lines and local lines, actually used by routes. If you disable Stub Trimming, the full routing resources taken up by the routes are displayed. During manual routing, disable Stub Trimming; you can then determine which routing resources are available and which are not. Enabling and disabling Stub Trimming are described in the Main Window Attributes section.
- Partially routed nets that do not terminate at pins (antennas) unrouted by the Autoroute -all command, if you do not lock the net. Unlocked antennas are also removed if you run PAR on the design file.
- Any segment added to a net with manual routing will be locked or unlocked, depending on the net's lock status.
- You may want to specify Auto Highlight if you are manually routing a very densely routed design. Objects must be selected in the order in which you want them routed. When you select the objects, consider that connections will be routed one by one from each selected object to the next. If you select three objects in the order A, B, C, you are indicating that you want to route A to B, then route B to C.
Switch Boxes in Manual Routing
Switch boxes are located at the junctions of horizontal and vertical local lines and can connect local lines. The switch boxes have certain allowable matrices for pin connections. Allowable routes vary, depending on the location of the switch box on the chip. Switch boxes situated on the perimeter of the chip: top, bottom, right and left as viewed from EPIC, have fewer pins; therefore, the routing matrices are different from those on switch boxes inside the perimeter.
To see the permissible paths for any pin in a given switch box, select the pin. The switch box looks similar to the following figure. To deselect the pin and clear the paths from the screen, select it again or select Unhilite All from the View menu. Click the Shift key and the left mouse button to select multiple switch box pins.
To route a connection through a switch box, select the local lines leading to the pins you want to connect, as shown in the following figure.
A bank shot is a way of indirectly connecting two switch box pins that cannot be connected directly. If you want to route a bank shot through a switch box, select, in the correct order, the local lines leading to all of the pins you want to connect and shown in the following figure.
Routing Through a Logic Block
A route can pass through an occupied or an unoccupied CLB site. This type of route is called a route-through, which can be done manually in EPIC. A route-through provides routing resources that would otherwise be unavailable.
Click the Shift key and the left mouse button on a pin to highlight all available route-through paths for the pin at that site or component.
To manually route through a CLB in an XC4000 design follow these steps.
- During manual routing, select input pin C1, C2, C3, or C4 on the CLB site (vacant or occupied) through which to route.
You can also select the pinwire associated with the pin.
- Select output pin QX or QY on the same site used in the previous step.
You can also select the pinwire associated with the pin.
- Perform the Route command in any of the following ways.
- Select Manual Route from the Route menu.
- Select the Route push button.
- Enter route in the EPIC Command Line dialog box.
The net is routed through the site or component.
An error message appears if the route-through is not possible because of interfering logic in the CLB or pre-existing signals on the route-through pins.
In EPIC, a route-through appears as a wide line connecting an input to an output pin. The line has the same width and color as other route line segments and is contained in the route graphics layer. If a component is also placed at the route-through site, the route-through line segment lies on top of the component.
Automatic Routing Option
The Automatic Routing Option automatically routes any unrouted nets created as a result of an editing action, such as placing a component, creating a new net, swapping components. If enabled, Automatic Routing is performed after each Add, Copy, Swap, Autoplace, and Place command.
The Automatic Routing Option is an attribute of the main EPIC window. When the EPIC window opens, the default setting for the Automatic Routing Option is enabled. You can change the default setting by editing your epic.ini or epicuser.ini file. See the Initialization Commands section of the Customizing EPIC chapter.
During an EPIC session, you can toggle the option between enabled and disabled by using the procedure following.
To toggle the Automatic Routing setting follow these steps.
- Post the Main Window Attributes dialog box in one of these ways.
- Select Post Main Attrs in the Misc menu.
- Make sure that nothing is selected in the EPIC window, then enter post attr main in the EPIC Command Line dialog box.
The Main Window Attributes dialog box appears.
- Select Automatic Routing Option.
- Click OK or Apply.
The Automatic Routing Option is toggled.
Unrouting
Unrouting unroutes routed connections for specified objects. The logical connections remain after the unroute. If ratsnest lines are displayed, the unrouted routes are replaced with ratsnest lines.
You can unroute these objects.
- Components
- Nets
- Net Pins
- Route Segments
- Macros
- Used local lines, long lines, and pinwires
You can unroute selected objects or unroute the entire design.
NOTELocked nets cannot be unrouted.
| To unroute selected objects follow this procedure.
- Select the objects to unroute.
Select any combination of components, nets, net pins, route segments, macros, and used wires in the editing area. Nets and macros are selected by displaying a net or macro list in the EPIC List dialog box; a net can also be selected by clicking the Shift key and left mouse button on a route segment. A macro can also be selected by pressing the Ctrl key while selecting a macro component.
- Perform the unroute command in this any of the following ways.
- Select Unroute from the Route menu.
- Select the Unroute push button.
- Enter unroute in the EPIC Command Line dialog box.
The objects are unrouted. If ratsnest lines are displayed, routed connections are replaced by ratsnest lines.
To unroute the entire design use one of these methods.
Unrouting Notes
- When you unroute a net pin, only the connection to the net pin is unrouted. All other routed connections on the net remain.
- When you unroute a net, you unroute the entire net.
- When you unroute a component, you unroute each net pin on the component.