12
\$\begingroup\$

At my company we do a lot of original hardware designs each of which are designed by only a small sub-section of our engineers. We are looking at ways to better document and distribute what has been done on each project so that information can be distributed and potentially reused. How does your company handle this?

\$\endgroup\$
7
  • 1
    \$\begingroup\$ I'm not sure if it applies directly to electronics but code reuse is a big thing in the software world. Wikipedia has an article on code reuse: en.wikipedia.org/wiki/Code_reuse \$\endgroup\$
    – Thomas O
    Dec 1 '10 at 15:21
  • 2
    \$\begingroup\$ I believe the reuse concept applies but while it is difficult in software to manage it is an all together different beast in hardware. Software is trying to crack the problem of global reuse, where code is shared between companies and somewhat between languages. Hardware engineering hasn't even solved the local reuse in any smooth manner that I know of. Given all the different proprietary schematic and CAD formats in the mix I think it would be better to solve local reuse first and then move on to global hardware reuse. \$\endgroup\$
    – Funkyeah
    Dec 1 '10 at 15:28
  • 2
    \$\begingroup\$ @Funkyeah, you may find that many companies have not solved local code reuse. It is a different beast with hardware, much different. \$\endgroup\$
    – Kortuk
    Dec 1 '10 at 15:43
  • 1
    \$\begingroup\$ I would love to know if there is a method for hardware. \$\endgroup\$
    – Kortuk
    Dec 1 '10 at 15:43
  • 2
    \$\begingroup\$ I’m voting to close this question because it is not about electrical engineering but project management. It may or may not be on-topic at pm.stackexchange.com. \$\endgroup\$
    – Lundin
    Jun 9 '20 at 8:45
8
\$\begingroup\$

Some EDA tools like the one I use, Altium Designer, provide methods to save varying portions of circuits to make them somewhat portable. For small circuits, you can use "Snippets", or for larger, multi-sheet reuse, "Device Sheets"

I don't know of any standard for hardware schematics (SPICE is too abstract; to my knowledge you can't tie it in with footprints, your part numbers, suppliers, their part numbers...) so any sort of reuse would be highly dependent the EDA package your company uses and the features it provides, or the organizational methods you implement surrounding it.

\$\endgroup\$
6
  • \$\begingroup\$ I have seen those features before, how well do they actually work? \$\endgroup\$
    – Kortuk
    Dec 1 '10 at 16:19
  • 1
    \$\begingroup\$ @Kor: Personally I've just reused other people's and my own 'normal' sheets, owing to a mix of unfamiliarity with the process to create them (though it seems easy enough), having to make minor modifications because of different requirements, or the sheet not being thought of beyond the single project. \$\endgroup\$
    – Nick T
    Dec 1 '10 at 16:21
  • \$\begingroup\$ We use Altium Designer as well and I love the tool for schematic capture and layout. I haven't used the snippet tool at all for our own IP and would be interested to here if other people use it/like it. \$\endgroup\$
    – Funkyeah
    Dec 1 '10 at 16:27
  • \$\begingroup\$ I've used Altium too and done a bigger project with it. It's very very easy to manage bigger projects, and if you think beforehand about reusable components I bet you can set up your hardware very flexible. Atleast, for the schematic, the PCB is something you probably have to redraw every time. I like Altium's Device Sheet system a lot. \$\endgroup\$
    – Hans
    Dec 1 '10 at 18:15
  • \$\begingroup\$ @hans, I have not gotten to use altium design, but they showed a way you could paste a hardware system in and have its PCB match. It looked nice. \$\endgroup\$
    – Kortuk
    Dec 1 '10 at 18:35
8
\$\begingroup\$

When you say "hardware" designs, I know you're probably talking about PCB and discrete component solutions, but I have some experience with designing ASICs that may be useful in a conceptual level.

When we design an ASIC that is fairly complicated, we use hierarchy from the beginning. One major reason for that is that as the designs get bigger, your ability to thoroughly evaluate and simulate them decreases. Also, ASIC designs can get quite large, and without a well organized hierarchy it can be difficult to manage the whole design.

We have a strong culture of reuse for our building blocks. For example, if we have an op-amp design that someone spent a lot of time designing and validating, that design would be packaged so that another designer could easily import that design into their own workspace. We have a centralized server for storing these packages, so all the parts you need are easy to find.

While an individual block may have been designed for a specific circuit (e.g. a voltage reference for an op-amp), it usually can be re-used without modifying the original design. The design cycle lasts for a month or longer, and includes validation of a layout. Designing one of these blocks takes time to familiarize oneself with the problem set, so even if the block isn't ideal, you would probably try to use it anyways.

\$\endgroup\$
4
  • \$\begingroup\$ Sounds great, we do something similar in the design labs at our university. The issue is when something that does not work get added. I hate it, but it gets the job done. \$\endgroup\$
    – Kortuk
    Dec 1 '10 at 18:37
  • 2
    \$\begingroup\$ A reuse strategy needs a lot of discipline, sorta like a version control system. It doesn't work as well if everyone doesn't understand how and when to use it. \$\endgroup\$
    – W5VO
    Dec 1 '10 at 18:50
  • 2
    \$\begingroup\$ I have taken some ASIC classes and know FPGA design quite well so I definitely would say that the design and reuse of analog ASIC components are a direct allegory to discrete component solutions at the schematic level. My questions to you would be how does the designer of any given building block disseminate the usefulness and flexibility of said building block? Using your voltage reference example, do others in your team know about the voltage reference IP because its a small team or because it can be searched for? If the voltage reference is flexibile how do you convey that information? \$\endgroup\$
    – Funkyeah
    Dec 1 '10 at 19:22
  • \$\begingroup\$ In the larger groups I've worked in, we have a datasheet repository for relevant parts. Each datasheet would have enough information for someone to use the design without spending a week reading up on relevant literature. For my work, the different IC processes we use limits the sharing our whole team can do, so a better organization of the blocks wasn't necessary. We usually don't do duplicate designs, unless the design requirements are significantly different - we had only one bandgap voltage reference, for example. \$\endgroup\$
    – W5VO
    Dec 1 '10 at 20:31
4
\$\begingroup\$

I know TinyCAD allows a schematic to be saved to a hierarchical symbol - you can draw how you want the circuit to be represented in a larger circuit and specify what inputs and outputs there are. Your circuit pretty much shows up as a box with pins in the larger schematic and a simple double click lets you see what's underneath and edit it. All the parts in the sub-circuit show up in the parts list, the netlist has all of the sub-circuit connections, etc. It's been a while, but don't other EDA tools allow this or similar behavior?

\$\endgroup\$
1
  • \$\begingroup\$ Yes, they do, but I think that Altium does it in a more advanced way, but h blocks is how I have seen it done. \$\endgroup\$
    – Kortuk
    Dec 1 '10 at 18:38

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