WEBVTT

00:00.000 --> 00:16.280
Yeah, many things, I'll talk about a little bit about what Angie Spice is, what it has

00:16.280 --> 00:23.640
as new items and issues, and especially I will talk about a relatively conceptual simple

00:23.640 --> 00:30.440
thing, but hopefully useful for some users.

00:30.440 --> 00:33.800
I give a short introduction into the simulator.

00:33.800 --> 00:39.040
I'll talk about what are expice code models and Angie Spice.

00:39.040 --> 00:45.800
I'll talk about keycat supporting these code models.

00:45.800 --> 00:49.160
I think this is my special development here.

00:49.160 --> 00:55.080
There's some examples and also give some words on what's next in Angie Spice.

00:55.080 --> 00:59.480
Yeah, so Angie Spice, but is it, is it a circuit simulator?

00:59.480 --> 01:03.920
On the left, you have the circuit and the inverter and the middle, you have the input

01:03.920 --> 01:08.120
to Angie Spice and that list, Spice, that list.

01:08.120 --> 01:13.400
And the output is graphical or data or whatever you would like to have.

01:14.400 --> 01:20.400
Net list input, this is old fashioned, people would like to have schematic entry, of course.

01:20.400 --> 01:25.200
And so I was, Angie Spice itself does not have schematic entry.

01:25.200 --> 01:32.400
And so I was happy when the keycat devs grabbed Angie Spice and plugged it into Iskima.

01:32.400 --> 01:40.800
And so we have a keycat Angie Spice interface, and Iskima does schematic entry, generates

01:40.800 --> 01:46.720
this Spice net list, and does a graphical representation of results.

01:46.720 --> 01:51.520
And the data are shifted between Iskima and Angie Spice and Angie Spice is here,

01:51.520 --> 01:58.000
it can be as a shared library, so it's loaded the module directly into Iskima.

01:58.000 --> 02:08.000
Yeah, and this is the window, Iskima simulator, we know you have the circuit diagram.

02:08.800 --> 02:14.800
Well, this is a simple oscillator with the Bicola transistor and some feedback and RC phase shift.

02:14.800 --> 02:25.800
And you have the simulator window below, and the simulator window allows to define simulation types.

02:25.800 --> 02:36.800
For example, here, you have a sequence of, it's called transient simulation, this is data or signals versus time.

02:36.800 --> 02:43.200
And then to evaluate, we have an oscillator, you would like to see what kind of oscillation we have.

02:43.200 --> 02:52.800
And so we have run an FFT, a fast Fourier transform, and we see this simulator output on the X-axis frequency.

02:52.800 --> 03:03.800
And we see that it's not a pure sinusoidal signal, we get out many harmonics, but okay, this is what we want to learn.

03:04.200 --> 03:20.800
Yeah, what is new in Angie Spice, current version is 44.2 from last from January 11th, we support very

03:20.800 --> 03:25.800
look a compact device models and analog building blocks.

03:26.800 --> 03:38.800
We allow co-simulation doing mixed signal simulation that is we have analog capability of Angie Spice, and we allow very

03:38.800 --> 03:49.800
log digital circuits to be plugged in into Angie Spice after they have been compiled either with very later or with I very

03:49.800 --> 04:01.800
very lot, I equals very lot. It's just two days old that we also have the interface to the VHDL, digital

04:01.800 --> 04:12.800
description, VHDL, digital circuit descriptions will be compiled with DHDL, and then compiled into

04:12.800 --> 04:22.800
a DHL or share library and then directly loaded into Angie Spice for simulation of both things together.

04:22.800 --> 04:35.800
We also allow C-code models to be interface to Angie Spice, and we have some recent activities on degradation simulation.

04:35.800 --> 04:44.800
Well, we know that when we run circuits, they will be great over time, time may be one year, 10 years or whatever.

04:44.800 --> 04:52.800
You can't simulate for 10 years to see the results of degradation, so you have to have some models, some ideas to speed that up.

