There is a person that has a lot of patents that is used in modern ASIC manufacturing, regarding wafers.
A long time ago he published some formulas for making accurate simulations of ASIC's including temperature and current, that he has used for making chips in his own proprietary CAD tools with a lot of cores (more than 100 cores).
Here he outlines how he can calculate things that is not possible in SPICE and how to do it fast (but the syntax may relate to the computer language forth as he was the inventor of it)...
Maybe it is to some value to someone...
"
Simply integrate the set of differential (difference) equations with integer arithmetic using the indicated units:
equation units
dQ = I(V,T) dt aC = uA ps
V = Q/C mV = aC/fF
dT = f(T-Te) dt uK
First compute the current thru each transistor, adjusted for temperature. Add the resulting charge to input and output nets. Change the temperature depending on the amount it differs from power equilibrium. Then compute the voltage on each net from its charge and capacitance. Repeat indefinitely.
"
Read more about it here...
https://colorforth.github.io/simulation.html
I just wanted to make a quick note about it if it disappear. As this is quite fringe, but can be of value for someone.
Just a note for people making thir own electonic simulation software
-
- KVRist
- 99 posts since 21 Jul, 2022
-
- KVRer
- 29 posts since 12 Aug, 2018
This looks like a fixed-step explicit integrator.
For small stiff realtime audio circuits (especially in the presence of feedback), it will cause instability and/or require a tiny step dt. Note that there's no direct bound on the error (e.g. SPICE has vntol/abstol/reltol), only an indirect one through dt. Good luck tuning that!
Sure enough: "...this extrapolation leads to instability in small-capacitance nets and is neglected.
... It can't be larger because of small-capacitance voltage instability. To avoid most of these, series transistors are specially treated."
Aliasing is gonna be a problem, more in an explicit integrator than implicit ones (e.g. Trapezoidal).
For the circuit I'm currently solving, you'd need to add diode clamps, continuations, local implicit solves, or solve for inter-connected subcircuits. At that point, you might as well switch to a proper solver, instead of recreating a bad one manually.
For funsies, I decided to test explicit integration with my circuit. I added a Newton solver inside the RHS call to maintain the constraints, otherwise the comparison isn't fair. It solves successfully, but is 18x slower than the best achieved time (a result of industrial-grade open source solvers + manual tuning).
For small stiff realtime audio circuits (especially in the presence of feedback), it will cause instability and/or require a tiny step dt. Note that there's no direct bound on the error (e.g. SPICE has vntol/abstol/reltol), only an indirect one through dt. Good luck tuning that!
Sure enough: "...this extrapolation leads to instability in small-capacitance nets and is neglected.
... It can't be larger because of small-capacitance voltage instability. To avoid most of these, series transistors are specially treated."
Aliasing is gonna be a problem, more in an explicit integrator than implicit ones (e.g. Trapezoidal).
For the circuit I'm currently solving, you'd need to add diode clamps, continuations, local implicit solves, or solve for inter-connected subcircuits. At that point, you might as well switch to a proper solver, instead of recreating a bad one manually.
For funsies, I decided to test explicit integration with my circuit. I added a Newton solver inside the RHS call to maintain the constraints, otherwise the comparison isn't fair. It solves successfully, but is 18x slower than the best achieved time (a result of industrial-grade open source solvers + manual tuning).
