So PCB design software auto-routing is bad...but why?

Started by BMF Effects, January 12, 2007, 09:29:21 AM

Previous topic - Next topic

BMF Effects

I've UTSF'd, read the posts and gathered that PCB design software's ability to auto-route traces leaves something to be desired, but is this an across the board statement for all PCB design software? The one comment that stands out is "auto-routing is bad, especially for analog effects". Why is that? What about simple circuits, does auto-routing fail on those as well? It would seem that the software manufacturers would want to be sure that this feature worked correctly so why doesn't it? Thanks for any insight.

Sir H C

Autorouting is set for digital systems.  That is where it is most needed, and so that is what the EDA tool providers set it up to do best.

In analog, you start getting into metal thickness, what signals need to be kept from others, what traces need to be short, and other criteria that is not taken into account when using auto-routing.  With a simple circuit it doesn't make sense to auto-route, the time savings is not worth the reviewing required after it is done.

MKB

The autorouting is bad for analog effects as the autorouters have a hard time keeping the traces short and direct, and distinguishing the analog traces from digital and power supply traces.  They work better on bus oriented digital boards.  It also seems if you try to autoroute a two layer board, you get a lot of sloppy traces going all over the place.  You can optimize the autorouter rules for the analog traces, but that sometimes doesn't work as well as it should.  You can also hand route the critical traces, lock them, and have the autorouter route the less important traces where it wishes.  But most of the time, in circuits like stompboxes that are relatively simple, hand routing using a ratsnest is a LOT faster than fussing with an autorouter.

R.G.

QuoteIt would seem that the software manufacturers would want to be sure that this feature worked correctly so why doesn't it?
It would seem that we'd want for fusion energy sources to work and be small and portable and easy to use. So why aren't they?

The simple answer is that Mother Nature's Rules are such that we have not yet discovered how to do that. Another way to put that is - they can't do it yet. It's not because they don't want to or are too dim-witted to figure out that this is a Good Thing. They just can't yet.

QuoteI've UTSF'd, read the posts and gathered that PCB design software's ability to auto-route traces leaves something to be desired, but is this an across the board statement for all PCB design software?
Yes.
QuoteThe one comment that stands out is "auto-routing is bad, especially for analog effects". Why is that?
My take is that machines have poor pattern matching abilities, while the human mind is the best pattern matching machine we've ever found. This gets down to deciding what "good" and "bad" mean with respect to trace placement on PCBs.

There is in general much more to placing traces than just connecting the copper. Each bit of copper carries at least one and possibly many signals. The "signals" may be analog, digital, audio, RF, fast digital, AC power, DC power, and may be high or low impedance, and you may find a combination of such signals on a single trace. In addition, the traces near the trace being routed may have some other kind of signal on them that may reach across the intervening space by capacitive and/or inductive fields to interfere with the signal being placed, or to cause constructive/destructive interference with the parts between two traces.

A good human layout guy knows these differences and almost automatically places traces taking these things into account. He may or may not even be aware of why he chooses to run a trace here instead of there. It may well be because the last layout of CMOS logic with opamps he did two years ago had to be redone six times to get it to work and he may not know the reason, only that he had to do ...this... to get it to work. Try reducing that set of reasoning to a rule for an AI track placer.

Digital logic is much more forgiving of layout than analog in that if you have certain simple rules and can run the connections, it will probably work. The rules are finite and can be written down, things like making the traces constant impedance of about 120 ohms, and either shorter than the in-flight times between clock pulses or all of equal lengths for critical nets like clock trees. What happens between clock edges is largely unimportant.  So for digital, you make the connections, check the impedance and model the transmission time, check that against transmission line effects like edge bounce, ground lift, and possible radiation, and you're done. Or the machine is done, anyway. There will always be a human coming in to evaluate and clean up a machine's layout. The human will be experienced at layout if the party paying for the layout is serious about it working.

QuoteWhat about simple circuits, does auto-routing fail on those as well?
"Fail" is the operational term.

Auto-routers can be mathematically shown to connect all of the points in the net list if connections are possible within the physical space. That's largely a criteria based on the number of points to be connected, the space available to connect them in, and the size of the pads for the connection points, the trace widths and spacings, and the size of between-layer connections if those are allowed. However, whether the layout does what you want it to do when it gets done is open to question.

The simplest of circuits can obviously be connected by an autorouter. What you'd like even more than an auto router is an auto-PLACER to put components in some kind of optimal relationship to one another so they can be connected easily. Frankly, placement is harder than routing, because if you have a great placement, routing is trivial. What human layout artists actually do is to do part placement and predictive routing at the same time, in their heads. Machines do these sequentially because a machine does not have the ability to do them simultaneously. Yet. Even chess playing programs solve complex issues of moves by doing all of the possible (and with alpha-beta pruning, reasonable) moves for many plies ahead and selecting the best tree. Maybe someday a machine will have the ability to do all possible (or reasonable) placements and routing simultaneously or incrementally and select the best. That seems to be what humans do.

I work with layout software regularly. Auto-placement and auto-routing would make my work a lot faster, so every so often I try it again. I have recently had some success by subdividing the schematics into tiny bite-sized pieces, inputting only "bites" into the machine for placement and getting a first placement by auto-place. This lets me get the necessary parts physically close first, then I can whip them into a usable placement manually faster than I could have done by starting from zero. But it's a fair amount of prelim work to portion up the circuit in to small enough bite sized pieces for the machine first, lock and unlock what I've done before, then manipulate the machine in little bites. I'm not sure it's a real time saver.

