← Back to team overview

kicad-developers team mailing list archive

Re: eeschema for IC design

 

Hi Pepijn,

On 14/10/2020 20:00, pepijn de vos wrote:

I think there are a few ways to go about it, which don't exclude each
other. One is to extend the logic that adds the currents for voltage
sources and resistors to also add transistors.

Current release version of KiCad populates simulation signal list based on schematic components. Recently I added function NGSPICE::AllPlots(), which will retrieve names of all vectors from current simulation run. For your transistor issue I believe all you need is to rewrite DIALOG_SIGNAL_LIST::TransferDataToWindow() to use this function. Your NGSPICE object is under aParent->m_simulator.

Here's a couple of links:

1. Function to change:
   https://gitlab.com/kicad/code/kicad/-/blob/16d5f959814f10c64e2d5a8f14fc8357c5de6fee/eeschema/dialogs/dialog_signal_list.cpp#L49
2. Function that should be used:
   https://gitlab.com/kicad/code/kicad/-/blob/16d5f959814f10c64e2d5a8f14fc8357c5de6fee/eeschema/sim/ngspice.h#L63
3. Simulator object:
   https://gitlab.com/kicad/code/kicad/-/blob/16d5f959814f10c64e2d5a8f14fc8357c5de6fee/eeschema/sim/sim_plot_frame.h#L354

Best regards & can't wait to see the results :)
Sylwester


On 15/10/2020 15:15, Tomasz Wlostowski wrote:
On 14/10/2020 20:00, pepijn de vos wrote:
Hey all,

I'm a sw dev and recent IC design graduate, who made it his mission to
improve open source tools for IC designers.
To this end I've been playing with the recently released Sky130 PDK,
which is an open source PDK that does not require any annoying NDA's and
will actually allow sharing IC designs.

I've been looking at eeschema a bit as one of the options to do
schematic entry and simulation. However, I found that the integration
with ngspice is very limited at the moment. So I'm interested in making
this better!

The first problem I ran into is that it can't plot the currents of a
transistor no matter what you add in terms of spice directives. More
info:
https://forum.kicad.info/t/how-can-i-plot-transistor-currents-after-a-simulation/25324/8
So I have several questions.
Would this be a good first issue to tackle?
Hi Pepijn,

Sure, go for it - and if you'll find it too hard as a starter, there's a
ton of other issues in the simulator/ngspice integration...

https://gitlab.com/kicad/code/kicad/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=ngspice

I think there are a few ways to go about it, which don't exclude each
other. One is to extend the logic that adds the currents for voltage
sources and resistors to also add transistors. Another is to update the
simulator UI to populate the signal list from the raw file, rather than
its own idea of which signals were saved, so that you can add custom
.save statements and plot them.
I would by default tell the simulator to log all node voltages/pin
currents (including transistor pins). Anything else (that is internal
currents, etc.) should be parsed from .save directive (so I'm more in
favor of option 2).

For example, two other things that would be great to add is a way to
plot algebraic expressions of different signals,
This looks like a nice feature in the longer term. If you're interested
in developing it, I could offer some (but not much) help due to my
current workload...

Tom

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp



Follow ups

References