#93 - Autorouters - Page 1
Forum section: electronics / general

author: vonnieda
author_rank: Regular Contributor
timestamp: June 12, 2010, 06:16:31 pm
content: Hi Dave, and all,I am not an EE, but I do quite a bit of electronics design. I have no formal training and have been slowly learning what I know since I was a little kid putting Radio Shack kits together with my dad. These days I am doing quite a bit of PCB design for little projects of my own. Your rant #93 on autorouters struck a nerve with me and I wanted to ask about it.I've been using the EAGLE autorouter for all of my projects. I read the documentation about it and some tutorials and believe I know how to use it pretty well. I know to set up proper minimums for my different nets and to tell it the right spacing for the board house I am eventually sending the board to (or bigger, if I can help it). One thing I have never done is any manual routing. I jumped directly into PCB design with, what I consider to be, moderately complex boards. I'm not talking about computer motherboards or anything but boards with lots of small components on physically small boards, double sided and all surface mount.What my question boils down to is: Is it really true that real engineers (like yourself) would really manually route boards like this? I've attached a few recent examples to this post. It seems to me like the routing would be wildly difficult and take a huge amount of time as you had to go back and change things as the routing gets more complex. I expect your answer will be "Yes, that is a very simple board and would be easy to manually route!" so if anyone can recommend some resources on learning to manually route I'd really appreciate it. I've love for my routes to come out cleaner. I know the autorouter does a poor job but it's always worked for me.Thanks!Examples:This board is for a clock I built. The board is 2.25" x 2.00"This board is for a brewery display. The board is 2.6" x 2.00"

