gnucap patches and article
Telford Tendys <[email protected]>
| Newsgroups | gmane.comp.gnu.gnucap.devel |
|---|---|
| Message-ID | <20021014132801.A8233@ikkyu> |
I've had a bit of time to play with gnucap lately and I've made some changes to the convergence algorithm, it's an option so you can switch it on and off and currently only implemented for nonlinear inductors. I think it would be fairly easy to extend this to other nonlinear devices wherever the tr_eval() function is used. In essence, my algorithm gives better numerical stability at the cost of higher CPU usage -- when close to convergence it falls back to the standard algorithm anyway so the CPU overhead is minimised. http://www.triode.net.au/~telford/gnucap/ Another project I would like to work on is foreign models in gnucap. Initially my target would be digital-only foreign models which would be implemented using dlopen() style interface. This works well on linux, it is supposed to also work on Solaris, I'm not sure about other systems. My plan is to build a small kit that allows construction of a shared object library, along with some simple examples. The shared object would contain all the logic statements to simulate the digital circuit. Building complex stuff out of NAND gates is really painful and if you can just write your logic in C it allows a far greater complexity of digital circuit to be simulated with relative ease. I think it would be sufficient to support only pure inputs and pure outputs on these digital foreign models. My reasoning is that it is easy to rig up some sort of analog bus driver model which sits outside the foreign model and the bus driver can use standard gnucap components. This simplifies the shared library interface and avoids TTL v CMOS variations. Analog foreign models would have to be via a more complex interface (which I haven't really thought about yet) so I feel it is good to support the simplest possible digital interface in order to improve accessibility to gnucap users. Any comments? - Tel