The Right Auto Routing Algorithms Can Make or Break Your Next PCB
Staying on top of every algorithm required to solve complex technical challenges is a job in itself. If you’re a competent programmer, you’ll see how to scale different algorithms up to any level, including auto routing algorithms. But with the right EDA software, you won’t have to keep re-inventing the wheel.
Using an autorouter to help layout your next PCB can help you save time and can save your sanity. Unfortunately, auto routing algorithms have seen little innovation over the last 30 years due to lack of integration among design features. With the right design software and some simple design strategies, you can take your routing capabilities to the next level.
Auto Routing Algorithms: Past and Present
If you do a quick search on algorithms that are used for autorouters, you’ll find that you have plenty of reading in front of you. Many of these autorouter algorithms are relics of the past that illustrate how design automation has failed to keep up with human creativity. A will take advantage of their experience when starting their layout, and they can foresee and avoid poor design choices.
Mathematically, automated routing is a variant of the travelling salesman problem. You are trying to determine the shortest route between locations while specifying certain constraints. The problem of PCB routing is much more complex in that each trace is a salesman: you are trying to solve the problem for thousands of salesmen. Moreover, each trace is prohibited from using the same route as another trace. One can quickly see how this problem becomes very complex.
There are a number of algorithms that have been used to solve this problem. Arguably, the most successful recent auto routing algorithm, is river routing as this makes even use of board layers and reduces reliance on vias. Other popular algorithms are random or directed search algorithms, but these algorithms require significant time as they essentially rely on trial and error.
Auto routing algorithms suffer a critical drawback that hampered their adoption in more complex boards with critical design constraints: they do not allow the to inject their experience into the routing process. Those that do, often require complex setups and do not produce the best results. This is where a semi-automated technique, known as interactive routing, became critical for enhancing design productivity.
Interactive Routing or Autorouting?
I’ve seen novice designers use these terms interchangeably (I myself was once guilty of this). Both of these routing schemes use different auto routing algorithms to lay traces throughout a board, but using these tools properly requires injecting some level of experience and simple design choices to get the best results.
In contrast to autorouting, interactive routing requires some input from the user in order to place traces between components. The designer chooses a few points along the path of an interconnect, and the design software lays traces along the way while checking against design rules in each step. The best interactive routers will show you an overlay of each trace along the way, making it easy to see the exact path a trace takes along the way to its destination.
Using either of these tools effectively requires some foresight, or it might require pin swapping and gate swapping in order to prevent crossing traces or excessive reliance on vias. In some cases, an autorouter might not be able to lay any traces in a net in such a way that your design rules are satisfied. This is particularly problematic when routing nets with a large number of differential pairs. Trace spacing coupled with trace length mismatch rules can easily cause an autorouter to fail, requiring you to change your layout strategy.
Aside from judicious use of pin swapping, simple changes like rotating components can help you prevent traces from crossing or filling up within signal layers, as well as reduce your reliance on vias. If you are still having trouble getting an autorouter to work properly, you’ll likely be better off using an interactive router as this will check your routing choices against your design rules in real time.
Auto-Interactive Routing: The Best of Both Worlds
The newest paradigm in PCB routing is auto-interactive routing. This type of autorouting combines high-end auto routing algorithms with interactive routing, helping you balance reduced routing time with precision design that meets your needs. This type of tool allows you to avoid obstacles and other polygons while routing multiple traces in a signal net simultaneously.
The interactive portion of this type of tool allows the user to select specific routing points between the source and destination of an interconnect or signal net. The autorouter portion then routes traces automatically between these points. This allows the designer to inject their experience into the routing process while exploiting the primary time-saving feature of a typical autorouter.
When this tool is integrated with your other design features on top of a rules-driven design engine, routing steps are executed while checking against critical design rules for each signal net. This type of integrated tool also allows you to route traces through vias in order to take advantage of inner signal layers.
You can easily implement this type of routing scheme with an auto-interactive router
As PCBs continue to become more complex, designers need all the tools they can find to help improve their productivity. The autorouting features in Altium Designer® are integrated directly with the rest of your design tools. All of the design features in Altium Designer are built using a single, rules-driven design engine within a single interface. The Active Route package brings a new level of automation and precision to interactive routing, helping you design the best boards in less time.