Someday we'll get there. We're not there yet. Machines are not yet as smart as humans. You want the real best of both worlds? Use an experienced human AND a machine to do the work. The human does the pattern recognition, the machine takes care of keeping track of every last detail of how it's going. And that is in fact how the industry does it.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

BMF Effects

Am I the only one who feels like they should have paid more attention in high school when reading R.G.'s answers?

:icon_eek: :icon_mrgreen:

Seriously, thanks R.G. and everyone for the answers. I think I'm standing in the threshold of a doorway to a new aspect of building and design. It's a little intimidating for sure.

Sir H C

Oh and a classic, some autorouters come back with an answer but it is not correct.  This was a while back, but I would not be shocked if you have to check to see that the autorouter is correctly routing via a Layout vs. Schematic (LVS) run or the like.

WGTP

I didn't pay attention in highschool, but have a minor in math with 12 hours of calculus 8 hours in Physics and 8 in Chemestry and I still miss most of what  R.G. is saying.  I think it is E.E. stuff with a mix of Philosophy.   :icon_cool:
Stomping Out Sparks & Flames

MKB

Quote
Someday we'll get there. We're not there yet. Machines are not yet as smart as humans. You want the real best of both worlds? Use an experienced human AND a machine to do the work. The human does the pattern recognition, the machine takes care of keeping track of every last detail of how it's going. And that is in fact how the industry does it.

That's exactly what we used to do on complicated digital boards.  Do the placement by hand with only the busses enabled in the ratsnest, and swap stuff around until the layout makes sense (and of course place the fixed components like connectors and mounting hole padstacks).  Then fanout the parts for inner layer routing, and lock the fanouts.  After these preliminary human steps, preferably on a Friday evening, start up the autorouter and go home for the weekend.  The router will chew on the design all weekend, and in a perfect world you come in Monday morning and clean up the design.  You still had to take a lot of time to set up net attributes so the autorouter knew what to do, and usually had to hand route high speed clock lines as some autorouters can't handle things like a star topology for timing control.

Actually I had forgotten we did partial autorouting from time to time, you can always place a segment of the circuit on a board and enable only the nets you want routed, autoroute those, and then move the segment around with the traces locked.  We did that to save time occasionally.

Another thing that helped autorouting was having lots of PCB layers available.  This is for the most part required if you need impedance control, as well as keeping radiated noise in control.  Multilayer boards can get very expensive, and are rarely needed in stompboxes unless the board is so small you have no room for traces after the parts are placed.

Mark Hammer

Auto-routing software is essentially AI software that is intended to make certain "decisions" in a manner mimicking what humans do.  Like any AI software, its capacity to mimic will depend on just how algorithmically complex the sorts of decisions are, how well and fully the software reflects the true algorithm used.  As often happens with AI, the limiting factor is describing just what it is that human decision-makers actually DO.  Very often, and most especially in tasks that are highly routinized and mentally automatized, humans are not particularly adept at describing all the steps and conditional rules they employ.  Not because they don't want to, but because there is a lot that they simply don't think about in an explicable way.

Let's imagine that we had the sort of technology to mimic the human mouth.  Motors and solenoids, muscle wire, chemical sensors to mimic taste reception, synthetic saliva and micro-pumps to mimic salivation, all sorts of sensors for using taste and mechanical resistance feedback to adjust movement, etc.  Our goal is to get a mechanical mouth to chew food just the way a person would do it.  Do you think you could verbally, then mathematically/computationally, describe what it is you do when you chew food, and how that chewing might change on the basis of morsel size, texture/consistency, "breakdown trajectory" (i.e., how fast the food is turning from firm to mush as you chew and saliva does its thing), maximizing taste properties, etc.?  I strongly doubt it.  There is a mountain of unconscious or barely conscious conditional judgment activity that goes on when simply chewing your food that most of us would be completely unable to describe in any sort of manner that would permit a complete rundown of the rules the simulated mouth needs to follow.

Layout of an analog circuit, and especially one that serves aesthetic goals incorporating tone and packaging, relies on a lot of judgments that the seasoned designer is likely unable to describe, and is perhaps not even that aware of when they do it.  Many of those judgments involve if-I-do-this-then-i-have-to-do-that-but-that's-a-nonoptimal-idea tradeoffs.  It IS possible that layout software could do analog boards, but my guess is that the length of time required for the software to accomplish them might be on the order of how long it takes Deep Blue to make a chess move when up against a champ.  What is a tolerable wait in a chess tournament is not the sort of wait/computation time that would make board layout feasible within the sorts of timeframes people need/expect.  That's why dividing the layout work up between a machine for simple stuff it can reliably decide about, and a human for the hard-to-explain stuff, is a good idea.

Gladmarr

I only use autorouters to do a quickie route to just give an idea where stuff could fit.  From there, I usually end up re-doing almost everything the autorouter does, because basically you end up with wasted space, traces too close together and coupling signals and/or noise, messed up grounds (especially mixed-signal stuff), and (especially with Altium Designer/Protel) traces that just plain run over/across each other.  It may or may not save time, but you inevitably end up reworking a lot of what the autorouter has done for you....   :icon_confused: