Electronic – Software to translate code description to PCB design


Is there an application available that allows you to define each component and it's connections in a circuit (kind of like Entity Relationship Diagrams in database design), and have the application generate the most logical use of space on a PCB for you?

Best Answer

No, not really. What you are asking for is called auto-placement, which largely doesn't exist, and works poorly when it does. This is one of those problems where the human brain is still better than software. Determining layout is a complex issue with a very large solution space, and as such hasn't yet yielded to anything more than toy software implementations.

However, most of the rest of going from a schematic to a PC board can be automated or at least largely assisted by commonly available software. Even for layout where the human makes the decisions, the software can make sure some basic rules are met.

Once you have a layout, which defines where what parts go on the board, then the next step is routing. That refers to figuring out where all those copper tracks go that form the connections between the parts. For this step, auto-router software is available and can be useful. Even that isn't to the point where you can fire and forget, but such software can take care of a lot of the details for you.

Usually routing is a iterative process between you manually adjusting a few things, then letting the software do the grunt job of routing the things that are less critical. Sometimes the software can't find a solution, or you don't like what it did. You then move a few things around, manually route some traces, set some constraints, and let the software try again.

Anything that calls itself a E-CAD (Electrical Computer Aided Design) package will have schematic capture and routing capability. Some will additionally have auto-routing capabilitiy or at least the option to add it. Examples of such E-CAD software are Eagle, Altium, and quite a few others.