Autoroute

 

The Tools | AutoRoute region includes commands related to autorouting and fanouts.

Autoroutex

The CircuitMaker autorouter is topological, which uses a different method of mapping the routing space, i.e. one that is not geometrically constrained. Rather than using design space coordinate information as a frame of reference (dividing it into a grid), a topological autorouter builds a map using only the relative positions of the obstacles in the space without reference to their coordinates. It does this by triangulating the space between adjacent obstacles. This triangulated map is then used by the routing algorithms to "weave" between the obstacle pairs from the starting route point to the end route point. The greatest strengths of this approach are that the map is shaped independently (the obstacles and routing paths can be any shape) and space can be traversed at any angle. The routing algorithms are not restricted to purely vertical or horizontal paths as with rectilinear expansion routers.

Autoroute Sub-menu Commands

The Autoroute sub-menu commands allow you to route the entire board, route within specified areas, or route connections of specific objects, such as nets and component classes.

The following table describes the sub-menu commands.

Command Behavior
Setup This command opens the Situs Routing Strategies dialog, which allows you to access a pre-routing setup report and configure routing strategies and other options in relation to the Situs Autorouter
All This command opens the Situs Routing Strategies dialog, which is used to configure the strategies, select the required strategy, and run the autorouter.
Net This command is used to route all connections in a specified net.
Net Class This command is used to route all connections in the specified net class(es).
Connection Using the Main routing strategy, attempt to autoroute the chosen connection.
Area Using the Main routing strategy, attempt to autoroute all connections that start within the chosen area.
Component Using the Main routing strategy, attempt to autoroute all connections that start on the chosen component.
Component Class This command is used to route all connections emanating from the pads of components in the specified component class(es).
Connections On Selected Components Using the Main routing strategy, attempt to autoroute all connections that start on the selected components.
Connections Between Selected Components Using the Main routing strategy, attempt to autoroute all connections that run between the selected components.

Situs Routing Strategies Dialog

The dialog is accessed by choosing Setup or All from the Autoroute sub-menu.

The key options are described below.

  • Report Window - this area presents a report based on pre-routing analysis of the design, gathering together information including design rules currently defined for the design that will be adhered to by the Autorouter (and the number of design objects - nets, components, pads - affected by each rule), routing directions defined for all signal routing layers, and drill layer pair definitions. The report lists potential problems that could affect router performance. These warnings can include routing layers that have their routing direction set to Any. Where possible, hints are provided in order to help in the better preparation of the design for autorouting. Any errors/warnings/hints that are listed should be scrutinized and, if needed, the corresponding routing rules adjusted before proceeding to route the design.
It is essential that any routing-related rule violations are resolved before starting the Autorouter. Not only can violations prevent routing at the location of the violation, but they can also greatly slow the Autorouter as it continually attempts to route an unrouteable area.
Use the hyperlink entries in the report window to access the Edit PCB Rule dialog for a given rule definition to adjust the scope and/or constraints of that rule as required. For unroutable pads, clicking the relevant hyperlink entry in the report will zoom and center the offending pad in the design space.
  • Edit Layer Directions - click to open the Layer Directions dialog in which you can modify the routing directions for signal layers as required.

  • Edit Rules - click to open the PCB Rules and Constraints Editor dialog. Alternatively, if you want to modify an existing routing rule directly, click on the rule's hyperlink in the upper region.
  • Save Report As - click to save the report as an HTML document. Use the Save As dialog that opens to change the name and location as required.
  • Available Routing Strategies - lists all of the currently available routing strategies that can be used by the Autorouter to route the design. Each strategy is listed in terms of its name and description. In general, the default routing strategies for two-layer and multi-layer boards are fine for most routing situations. It is important, however, to ensure that any relevant routing design rules are set up prior to running the Autorouter. The default routing strategies cannot be removed.
  • Add/Edit/Duplicate - click to open the Situs Strategy Editor dialog to add a new user-defined routing strategy to the list, to make changes to the selected strategy, or to make a duplicate of the currently selected routing strategy.
  • Lock All Pre-routes - enable to prevent any pre-routed nets from being deleted ("ripped up") and re-routed by the Autorouter. Often, certain nets will be manually routed and then the remainder autorouted.
  • Rip-up Violations After Routing - enable to have any routes that violate defined (and applicable) design rules ripped up after the Autorouter completes its routing session.