04:53.800 --> 05:03.800
Okay, yeah, the examples I'm showing now, these are examples I've taken from friends or co-workers or from the web.

05:03.800 --> 05:12.800
I'm not a circuit designer, so I'm not especially going to deeply into this.

05:13.800 --> 05:38.800
Stefan Schippers, he's the author of the X-Scam graphical user interface for IC design. He did this tiny circuit, a very low A module, not complex device model, but just a small amplifier.

05:38.800 --> 05:50.800
Yeah, we have learned where look A gives very short code, I think this is the output here, it's a amplifier that tangents a public was.

05:50.800 --> 05:59.800
So, limited or saturated output voltage, we compile this with open path.

05:59.800 --> 06:09.800
And then we have a module, a shared library, which can directly load it into Angie Spice, this is the accept of the Spice net least, adding this model.

06:09.800 --> 06:23.800
And so if you have simple very low A descriptions, they have to be compatible to open path open path does not cover the whole very low A, but subset.

06:23.800 --> 06:41.800
Then you can compile it and then run analog simulations within Angie Spice. Well, and this is the, I copied the web page from Stefan.

06:41.800 --> 07:06.800
This is, again, the very low A net least, this is the tiny Angie Spice script to run the simulation, and this is the output graph, output voltage, input voltage, and this is the derivative and the amplification effect of 40, and this is to be found here somewhere in the model.

07:06.800 --> 07:28.800
Okay, Angie Spice now allows to do very low of the HDL, so HDL, digital circuit blocks code simulated with analog circuit blocks.

07:29.800 --> 07:49.800
Within Angie Spice, you have the digital simulator. The different simulation is event based is fast, because it's, it's not working on large matrices, but it's working on lists of events and list handling is fast.

07:49.800 --> 08:05.800
We have the analog simulator, and of course we need some synchronization. So the next event is a breakpoint and the analog simulator simulates until this breakpoint and then switching happens and then moves up.

08:05.800 --> 08:31.800
And we can use, as digital, we can use either the very low HDL input, but Angie Spice for a long time already has some internal event based simulation capability called X Spice, and we can use both, and we can mix things, and we use or can do that.

08:31.800 --> 08:50.800
Yeah, and this is an example offered by Custon Wulf. He is very active in education, and there's a lot of nice YouTube videos, it took his example.

08:50.800 --> 09:09.800
And this is an analog part, it's a current mirror with weight output, so can be used as a digital analog switch, but it has to be controlled here with the five digital inputs to switch on and off.

09:10.800 --> 09:27.800
And the digital input is this very low thing, I think this is simply a counter, I think this one here is edit one and counting up, and then being reset again and counting up again.

09:27.800 --> 09:39.800
Well, and if you do the simulation, you have the timing point and you get the analog output, if you do the co simulation.

09:39.800 --> 09:51.800
If you want to know details about these, please have a look at the websites, it's given here, it can be downloaded, it can be run.

09:51.800 --> 10:08.800
And the NG Spice interface to this digital stuff is a so-called code model, it's decosim, and this has been written by one of our developers, the GIS Edkinson.

10:08.800 --> 10:17.800
And he recently enhanced this also to be used for real HDL digital code.

10:17.800 --> 10:46.800
Yeah, okay, C code models, for example of a microcontroller, and if you look at this, you see this has been done in keycat, mixed signal simulation, this is a basic circuit with two switches and an inductor.

10:46.800 --> 11:00.800
And this is a back converter converting high voltage to low voltage by adequate switching of these two devices and the storing the energy in the inductor.

11:00.800 --> 11:12.800
Okay, and this simple switch is now controlled by a program from the microcontroller.

11:12.800 --> 11:28.800
And the interface is here, you will go in with your input voltage, you will go in with the output voltage and you go in with the current measured here at this point.

11:28.800 --> 11:40.800
And you control the switches with two outputs, we'll find here and somewhere else.

