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?
-
1I'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: http://en.wikipedia.org/wiki/Code_reuse – Thomas O Dec 01 '10 at 15:21
-
2I 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. – Funkyeah Dec 01 '10 at 15:28
-
2@Funkyeah, you may find that many companies have not solved local code reuse. It is a different beast with hardware, much different. – Kortuk Dec 01 '10 at 15:43
-
1I would love to know if there is a method for hardware. – Kortuk Dec 01 '10 at 15:43
-
1I think the ability of software developers to refactor their code aids greatly to the viability of reuse. They can use an externally developed module or library for proof of concept and quick functionality and then refactor to gain performance where it is needed. Hardware does not have this benefit in that hardware refactoring (what I would basically call respinning a board) is financially unviable if done on a case by case basis. The other fact I would point out is that hardware modules are inherently tightly coupled due to the real world cost of over designing components. – Funkyeah Dec 01 '10 at 16:34
-
A second note though is that there is no real reason why the "Snippets" concept in Altium as mentioned below could not be cross-platform and highly reusable so long as there functionality and extensibility is clearly defined. An example might be for a power supply where "this switching supply is for high efficiency low cost generation of 5V @ 3A... it can be configured to provide X-Y output by changing the feedback resistors" – Funkyeah Dec 01 '10 at 16:37
-
2I’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 https://pm.stackexchange.com/. – Lundin Jun 09 '20 at 08:45
3 Answers
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.

- 12,360
- 2
- 44
- 71
-
-
1@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. – Nick T Dec 01 '10 at 16:21
-
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. – Funkyeah Dec 01 '10 at 16:27
-
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. – Hans Dec 01 '10 at 18:15
-
@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. – Kortuk Dec 01 '10 at 18:35
-
I've used the multichannel design features to duplicate circuitry fairly easily within a single design, that may also be extensible across PCBs. – Nick T Dec 01 '10 at 18:50
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.

- 18,303
- 7
- 63
- 94
-
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. – Kortuk Dec 01 '10 at 18:37
-
2A 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. – W5VO Dec 01 '10 at 18:50
-
2I 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? – Funkyeah Dec 01 '10 at 19:22
-
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. – W5VO Dec 01 '10 at 20:31
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?

- 8,669
- 20
- 29
-
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. – Kortuk Dec 01 '10 at 18:38