Situs Strategy Editor Dialog

The dialog is accessed by clicking Add, Edit, or Duplicate in the Situs Routing Strategies dialog.

This dialog allows you to fully define a routing strategy for the Situs Autorouter including its constituent routing passes (algorithms). The inclusion of various routing passes and the order in which they are used constitutes the Autorouter's 'intelligence'. These passes are used to turn the virtual routing paths identified in the topological map into high-quality routes on the board.

A defined routing strategy and its constituent routing passes are only applied when routing the entire board.

The key options are described below.

  • More/Less Vias - use the slider bar to define permitted via usage by the Autorouter. This is a trade-off between greater routing speed and the use of fewer vias. Moving the bar to the right will constrain the Autorouter to place fewer vias, however, the time taken to route the board will be greater. Moving the bar to the left achieves faster routing completion times, however, at the expense of extra vias placed by the Autorouter on the PCB.
  • Orthogonal - enable this option to constrain the Autorouter to route orthogonal (90°) paths only. Disabling this option allows the Autorouter to route orthogonally or non-orthogonally (45°) as it sees fit.
  • Available Routing Passes - lists the available routing passes (algorithms) that can be used in a routing strategy. The following passes are available:
    • Adjacent Memory - this is a connection-level routing pass. It is used to route adjacent same-net pins requiring fan-out with a simple U pattern.
    • Clean Pad Entries - this is a connection-level routing pass. It reroutes out from each pad center along the longest axis of the pad.
For designs that include components with pads that have different X and Y dimensions, always include a Clean Pad Entries pass after the Memory pass.
  • Completion - this is a connection-level routing pass. It is essentially the same as the Main pass but is costed differently to resolve conflicts and complete difficult connections.
  • Fan out Signal - this is a component-level pass based on the fanout settings defined by the Fanout Control. It checks for patterns in pads, considers clearance, routing width and via style, then selects a suitable fanout arrangement (inline row, staggered, etc.,) to meet the requirements defined in the design rule. Fanout is to signal layers only.
  • Fan out to Plane - this is a component-level pass, based on the fanout settings defined by the Fanout Control. It checks for patterns in pads, considers clearance, routing width and via style, then selects a suitable fanout arrangement (inline row, staggered, etc.,) to meet the requirements defined in the design rule. Fanout is to an internal plane layer only.
  • Globally Optimised Main - this is a connection-level routing pass. It provides optimal routing and ignores contentions/violations on its first iteration. It then reroutes connections with increased conflict costs until there are no violations remaining. This pass, used in conjunction with the Orthogonal option enabled, can produce nicely routed patterns. Add a Recorner pass to the strategy to provide mitered cornering.
  • Hug - this is a connection-level routing pass that reroutes each connection following existing routing with the minimum clearance possible. The hug pass is used to maximize free routing space. Note that this pass is very slow.
  • Layer Patterns - this is a connection-level routing pass. It only routes connections that match a layer direction (within a tolerance). It is costed to hug or follow existing routing to maximize free space.
  • Main - this is a connection-level routing pass. It uses the topological map to find a routing path, then uses the push and shove router to convert the proposed path to actual routing.
  • Memory - this is a connection-level routing pass. It checks for two pins on different components on the same layer that share X or Y coordinates.
  • Multilayer Main - this is a connection-level routing pass. It is similar to the Main pass but with costs optimized for multi-layer boards.
  • Recorner - this is a connection-level routing pass that is used to provide mitering of routed corners. This pass is used when the Orthogonal option is enabled for the strategy, essentially overriding it and mitering the corners of each route. If the Orthogonal option is disabled for the strategy being used, there is no need to include a Recorner pass as the autorouter will miter corners by default.
  • Spread - this is a connection-level routing pass that reroutes each connection attempting to spread the routing to use free space and equally space routing when it passes between fixed objects (such as component pads). Note that this pass is very slow.
  • Straighten - this is a connection-level routing pass that attempts to reduce the number of corners. It does this by walking along the route to a corner, then from that corner performs a (horizontal/vertical/45up/45down) probe searching for another routed point on the net. If one is found, it then checks to see if this new path reduces the routed length.