11:40.800 --> 11:57.800
Okay, so this is concept development, you can do a simple things, this is not for PCB, these things are all non, non, no footprints, no nothing, this is just a simulator input.

11:58.800 --> 12:23.800
With basic devices, over the simple switches, you could relate the stage replaces switches with transistors and you can learn about how to make this control, because this control has to get the feedback and has to have some control algorithms inside this can be digital.

12:23.800 --> 12:39.800
Yeah, this is what he showed on his web page with his effect part of the key cut foam, you find it inside have to search a little bit.

12:40.800 --> 12:50.800
Yeah, this is the simulation, the control signal and the output signal saturating at the voltage, hopefully six volt or so.

12:50.800 --> 13:05.800
And obviously he did some breadboarding and some measurements and these are the measurements shown here with the output voltage, well rising similar some oscillations in the beginning and then stabilizing at the later point.

13:05.800 --> 13:19.800
Yeah, so it is, yeah simple simulation of relatively complex things like DC DC converters.

13:19.800 --> 13:28.800
Yeah, this is, it's not my hobby, in fact it's a project, first time that Angie Spice got some funding.

13:29.800 --> 13:37.800
BNBF project called flow space where we cooperate with national German partners, IHP and others.

13:37.800 --> 13:40.800
And we do degradation simulation.

13:41.800 --> 13:58.800
The degradation simulation means that we put in models which allows to speed up the degradation because we can simulate for seconds or milliseconds not for years.

13:58.800 --> 14:07.800
And then we can recalculate to show the degradation within one year or 10 years.

14:07.800 --> 14:17.800
And this is a transistor output curve, if you know how to translate, this is a current output, the green one is before degradation and the red one is after degradation, so it goes down.

14:17.800 --> 14:27.800
And at a certain point in time it goes down that much that the circuit sees is functioning and we want to figure out how will that happen.

14:27.800 --> 14:35.800
This is a very simple circuit and oscillator, a ring oscillator, see more, a ring oscillator again green is before and the red is after stress.

14:35.800 --> 14:44.800
And what you see here, FFT, this is a frequency before stress and this is a frequency after stress.

14:44.800 --> 14:54.800
And so the frequency has gone down, that means drive capability of the inverters of the circuits has gone down and we have simulated that.

14:54.800 --> 15:05.800
Okay, I want to talk about some elemental devices from X-Spice which are now used, made useful in N in T-Cat.

15:05.800 --> 15:14.800
X-Spice is very old staff developed 30 years ago in the 90s.

15:14.800 --> 15:19.800
Fully integrated into NG-Spice since it's beginning.

15:19.800 --> 15:26.800
And X-Spice offers cold, so-called cold models, analog blocks and digital blocks.

15:26.800 --> 15:33.800
Fully integrated as models into the NG-Spice simulator and we have more than 60 blocks available.

15:34.800 --> 15:44.800
And we can make use of the fast digital simulation inside of NG-Spice.

15:44.800 --> 15:54.800
Of course, then one, this X-D-Tate waveform and so on can decide slower simulation, analog faster simulation digital.

15:54.800 --> 16:04.800
And users might create their own cold models with its C-code with using predefined macros.

16:04.800 --> 16:07.800
Okay, I don't want to go too much into detail.

16:07.800 --> 16:11.800
This is what the distribution of NG-Spice delivers.

16:11.800 --> 16:19.800
We have these cold models and sources for analog, mixed, signal and digital complex.

16:20.800 --> 16:25.800
Well, of course, we have the interface and the model for loading the code models.

16:25.800 --> 16:32.800
And this is what then comes out, all these code models are integrated into shared libraries.

16:32.800 --> 16:43.800
And this runs on all operating systems we are supporting and it's macOS and Linux and Windows.

16:43.800 --> 16:51.800
And the NG-Spice executable may load cold models by command, cold model, cold model name.

16:51.800 --> 16:56.800
And then it is in the simulator.

