Kevin, As you are a simulator expert, I have a question for you...
If I have a _bounded_ source driving an Algebraic multiplication, is the result bounded (in simulators :), or should I bound the multiplier element as well?
My gut feeling is that I don't need to, but I'm just being safe. ...Jim Thompson
--
| James E.Thompson | mens |
| Analog Innovations | et |
Spice3 don't bound hardly anything. If the bounded output driving something can go unbounded with that bounded input, then you should bound the output of the following device. Its a probability of failure thing.
I know as fact that I got a non convergence when I feed sinh() with values such as 500. That's why I did the double tanh(). Essentially, everything needs to be in valid double precision range. Physical signals will never go above single precision of 1e38, so there is no harm in grossly bounding signals.
I consider it an omission in the design of spice to allow values that can not happen in real circuits. In fact the XSpice enhanced aswitch made an attempt to improve convergence by having a smooth resistance, but it failed. Overdriving the input generates resistances approaching zero. I haven't gotten around to fixing it yet, but I have made a smooth, bounded vswitch as noted here.
.SUBCKT bsw_XN in !1_a !2_b ron=1 roff=100G vt=0.5 k=10
_SS_Symbol [Behavioural.ssm] [BSW] V!2 !2_b b 0 V!1 !1_a a 0
*k controls how fast switch resistance changes around the switch point Vt .param gm_min={1/roff} .param gm_max={1/ron} B1 a b i=v(a,b) *( {gm_min} + 0.5*{gm_max - gm_min}* (1 + tanh( {k}*v(in) - {k*vt} ) ) ) .ends
It does what you think it should do.
Expensive Cadence Spectre R.F. has this sort of problem. I am currently running PSS and Phase noise simulations. I know as fact that it has trouble converging without having clamp series zenor diodes across the inductors.
The GUI is all in M.S. Visual Studio C++. Currently on version 2008. It started on version 1.5, then to Version 6 as 32 bit. I converted it to 64 bit 4 years ago. Took about a week. The XSpice code is compiled and run as a separate exe engine. Major advantage is no memory leaks. Windows takes it all back after it runs and quits.
I also use a class library from Codejock. This does all the docking windows and moveable toolbars stuff.
Sounds good, I work mostly in Delphi or latest package of look alike delphi and I also have VC++ which I have some code but not any GUI stuff with it. I also have Builder C++.
I stay away from .NET apps, tried a few via conversion of existing apps and no thanks, causes lag problems in time critical apps.(Automation)
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.