SparkFun Forums 

Where electronics enthusiasts find answers.

Questions relating to designing PCBs
By MarkS
#35756
I'm relatively new to PCB design. I've done small projects since I was a kid, but now I'm moving up to much bigger designs. I'm currently using the freeware version of Eagle, and am about to buy the professional version. I keep reading how the autorouter sucks, and even from what little I know, I agree. I'm already planning on spending $800 for the schematic and board editors and not having to spend another $400 on the autorouter would be nice. However, how in God's name do you hand route a multi-hundred pin package or hundreds of tightly packed components or a board with more than two layers or a combination of these? I'm working on a breakout board for an ARM9 processor in a 256-BGA package. The spacing between each ball is less than the diameter of a human hair! I've seen BGA packages with more than 1700 balls! You guys would seriously hand route this?

How do you do this? Is there some secret to this?
By inventore123
#35764
Eagle's autorouter does not suck, it must be used properly. For example, you route manually all critical parts of the design, like traces from a crystal to a micro, and temporarily fill the manually routed pieces with some t_restrict, b_restrict to avoid the autorouter placing high speed digital lines close to the crystal. Or things like the ground lines of a DC-DC converter to avoid poor gnd design and high ripple, all things that an autorouter cannot know. Then you start the autorouter, that is enough intelligent not to ripup the manually routed traces. To avoid long lines with many vias you can reduce grid size, increase ripup level, and add more optimizations. My projects are extremely simple compared with what you want to do, but I think that eagle autorouter will be a better choice than manually routing everything.
User avatar
By leon_heller
#35765
BGAs typically need at least six layers, and are not usually routed manually. A good autorouter like the Pulsonix one I use does a very good job on complex boards, with results virtually indistinguishable from a manually routed board. I route most of my boards manually, though, as they are relatively simple.

Leon
By busonerd
#35770
I've done BGA's on 4 layers / 6 layers + handrouted both. I've never used pulsonix though, so I dunno how much better it would be.

Cheers,

--David Carne
By Philba
#35777
I can't agree that the eagle router is preferable to hand routing. For example, how do you handle off-grid components. I find it almost impossible to get everything on grid and the off-grid pads get weird traces into them that often make it impossible to pass drc. How do you deal with analog traces? making sure that signals cross at right angles?

Hand routing is NOT that hard. It just takes a little practice. I wouldn't start with a 256 ball chip, though. I'd work up to it. I'm highly skeptical that eagle's router would handle it that well. You could try, though. I think that you might be pushing the capabilities of eagle.
User avatar
By leon_heller
#35778
Whatever routing method you use you need to get the BGA footprint designed correctly, with a breakout via and breakout track for each pad.

This is a typical one from the Pulsonix library (a Xilinx FPGA):

Image

It uses eight layers.

Unused breakout vias and tracks are automatically deleted. Eagle probably doesn't do that.

Leon
By busonerd
#35780
eagle doesn't understand even the concept of a breakout, hence when doing bgas, hand layout is pretty much mandatory.

Cheers,

--David Carne
By MarkS
#35890
I've tried the demo of Pulsonix, and while I like the number of features, the learning curve is FAR too steep! I like the features that they have in their library editor, but not all electronic components have gates and the part editor requires gates to be assigned to pins. I tried to create a simple Motorola 68000 processor in a 64-DIP package and gave up after four fruitless hours. It should have been simple. Once I got it finished, I could not add it to a schematic without having to cancel out a gate assignment dialog box 64 times. Then it would not translate to the PCB from the schematic, although I could add the part directly to the PCB without problems. :roll: I give up! I wouldn't spend $6,000+ on a piece of software anyway. :shock: For that amount, it had better cook my dinner and clean my house!

There are problems with Eagle, but they are about to release a new version. I LOVE Eagle's library editor, even for its problems. It needs a footprint wizard terribly, but the editor is tightly integrated and Pulsonix' is not, surprisingly. I also like the pin name ability in Eagle. A BGA or PGA does not have pins labeled from 1 to whatever. They are labeled by rows and columns. You can name a pin 'A1', 'B1', etc., with Eagle. You can't with Pulsonix. This issue alone is a deal breaker. It would be Hell to try and label the pins on a BGA or PGA from the data sheet without first creating a translation table with pen and paper. Ain't gonna happen!
User avatar
By leon_heller
#35910
Creating parts in Pulsonix is actually very easy, I can create something like a 68000 in about 15 minutes! I think your problem is due to you not understanding the gate concept, something like an MCU is a single gate. It's explained in the documentation. Using the wizards for symbol and part creation makes things even easier and faster.

The Pulsonix part editor is very tightly integrated - one just has to right click on any part in the schematic or PCB editor and it may immediately be edited. Once in the part editor the footprint and schematic symbol may be edited, the part may be saved to the library, and the schematic and PCB may then be updated with the new version of the part.

You seem to have confused pin numbers with pin names; BGA pin names may be A1, B2, etc. They may even be allocated automagically to save typing - very useful with devices having 1000+ pins!

There is a library creation utility that automates everything via scripts, saving even more time, especially if it is used in conjunction with a scripting language like PERL or Python.

They tried to get me to use Eagle where I used to work, but I insisted on using my own copy of Pulsonix, as it needed half as many keystrokes for a typical design which was aggravating an RSI condition. I could create a PCB in a fraction of the time it took the other engineers who had to use Eagle. One of my colleagues spent a whole week getting a switching power supply routed properly that I could have done in one day with Pulsonix, and he'd been using Eagle for years.

Leon
By funnynypd
#37028
It took quite a while to learn those fancy functions, however once you figure it out, you don't want other software. And The blazerouter is pretty good auto-route sw.