16:56.800 --> 17:02.800
Why add support for these X-Spice models into C-Cat?

17:02.800 --> 17:10.800
Well, the task is to create environment to do system simulation.

17:10.800 --> 17:17.800
We want to use the flow, Hicat is key my NG-Spice simulation capability.

17:17.800 --> 17:32.800
Facility at the use of these cold models have schematic entry at block level and to simplify creating these net lists.

17:32.800 --> 17:35.800
Well, as I said, it's not linked to PCB design.

17:35.800 --> 17:38.800
It is system evaluation design.

17:38.800 --> 17:48.800
It may be combined with all the other features NG-Spice offers with the very low HDL interfaces just describes.

17:48.800 --> 17:55.800
Well, these are the elemental devices we have right now, but this is just growing.

17:55.800 --> 18:02.800
Well, I grabbed this one 13 input NG-8 because there was a simple 13 input NG-8 already available in C-Cat.

18:02.800 --> 18:06.800
I found this nice and you may make use of it.

18:06.800 --> 18:09.800
Well, we have the digital left.

18:09.800 --> 18:16.800
We have analog on the upper right, and we have some, because I'm hired hybrid models.

18:16.800 --> 18:28.800
For example, PWM with analog input and digital output, or oscillator with analog input digital output.

18:28.800 --> 18:35.800
Yeah, and it's very simple to install these if you have an existing keycat installation.

18:35.800 --> 18:43.800
It's offered in the forum, in the keycat forum, a file, and you have two files,

18:43.800 --> 18:48.800
C-Cat symbols, the expice keycats symbols, and the expice models.

18:48.800 --> 18:57.800
And if you put them into the same place where the standard symbols are in keycat,

18:57.800 --> 19:00.800
then that's it.

19:00.800 --> 19:11.800
Just add this to the Y-A symbol, add it to the symbol list, or the simple library list, and then you're done.

19:11.800 --> 19:19.800
Well, simple example, multiplier, analog multiplier with two sinusoidal inputs.

19:19.800 --> 19:26.800
And if you do it right, then you can simulate amplitude modulation, 100 kilohertz.

19:26.800 --> 19:33.800
I've frequency signal, and one kilohertz, low frequency signal, and the output can be seen.

19:33.800 --> 19:36.800
Very simple thing.

19:36.800 --> 19:45.800
Last year I talked about this circuit, two kilowatt audio amplifier, digital amplifier, switched amplifier, class D.

19:45.800 --> 19:53.800
And on the left there was this audio driver circuit, which has an analog input, pulse width modulation,

19:53.800 --> 19:55.800
complementary push pull output.

19:55.800 --> 20:02.800
It has to have a date time generation, not to switch both parentheses on at the same time,

20:02.800 --> 20:10.800
because then you would create a lot of smoke, and it has to have high five voltage shift.

20:10.800 --> 20:18.800
Okay. On the left there is the net list. I used to use that time two years ago,

20:18.800 --> 20:21.800
and I had a look at this net list and the salt.

20:21.800 --> 20:25.800
Well, it's difficult even for me to read it and to recapulate.

20:25.800 --> 20:29.800
It's much easier if I create these blocks.

20:29.800 --> 20:37.800
And this is the audio driver with the blocks I've just described.

20:37.800 --> 20:40.800
Peter WM, a little bit of logic.

20:40.800 --> 20:49.800
A date time generator, every time the signal switches, it creates a hundred nanosecond or fifty nanosecond.

20:49.800 --> 21:00.800
And then the output drivers, which allow to drive the transistors and also switch the high voltage, all in a very simple fashion.

21:00.800 --> 21:04.800
Yeah, and this is the result sinusoidal input.

21:04.800 --> 21:09.800
And if you look at the output, well, here you don't see much, but if you enlarge this,

21:09.800 --> 21:13.800
you can see the blue one is much larger than the red one.

21:13.800 --> 21:17.800
It's a little around the zero, both are the same.

