Background
I'm working on a fairly dense mixed PTH/SMD (plated through hole / surface mount) component PCB design. I'm using Eagle CAD for it for the schematic capture / layout and I'm using the auto-router function to route. It's a two-layer board, and I'm trying to keep all the SMD components on the same side of the board for ease of manufacture.
Experience
I usually place my components in what I think are sensible locations from a point of view of interface proximity, rotate QFP packages 45 degrees where it looks like it might be useful, set the routing grid to 1mil (i.e. the minimum?), set the DRC minimum trace width to the minimum allowed by my manufacturer, click Go, catch some shuteye and see how it turns out in the morning (or that it failed). There are a lot of settings in the auto-router and DRC that I frankly never mess with because I don't understand how they impact routability (is that a word?), which may contribute to my frustrations with it.
Question
I've used Eagle a lot at this point, and I'm very happy with it, but it often seems like a real challenge to get the auto-route to complete, and routability seems to be very sensitive to component placement. It will often times get up to 98+% routed and then give up. What are some rules of thumb / guidelines / advice for how to help the auto-router get the job done?
Best Answer
The Eagle autorouter is a decent tool, and I use it a lot. However, like any tool, you have to know how to use it well and understand its limitations. If you are just expecting to throw everything at the autorouter, you will be dissappointed. No current auto router, and probably for a number of years to come, can do that for anything beyond contrived or toy problems.
You say there are settings in the Eagle autorouter you don't understand and never mess with. This is a bad attitude, and probably a good part of your problem. There is no set of control parameters that works on all boards. Even within 2 layer boards there are various tradeoffs. You absolutely have to read the manual and adjust the parameters for your particular situation.
For two layers boards, I often try to keep most of the bottom layer a ground plane. I therefore use the top layer for interconnects as much as possible, and the bottom layer for short "jumpers" to make the routing topology work out. In this case, I set a high cost for routing in the bottom layer.
Before autorouting, you have to look at the board and think about the critical areas that you can't explain to a autorouter. For example, you want to keep the loop currents of a switching power supply local and off the main ground plane. The same holds true for high frequency currents local to a digital chip, like bypass caps and crystal with its caps. If you are using the pseudo ground plane layer as I described above, then you want to manually connect every ground connection immediately to the ground plane with its own via. That leaves maximum room on the top layer for routing everything else.
The process of routing a board even when letting the auto router do most of the grunt work looks like this:
Here is a Eagle autorouter control file I used on a two layer project with the bottom layer a ground plane to the extent possible: