RE: @above in analyses other than tran and dc sweep

From: Mark Zwolinski <mz_at_.....>
Date: Wed Nov 18 2009 - 13:30:36 PST
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