Kevin Cameron wrote: > > > The reason for having OOMR voltage contributions being in series is > > consistency with the rest of the language. Why should the rules be > > different for out-of-module-references than for in-module-references? > > > I think you are just avoiding my question on justifying the behavior > being different depending on how you wire things up. I'd ask the > question: why should in-module behavior be different from multi-module > behavior, and hence why should OOMR behavior be different from that. In-module behavior is already different from multi-module behavior: module A(a,b); inout a,b; electrical a,b; analog begin V(a,b) <+ 5.0; V(a,b) <+ 6.0; end endmodule module B(a,b); inout a,b; electrical a,b; vsine #(.dc(5)) v1 (a,b); vsine #(.dc(6)) v2 (a,b); endmodule Whether module B can be simulated in a particular simulator is beside the point. (Ken and I will avoid simuluators that allow it, because we think it's a bad idea; you will use them, so you can model parallel switches.) You get 11 for A and something else (an error, 5.5, ...?) for B. Bear with me a little on this example: module base(a,b); inout a,b; electrical a,b; branch (a,b) Ibr; analog I(Ibr) <+ 5.0; endmodule module augmentor(); analog I(top.mybase.Ibr) <+ 6.0; endmodule module iprobe(); analog $strobe("I = ", I(top.mybase.Ibr)); endmodule module top(); electrical n1; ground gnd; resistor #(.r(1k)) R1(n1, gnd); base mybase(n1, gnd); augmentor aug1; iprobe probe1; endmodule The OOMR probe in iprobe really must be sensing the current in that branch "Ibr"; it would be non-sensical for the probe to somehow create a new branch in parallel and sense that (zero) current. Hence, the OOMR contribution in augmentor *must* add 6.0 to the 5.0 already on branch "Ibr" in instance mybase module base, not create a new branch in parallel for the contribution. Here we had no problems with v-sources in parallel. Now let's switch all the I's to V's (access functions and Ibr->Vbr). Again, I would maintain, the augmentor adds 6.0 to the 5.0 already on Vbr, and the $strobe prints V = 11.0. In an earlier message, you (Kev) wrote: > Contributions from analog blocks in different modules are in parallel > for potential and flow - thats the way it has always been. I'm just > asking for that behavior to apply consistently. and I'm saying these contributions are *not* in parallel. -Geoffrey -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Fri Apr 20 05:48:55 2007
This archive was generated by hypermail 2.1.8 : Fri Apr 20 2007 - 05:49:05 PDT