author: jahonen
author_rank: Super Contributor
timestamp: June 12, 2010, 06:44:28 pm
content: I definitely agree with Dave.AFAIK, at my work, most boards really are routed manually. Even those what would be called quite complex. Autorouter works only acceptably with very specific problems. I would not ever think about using it on analog or switch-mode power supplies or anything like that. Autorouter does not know how to correctly route power distribution nets on double and single-sided boards, or bypassing. Or it doesn't know how to steer currents to small loops (or even where the loops are). You do as a designer (at least you should know!).For most boards, semi-automatic routing works best, i.e. software performs plowing of existing traces for easier routing. I wouldn't even think about trying to create differential pairs or length matched nets (those serpentine patterns you'll see often on computer motherboards) without any automation (or length-matched differential pairs!). But I guess that stuff is something what average hobbyist will ever need to do. I meansomething like this.One must just take the time to learn the optimal way to route, and placing the parts or choosing optimal pins if possible. Often the latter two is very important and often determines whether the board is routable.Regards,Janne

author: EEVblog
author_rank: Unknown
timestamp: June 12, 2010, 11:06:58 pm
content: Quote from: vonnieda on June 12, 2010, 06:16:31 pmYes, it's true.I do not know one single profesional PCB designers who uses an autorouter for anything close to a majority of their designs.QuoteI guarantee you that one day it will not work and your circuit will fail.You have been simply lucky so far to not deal with circuits that are critical in terms of circuit layout and signal integrity.That LED display board is a classic example of where poor routing is not going to matter a rats, because there are generally no signal integrity issues with such a board.I've done that myself where I've had say a one-off board that I've had to send away for manufacture within an hour to meet some ridiculous deadline. In that case I would simply let the autorouter rip on all non-essential parts of the board.Yes, that board is not at all that hard to route, it's pretty simple, but yes, it takes time. The problem with trying to teach PCB design is the infinite variety of layout, every one is different and will have it's own rules. The key though is in placement and to group components according to functional dependence. i.e. if two chips are joined with an 8 bit bus, you place them side by side and not on opposite sides of the board. Or if you have a filter circuit based around a quad op-amp then you place the passive components around the opamp chip with the shortest paths.Autorouters really came about in late 70's and 80's because PCB manufacture and IC integration techniques really weren't progressing to the point we have single chips to do everything today. So it was common to end up with a design that had to fit hundreds of digital TTL and microprocessor chips onto a double sided or 4 layer board for instance to save cost.So you ended up with computer motherboards and the like that looked like this:Hence all the chips were laid out in rows or columns like this and they were not fun or easy to manually route. But because they generally only operated at 10's of MHz at most, and all routes could be in opposite directions on different layers which was perfect for autorouters and they generally worked pretty well in these cases. They were useful. But placement was still very important of course, that has never changed.Fast forward to the last 20 years or so and we've gotten back to a point were signals are 100 times faster and there are single chip solutions for most things, and signal integrity is often vital. This is now the complete opposite to what autorouters are good at.Dave.

author: EEVblog
author_rank: Unknown
timestamp: June 12, 2010, 11:40:02 pm
content: http://more-noise-than-signal.blogspot.com/2010/06/eagle-cad-autorouter.htmlDave.

author: DJPhil
author_rank: Frequent Contributor
timestamp: June 13, 2010, 12:06:38 am
content: When I first looked in to designing a pcb the material I found through google and the like seemed pretty much unanimous in it's distrust of autorouting. I'm still a complete newbie, but for the few boards I've slapped together I've tried doing each one both ways to see what differed. My experience is limited to the few boards I've done in KiCad, all of which were low voltage audio amplifiers of one sort or another, so no advanced concepts to speak of.Using KiCad on small, single sided boards it seemed the autorouter's decisions were difficult to understand but occasionally insightful to the beginner. I often forget to use the space under components, and by using autoroute/undo I can sometimes catch really stupid mistakes. I often spend a good deal of time second guessing, checking guides, and googling to sort out which of a few options for a given route makes the most sense. I can see a pro using autoroute to do a first pass on a simple, tolerant design as Dave mentions, but I think autoroute's of very limited use to the beginner. If it's doing things that even I can see are wrong on a small microphone preamp board then my trust in it is extremely limited.I take it as a given that since I haven't even begun to deal with digital anything, or signal integrity beyond proper grounding, there's little I have ever had to worry about with routing. I just wanted to express a complete beginner's point of view.That, and Dave's second example board above is awesome.

author: slburris
author_rank: Frequent Contributor
timestamp: June 13, 2010, 12:14:08 am
content: I have not had really good results with the Eagle autorouter. Lately, I've beenexporting my boards tohttp://freerouting.netand getting much better results.I agree that none of the routers I've tried produces results anything likewhat I would do if routing manually. But since I'm only doing hobby circuitswithout too much in the way of critical signals, I seem to get away with it.Scott

author: TheDirty
author_rank: Frequent Contributor
timestamp: June 13, 2010, 12:16:45 am
content: I do all my routing in Eagle manually, but you can't really judge how easy it is to manually route based on just Eagle. Eagle lacks some niceties that programs like A!tium have. A!tium has some almost autorouter like features when doing manual routing and you can push tracks around and it will automatically hug objects that are in its way. Given the spacing rules it won't break them if you try to shove traces into each other and will bend a trace to go around pads or other objects. Not certain what the technical terms for these things are, but it makes it easier to manually route. Eagle added 'follow me' routing recently, but it's definitely not the same thing.

author: charliex
author_rank: Frequent Contributor
timestamp: June 13, 2010, 03:47:35 am
content: I've not had good results with eagles autorouter either, sometimes it just seems to do really odd things. I will use it as a quick tool just to see what its doing for hints in difficult spots, then i undo and manually do a follow me route. I tried the pulsonix one and that seemed to give better results, but i'm happy hand routing, its kind of fun, like chess or optimising code, i always worry i'm spending too long doing it, for no gain but its good practice.It does seem like it ought to be a solveable problem though.

author: TheWelly888
author_rank: Frequent Contributor
timestamp: June 13, 2010, 08:06:24 am
content: The one PCB I designed by myself, I did not even use a PCB software, I used a vector drawing application!

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 14, 2010, 12:26:16 am
content: The thing most beginners don't realise is that good placement is everything.Time spent getting placement right is more than made up for with easier & quicker routing.Spend time juggling the bigger parts around the board to see how the density of the ratsnest changes before you think about routing. Swap MCU pins around to shorten routes, don't worry about making all the parts face the same way.You need to be at 4 layers or above before even thinking about autorouting, and even then you probably shouldn't.The only way to learn good PCB layout is by doing it. A lot. By manually routing boards that could maybe have been autorouted, you'll get better at it for the boards which absolutey can't be autorouted.

author: Ferroto
author_rank: Frequent Contributor
timestamp: June 14, 2010, 11:42:08 am
content: Quote from: EEVblog on June 12, 2010, 11:06:58 pmAhh those were the days, I still remember getting my first computer when I was 6 and it was something like this.

author: Strube09
author_rank: Regular Contributor
timestamp: June 14, 2010, 12:47:08 pm
content: I never route with the auto router. I am not even sure why my company paid extra money for the add-on. I would have rather they gave me the cash than throw it in the garbage!I do a lot of switch-mode power supply designs and simply can't trust it to route the analog and power grounds correctly. Or keep my di/dt traces short and wide.I spend almost as much time placing components as I do routing. After making sure all mechanical constraints are met I make sure I sit back and look how the current is flowing and how I can place the parts so that minimum work is done to connect them.There is one thing I can honestly say about my work.... I have never had to troubleshoot an auto router issue (As I never use it). Plus every layout mistake I make is an opportunity to understand what I did wrong and learn from it. It makes for less trouble shooting for future projects.I say manual route over and over again and you will learn how to become very efficient and you will have much less mistakes.

author: slburris
author_rank: Frequent Contributor
timestamp: June 14, 2010, 02:19:49 pm
content: OK, manual routing fans, how do you layout tracks to things likeSDRAM, which need equal length paths for the address anddata busses for maximum speed?I'm trying to do this in Eagle and it's a pain.Yes, a better tool like Altium Designer could do this for me,but it's out of reach for a hobbyist's budget.Scott

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 14, 2010, 10:39:30 pm
content: There are tools to measure & control trace length, but typically only on higher end packages. I'm sure some clever enough (i.e. expensive) software may well have semi-automatic assistance for this sort of thing (e.g. add wiggles within a defined zone to achieve stated length) but I can't see an autorouter being able to do it all and get a decent result.

author: TheDirty
author_rank: Frequent Contributor
timestamp: June 15, 2010, 01:24:15 am
content: There's two ULP's in Eagle to report trace length. I think length.ulp and something something,ulp. Don't remember the second. It's not the super trace length tuning you get in higher packages, but it should help.