21:17.800 --> 21:20.800
And on the right it's just the other way around.

21:20.800 --> 21:24.800
Red is broad and blue is small.

21:24.800 --> 21:26.800
Yeah, this is a thing.

21:26.800 --> 21:32.800
Again, got from the kick out forum.

21:32.800 --> 21:37.800
See glass, I don't know his name and detail.

21:37.800 --> 21:40.800
He made this example.

21:40.800 --> 21:43.800
Three equations on the left.

21:43.800 --> 21:47.800
These three equations, some scientists has written them down.

21:47.800 --> 21:53.800
They are named for chaos.

21:53.800 --> 22:02.800
They allow chaos switching a simulation in the so-called logins attractor.

22:02.800 --> 22:11.800
Well, and what is of interest, he made these with these symbols.

22:11.800 --> 22:15.800
Yeah, for example, let's have a look at X.

22:15.800 --> 22:21.800
The X output before integration.

22:21.800 --> 22:27.800
This is what the X is, if you differentiate or before the integration.

22:27.800 --> 22:29.800
Here you have an integrator.

22:29.800 --> 22:33.800
And before you have a gain stage with a gain 10.

22:33.800 --> 22:39.800
And you have a subtract symbol.

22:39.800 --> 22:44.800
And it subtracts Y minus X.

22:44.800 --> 22:49.800
Yeah, and this is, so you can, if you remember if you are as old as I am,

22:49.800 --> 22:53.800
you remember analog computing.

22:53.800 --> 23:02.800
And, well, this is analog computing simulated in a digital computer.

23:02.800 --> 23:04.800
Yeah, this is the output.

23:04.800 --> 23:10.800
Things turn around here with your simulation and suddenly switch and turn around here and switch back.

23:10.800 --> 23:13.800
Yeah, in a chaotic fashion.

23:13.800 --> 23:15.800
What's next in Angie Spice, some ideas.

23:15.800 --> 23:19.800
We want to improve RF capability by adding harmonic balance.

23:19.800 --> 23:22.800
It's ongoing and a project.

23:23.800 --> 23:28.800
As well as the support for reliability and degradation simulation.

23:28.800 --> 23:34.800
Simulation of transient noise is something circuit designers I see designers especially want to have.

23:34.800 --> 23:38.800
And we will go to offer that hopefully.

23:38.800 --> 23:46.800
On going thing is to improve usability and the interface between keycat and Angie Spice.

23:46.800 --> 23:49.800
Some compatibility issues may be solved.

23:49.800 --> 23:56.800
The digital interfaces, very log VHDL, C code are relatively new.

23:56.800 --> 23:59.800
And more users should use them and test them.

23:59.800 --> 24:01.800
And this is ongoing.

24:01.800 --> 24:06.800
Yeah, and of course artificial intelligence has to be somehow named and mentioned.

24:06.800 --> 24:14.800
And we have to figure out how to use this for improving McSignor simulation.

24:15.800 --> 24:20.800
Well, just support, links and bet it.

24:27.800 --> 24:28.800
Thank you, Ogre.

24:28.800 --> 24:29.800
So questions.

24:32.800 --> 24:33.800
Hello.

24:33.800 --> 24:41.800
Is there any plans to improve the error messages to maybe make it smoother for people to get into Angie Spice?

24:41.800 --> 24:47.800
Yeah, the question is, is there any plans to improve the error messages?

24:47.800 --> 24:55.800
The Angie Spice returns and then keycat just transports.

24:55.800 --> 24:59.800
It's not a plan, it's an ongoing thing.

24:59.800 --> 25:03.800
I guess, well, this is the feedback we often get.

25:03.800 --> 25:07.800
The error messages are cryptic or not useful.

25:07.800 --> 25:14.800
One reason is that this is partially the old code.

25:14.800 --> 25:18.800
Yeah, from times when user typed in a command.

25:18.800 --> 25:22.800
And immediately, he got the error message.

