Kevin Cameron wrote: > > You are confusing the issues. The problem is if you have > > module A ... > electrical a,b; > analog V(a,b) <+ 5; > analog V(a,b) <+ 6; > endmodule > > Which would work under Marq's proposed rules giving V(a,b) == 11, but if you split it into submodules: > > module A ... > electrical a,b; > B; > C; > endmodule > > module B.. > analog V(A.a,A.b) <+ 5; > endmodule > module C > analog V(A.a,A.b) <+ 6; > endmodule > > That fails because the contributions are now considered as being in parallel. I think, actually, that this fails now because a) module A has a branch (a,b) that has nothing assigned to it, so by 5.1.6, "If a value is not assigned to a branch, the branch flow is set to zero (0)." b) the contributions in the analog blocks of B and C would make (a,b) into a switch branch c) 5.3.1.3 says it is illegal to contribute to an external switch branch from within an analog block If you re-wrote module A as: module A ... electrical a,b; B; C; analog V(a,b) <+ 0; endmodule then I believe that the last sentence of Section 7.5 (for source branches, contributions can be made to the output signal) means that the contributions in modules B and C add to the 0, and you should get 11. -Geoffrey -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Fri Apr 20 04:50:50 2007
This archive was generated by hypermail 2.1.8 : Fri Apr 20 2007 - 04:51:02 PDT