I completely agree with Marq Kole's comments. There is nothing that I can find in any SPICE manual (let alone the Verilog-A/AMS LRM) that says that a DC sweep must be done in a particular order. If a sweep exhibits hysteresis, it's an artefact of the way the simulator is implemented. I take back my comments about "may" and "can" in the light of the clarification from the style guide. But having though a bit more, I coming to the conclusion that @above has no meaning outside of a transient analysis. What the clause is saying is "if your simulator happens to do sweeps in a monotonic manner, then @above might have some meaning". Hmmm. Mark -- =================================================================== Professor Mark Zwolinski Electronic Systems & Devices Group Tel. (+44) (0)23 8059 3528 Electronics & Computer Science Fax. (+44) (0)23 8059 2901 University of Southampton Email. mz@ecs.soton.ac.uk Southampton SO17 1BJ, UK http://www.ecs.soton.ac.uk/~mz ________________________________________ From: owner-verilog-ams@eda.org [owner-verilog-ams@eda.org] On Behalf Of Marq Kole [marq.kole@nxp.com] Sent: 18 November 2009 21:12 To: verilog-ams@eda.org Subject: RE: @above in analyses other than tran and dc sweep The set of analysis recognized in the Verilog-AMS LRM is much smaller than available in the mainstream analog simulators these days. Analysis types such as PSS and Envelope Following have a transient-like character in which one would also expect the cross function to work correctly. The suggested wording for the above and cross functions should take these into account as well. In any steady-state analysis one would expect the above function to be triggered if its first argument is positive. The reason above works as intended for models with hysteresis is that in a DC sweep most analog simulators take the solution of the previous point as a starting point for the current DC point. However, that is described nowhere in the LRM so a circuit simulator using a model with hysteresis can give results without hysteresis without actually being wrong! There is just no portable way in Verilog-A to enforce hysteresis in DC. So the point that the above function in DC depends on the order in which the operating point is swept is moot: it is just a consequence of current analysis implementations for this analysis. For any small signal analyses where the operating point does not change during the analysis the results of above during the steady state analysis remain fixed. This includes AC, polezero, twoport, XF, noise. I presume it also applies to harmonic balance. For periodic analyses such as PAC, PXF, Pnoise and their likes it depends on the handling of the underlying PSS analysis. This is also a bit of uncharted territory concerning the Verilog-AMS standard, I'm afraid. Cheers, Marq ________________________________________ From: owner-verilog-ams@server.eda.org [owner-verilog-ams@server.eda.org] On Behalf Of Geoffrey.Coram [geoffrey.coram@analog.com] Sent: Wednesday, November 18, 2009 20:03 To: Ian Wilson Cc: Mark Zwolinski; verilog-ams@eda.org Subject: Re: @above in analyses other than tran and dc sweep Per Shalom's citation, "can" is the correct use here, since it is a statement of possibility or capability. "may" is incorrect, since a simulator that failed to generate above events would not be doing what was intended. I think you're very confused about the usefulness of @above; the very point was to be able to generate events for non-transient (including the time=0 for transient). Simulators do have a particular sequence of swept values, and for circuits that have hysteresis (multiple operating points), you can tell which direction the sweep was run. -Geoffrey Ian Wilson wrote: > 1. The quoted LRM section might perhaps be modified to read: > > "The cross() function */shall/* not generate events for > non-transient analyses, such as ac, > dc, or noise analyses of SPICE (see 4.6.1), but the above() function > */may/*." > > 2. I think the point about not assuming any particular sequence of the swept > values is a good one. In fact, one analysis in a DC sweep must have a > result > that is independent of whether that analysis was preceded by some other > analysis. So I would agree with the conclusion that the value of @above > does not change, i.e. does not "generate events" for non-transient > analyses. > > --ian > -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Wed Nov 18 13:31:50 2009
This archive was generated by hypermail 2.1.8 : Wed Nov 18 2009 - 13:32:09 PST