25:22.800 --> 25:28.800
Now, if you run scripts and automated simulations, the error message is somewhere.

25:28.800 --> 25:32.800
Yeah, not useful because you don't know where does the error.

25:32.800 --> 25:35.800
This is a thing we improve.

25:35.800 --> 25:37.800
Sometimes it's difficult.

25:37.800 --> 25:42.800
Sometimes it goes very deep into the simulator and we have to go back up again.

25:42.800 --> 25:48.800
And yeah, and if you have something, just give us a note.

25:48.800 --> 25:51.800
What to improve?

25:51.800 --> 25:54.800
Thanks for the presentation.

25:54.800 --> 25:55.800
I had a question.

25:55.800 --> 26:05.800
So in my university, we're stuck at using Proteus because it has Arduino and pick my controller simulation.

26:05.800 --> 26:12.800
So you can directly input the code for the microcontroller and simulate it inside of Proteus.

26:12.800 --> 26:18.800
Is there any plans to integrate that into Angie Spice or is it out of the scope of the project?

26:19.800 --> 26:32.800
The question is, can Angie Spice act like Proteus is doing in that you have a complete microcontroller, including software within the simulator?

26:32.800 --> 26:36.800
There is no actual project on that.

26:36.800 --> 26:41.800
We have to see what our digital interfaces allow us to do.

26:42.800 --> 26:52.800
I think one just has to try and figure out when I have a microcontroller model, how can I link this?

26:52.800 --> 26:56.800
Why are one of our interfaces to Angie Spice?

26:56.800 --> 27:04.800
Currently, I'm not sure if there had been one example, a simple example, maybe it is possible.

27:04.800 --> 27:09.800
It's up to the user to be adventurous and try it.

27:09.800 --> 27:13.800
And then give feedback.

27:13.800 --> 27:27.800
How do you intend to implement harmonic balance considering the fact that the resistive and reactive parts of each model are mixed together in Spice models?

27:27.800 --> 27:46.800
I think one question is, indeed, how can we question is, how do we intend to integrate harmonic balance into Angie Spice concerning accessibility of models?

27:46.800 --> 27:49.800
Some data, some details of the models.

27:49.800 --> 27:52.800
With the C coded models, we have everything available.

27:52.800 --> 28:00.800
With the very low A models, this is indeed not yet discussed finally, how to do that.

28:00.800 --> 28:03.800
Maybe with your help, I don't know.

28:03.800 --> 28:14.800
Because this is, we don't have access to all the internals we would need, I guess.

28:14.800 --> 28:25.800
One more question, while we're getting the last question, we'll get the next speaker set up, please.

28:25.800 --> 28:27.800
We have a last question.

28:27.800 --> 28:35.800
What is the maturity of the very low simulation in Angie Spice?

28:35.800 --> 28:37.800
I'm sorry, I did not guess.

28:37.800 --> 28:44.800
What is the maturity of very low phase with X card on Angie Spice?

28:44.800 --> 28:53.800
It's acoustically not, but what is the maturity of the very low simulation in Angie Spice?

28:53.800 --> 28:55.800
The maturity.

28:55.800 --> 28:59.800
Well, it's relatively new.

28:59.800 --> 29:12.800
It's not that mature that the Angie Spice code, which is 30 years old, I think this is a standard right now.

29:12.800 --> 29:20.800
We are very sure that the open path compiled very low A models are reliable.

29:20.800 --> 29:24.800
We see it is already used.

29:24.800 --> 29:35.800
For example, for the open source PDK's, IHP, uses a very low A model.

29:35.800 --> 29:43.800
There will be tiny details probably, but if there has already been some improvement on feedback,

29:43.800 --> 29:49.800
we use our concerning the open path compiler.

29:49.800 --> 30:01.800
I'm optimistic because the open source PDK, IHP PDK, relies on very low A device models.

30:01.800 --> 30:05.800
One more question, while we're setting up Alexander for the next talk.

