5
\$\begingroup\$

IS there any PCB design software where I can design & route common part of design (like DCDC with support circuitry), and make it some kind of 'component' - so that I can always drop it to my new project, and it will appear already routed.

There might be needed several occurrences, and if I update component - it must update all it's instances on the board/schematics.

What can you suggest (at the moment I am using Eagle - I know it's possible to use some kind of macros to do this once, without ability to edit it later)? Both free and commercial software is considered.

\$\endgroup\$
  • \$\begingroup\$ I know I have heard of software that does this, I have never used them myself though. \$\endgroup\$ – Kellenjb Jun 20 '11 at 0:53
  • \$\begingroup\$ Not the best software that does this but ExpressPCB definitely allows you to do something like that. \$\endgroup\$ – dhsieh2 Jun 20 '11 at 2:16
  • \$\begingroup\$ The mechanical guys do this all the time in 3D CAD packages like SolidWorks where they create sub-assemblies that can be redesigned later. It's frustrating that EDA packages don't seem to offer this ability at the circuit level - only at the component level. Maybe it's because those mechanical guys need all the help they can get. EDA packages offer features like 'design reuse' that are nothing more than copy&paste with refdes auto-renumbering. I'm with you - I want what the mechanical guys have. \$\endgroup\$ – JimFred Dec 9 '13 at 0:07
4
\$\begingroup\$

You can fake this pretty effectively in Altium Designer.

Altium has what they term "Recyclable Schematics" - Schematic layouts that you can paste into larger schematics and treat as components.

Duplicating the PCB end is a bit more work, but definitely doable (I've done it). Basically, you route the DC-DC on one board, and then simply copy-and-paste the design into whatever new board you have. This will move the component footprints, and traces, but not the nets. Then, assuming you have the corresponding schematic entity, the next time you synchronize the schematic and PCB, Altium will match the free-floating footprints to their schematic entities, and add the netlabels to the existing copper.

Alternatively, assuming you are OK with not being able to edit the DC-DC layout in situ (on the PCB), you can just paste the layout into a footprint library, and define where you want input and outputs to be.
In this case, you would edit the library file, and then propagate the changes out with the "Update from PCB libraries". You can also modify the primitives of a component once it has been placed, but changes there will not propagate back to other places you have the component.

Third, Altium can embed one board into another - I use it for panelizing things, but I think you could probably also use it for embedding one functional section into another. It wouldn't tie into the schematic, though.

It's worth noting that I do the first two of these regularly at my job (usually with FTDI USB-Interface circuitry) - It's definitely a viable approach.

\$\endgroup\$
  • \$\begingroup\$ The Pulsonix software I use has hierarchical "Blocks", which can be used in the same way. \$\endgroup\$ – Leon Heller Jun 20 '11 at 5:33
  • \$\begingroup\$ Yeah, but I can confirm that Altium can find and re-sync Schematic and PCB blocks, even if they are copied separately. \$\endgroup\$ – Connor Wolf Jun 20 '11 at 5:38
  • \$\begingroup\$ I can do that in Pulsonix, also, with a little trick I came up with. I just tried it. It probably involves a bit more work. \$\endgroup\$ – Leon Heller Jun 20 '11 at 10:26
1
\$\begingroup\$

You can do this with gEDA's gschem. I haven't tried with gEDA pcb, but I don't see why it wouldn't be any different from another symbol footprint.

The idea is to create a symbol of the subcircuit, design a pcb footprint for it, then stick it in your symbol library. Connections are made with nets, not pins. I've just started doing this in a 10+ page (A4) schematic in order to kludge together a system block diagram. (I don't recommend it for this purpose -- it wasn't very useful to me.)

\$\endgroup\$

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.