What would the ideal EE CAD tool look like?

I find that the way that is standard in the EE community to produce your schematics and PCBs is from the stone age. Sure the tools have gains some features that are newer, but the way of designing is still the same as 25 years ago. I find that most EEs are not quick to change.

Before I continue a disclaimer: I am no professional EE and there may be aspects to EE designs that I am not aware of. Let me know in the comments.

So how would an ideal tool look like. Lets start at the beginning:

Schematic Drawing

I would like to be able to draw a logical schematic. That is- a schematic that does not concern itself with packages or footprints, boards, inter-board connections and the sorts. It just communicates the electronic circuit as it would function as a whole without any noise. I understand that sometimes you need to alter the circuit a bit because two boards are connected by a long cable and such – but that is not (necessarily) part of the core design.

I would also like to be able to make a modular schematic drawing. That means I create sub/child drawings for sub-systems or to easily repeat sub-systems. Design a sub-system once in a drawing declared as a repeatable sub-system and simply copy and past the drawing as many times as you need it. That drawing then becomes a ‘device’ in the master drawing. Change something in the sub-system and it is changed for all sub-systems. Wan’t to split of at some rev of development, simply unhook it from the source and change only that instance.

And by drawing modular, I have a block diagram for free. But sometimes you need the whole picture. So why not have a view that expands all modules into details and shows all the goods? Ok, there may be some layout issues, but that should be doable.

Components or devices also need some work. I am fine with the passives – these have well-defined symbols (although different standards exist – which should be selectable). But for digital devices, only the logic gates have symbols, all other devices are just blocks (rectangles). The way these blocks are drawn is very inflexible. It may be more logical for some pins to appear on one side and other pins to be located on the other side for your specific schematic. You should be able to move them. Currently you’re stuck with what someone else thought was best. You could design a new part, but that gets cumbersome if you have to do that for each schematic you create and its not a different part – its the same. Note that in a logical schematic you do not (necessarily) concern yourself with what gate sub-number a component represents – that is a physical decision.

Also with the programability of a lot of digital devices, the labels on the pins are not describing the use you make of them in your specific circuit (what does port B represent in your circuit?). So you must be able to rename those labels (not that the manufacturer’s name should be overwritten – but you should be able to hide them if you want to). You may even want to make notes on the device in the logical schematic drawing to ‘remember’ what the program should do (pseudo code?).

You should be able to add data to the nets as well. What if I know how much voltage will be on a net or how much current will flow though a net (or better let the program figure that out)? Adding these properties to specific nets will give the PCB designer hint to what type of trace should be routed, the thickness/width of the trace, the space between traces, equal length traces (for diff signal pair) etc.

Then there is the physical schematic drawing. But that is the result of doing PCB designs, designing the physical boards and connectors etc. So I would say you start with dividing the logical schema into one or more boards and for each board design how it connects. The program can help you with the connections. When you drag a component on one board it can indicate what nets cross between boards. Of course, the modular nature of the logical schematic is a nice basis to start the boards from. When you have decided on the PCBs you have to add connectors to connect the nets. You can also add other components to add drivers, or buffers or filters and such where needed. You may choose to push these up to the logical schematic if you feel like it.

So now you have an idea of what the boards are going to be. How did you decide? Probably you had to fit some case. Why not integrate a case-designer in this program. You should be able to select existing cases from a library with dimensions and screw hole locations etc. Or you could design a new case. Or you could import a CAD drawing. I understand this requires 3D technology and is a little more advanced. (make this an add-on you can buy separately with the program). Nice thing about this is you know what the physical dimension have to be of your PCBs, where the screw holes should go, what parts need to poke out through the case (displays, buttons, pots etc) and how much room there is for the components to fit on the PCB. This is also a place where you may start choosing specific packages/footprints for some of the components.

PCB designer

Before you can start  designing the PCB you need to specify the packages/footprints for the components that go on the PCB. It should be easy to change that during the PCB design process. There are not many features missing from the modern PCB designers, most of them are pretty good. Some stupid things are not (easily) supported though, like inserting a wire jumper (for single sided layout). Never understood why. Auto placement is an excellent feature. Auto routing is not as important as some think. Layers should be easily switchable (on or off). A full top and bottom view (including silk screen) and possibly a 3D view (in conjunction with the case designer).

As you can see, most of my ideas are based around the schematic drawing.

Published in: on April 10, 2015 at 4:12 pm  Leave a Comment