Only one main-type pass should be specified for a routing strategy, either MainMultilayer Main, or Globally Optimized Main.
  • Passes in this Routing Strategy - lists the actual routing passes (algorithms) included in the strategy. You can add whatever passes you wish from the list of available passes and multiple instances of the same pass may be added throughout the overall strategy to achieve specific results. Passes will be executed in order from the top down. This order can be modified using the Move Up and Move Down buttons.

Additional Autoroute Commands

Stop

Use to stop the autorouter at the completion of the current routing pass.

Reset

Use to reset the autorouter.

Pause

Use to pause the autorouter. It can be restarted if required.

Fanout

CircuitMaker includes surface mount component fanout tools. The escape routing engine will attempt to route each pad out to just beyond the edge of the device, making routing connections to them much easier.

Fanout Sub-menu Commands

The Fanout sub-menu commands allow you to fanout objects according to the Fanout Control design rules and settings in the Fanout Options dialog.

The following table describes the sub-menu commands.

Command                                                                                                                                                                   Behavior
All Fanout all surface mount components in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.
Power Plane Nets Fanout each net that is connected to a power plane in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.
Signal Nets Fanout each net that is not connected to a power plane in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.
Net Fanout the chosen net in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.
Connection Fanout the chosen connection in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.
Component Fanout the chosen component in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.
Selected Components Fanout the selected component(s) in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.
Pad Fanout the chosen pad in accordance with the enabled Fanout Control routing design rule(s) and the settings in the Fanout Options dialog.

Fanout Options Dialog

The dialog is accessed by clicking any of the Fanout sub-menu commands.

This dialog allows you to specify fanout and escape routing options. Typical fanout behavior is for used inner pads to first be fanned out using the traditional dog-bone (a short route with a via on the end) to access another layer, and then from the via, they are escape-routed out just beyond the edge of the device, working through the available routing layers until all pads have been escape-routed. Ultimately, this makes routing connections to them much easier.

  • Fanout Pads Without Nets - enable to fanout pads from the component even if they have no nets assigned to them. When this option is disabled, only pads with nets assigned will be fanned out.
  • Fanout Outer 2 Rows of Pads - enable this option to fanout pads from the component including the outer two rows (which are usually easily routed).
Fanning out a component will drop vias as required to enable the connection. If drill-pairs have been configured for layers and the Update fanout using Blind Vias option is enabled, blind vias will be dropped; otherwise, through-hole vias will be used.
  • Include escape routes after fanout completion - enable to add escape routing to each fanout. Escape routing places tracks onto the fanout vias and component pads, bringing them out to the edges of the component to make routing connections to them easier.
The options in the BGA Escape Route Options region only become available when the Include escape routes after fanout completion option is enabled.
  • Update fanout using Blind Vias (BGA escape routing only) - enable to drop blind vias between configured drill-pair layers in the layer stack. When this option is disabled, only through-hole vias will be dropped regardless of drill-pair layer settings.
If there are no drill layer pairs defined to be able to use blind vias, this option will appear as Cannot Fanout using Blind Vias (no layer pairs defined).
  • Escape differential pair pads first if possible (same layer, same side) - enable to fanout and escape route any assigned differential pair nets together before performing other fan out operations, effectively keeping their routes together. The fanout will place escape routing tracks on to the same layer and as adjacent as possible.
Content