4
\$\begingroup\$

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?

\$\endgroup\$
  • 1
    \$\begingroup\$ For very simple designs, you might want to look at the autoplace functionality of CAD suites like Proteus. The current release of Proteus does a surprisingly good job with 10-20 components, at least in comparison to the other such products I've seen. The grouping and other settings need some experimentation, though. For anything complex, you've already seen the "Nope, can't be done" answers, which I agree with. \$\endgroup\$ – Anindo Ghosh May 28 '13 at 18:29
4
\$\begingroup\$

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.

\$\endgroup\$
4
\$\begingroup\$

As mentioned in the previous answers, this is basically the function of Electronic Design Automation (EDA) or Computer Aided Design (CAD) tools.

The process of entering the connections between the components is known as schematic capture. Nowadays its normally done graphically rather than textually (as in traditional SPICE). The schematic may be annotated with additional indicators to show, for example, which wires must cary high currents, which wires should be layed out with controlled impedanc, or which ones must be length-matched to each other.

The EDA tool then converts the graphical schematic to a netlist file, which might be a plain text file or might be some kind of binary.

The netlist is imported into a layout design tool. In order to improve autorouting, the user has to carefully program constraints that indicate the design rules the tool should follow in placing the components and routing the wires between them. Managing these constraints to get the best results is the main skill needed to use the autoplacer and autorouter effectively, and it can be very time consuming.

In my experience, like others indicated, I get better results by doing manual placing and routing, possibly with some tool assistance. For example, I do most of the routing manually but use the tool to route multiple lines in parallel after I lay out just one of the lines. Or use the tool to add zig-zags to a line to make it length-matched to another line.

\$\endgroup\$
1
\$\begingroup\$

The O.P. basically describes an EDA software package. Such software does exist: Cadsoft EAGLE, OrCAD, KiCAD, Altium, to name a few.

The part tasked with automatically creating a layout from schematic is called PCB autorouter. But be aware that the layouts generated by autorouters are rarely most logical. A lot of professional PCB designers don't use autorouters.

\$\endgroup\$
  • \$\begingroup\$ No, a auto-router does routing. The OP is asking about placement. Auto-routers don't generate layouts. You are confusing terms and not answering the question actually asked. \$\endgroup\$ – Olin Lathrop May 28 '13 at 16:22
  • 1
    \$\begingroup\$ @OlinLathrop Nevertheless, I think, my answer had broadened and improved the O.P.'s outlook on his issue. \$\endgroup\$ – Nick Alexeev May 28 '13 at 17:31
1
\$\begingroup\$

The database you describe sounds a lot like the SPICE model that sits underneath almost all electronics simulation / CAD software in some way or another. The old command-line SPICE stuff is, I'm fairly sure, available free & open-source.

Translating from that model to a PCB layout (in theory) should be a matter of finding a PCB-CAD package & importing the database in the correct format, then telling it to auto-route the PCB. In practice you probably need a fair bit of background work to tie the simulation to specific components, footprints, etc.

However, Auto-route is about the worst way to lay out a PCB and is likely to result in a non-space-efficient and inelegant layout using more tracks, layers, vias, or links than you need.

Autoroute will work for very basic stuff, but then you may as well lay those out by hand for all the time it saves you. For anything more complex it will throw its hands up and leave the rest to you, having made a rats nest of the first half for you to untangle.

\$\endgroup\$
  • \$\begingroup\$ The OP is asking about placement, which has little to do with Spice. It is also a separate problem from routing or auto-routing, so that again is largely irrelevant. \$\endgroup\$ – Olin Lathrop May 28 '13 at 16:20
  • 1
    \$\begingroup\$ Just taking a wild guess at his motivation... anyway, auto route and auto place are two sides of the same coin, they both invoke the travelling salesman problem from different ends... once you've solved that, you're laughing. \$\endgroup\$ – John U May 28 '13 at 16:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.