Kevin Cameron wrote: > > In this case I would suggest modifying the operator to (say) "<++" i.e.: > > analog V(top.mybase.Ibr) <++ 6.0; > > That would also work for multiple analog blocks in a module. It's kind of late for that, I think (as well as for Arpad's suggestion to make <+ an assignment rather than contribution operator). It would be a huge backwards-compatibility fiasco. A number of models do things like this: I(dio) <+ is * exp(V(dio)/$vt) - is; ... I(dio) <+ ddt(qd); where the "static" (dc) quantities are computed in a different section than the "dynamic" quantities. In fact, per a strict reading of the 2.0 LRM, ddt() had to appear by itself on the RHS, the syntax didn't allow I(dio) <+ id + ddt(qd); because ddt() is an analog operator. Presently, some models have begin : evaluateStatic end begin : evaluateDynamic end which is used as a hint by some simulators (the open-source ADMS, I think) to optimize calculations: eg, you bypass evaluateDynamic when you're doing dc Newton. I think it would come as a surprise to many modelers to find that changing the code to read analog begin : evaluateStatic end analog begin : evaluateDynamic end would either require this new "<++" or cause the contributions in the dynamic section to replace the contributions in the static. -Geoffrey -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Fri Apr 20 11:09:30 2007
This archive was generated by hypermail 2.1.8 : Fri Apr 20 2007 - 11:09:41 PDT