Is anyone aware of documentation on options like `...
# xyce
r
Is anyone aware of documentation on options like
-hspice-ext
and similar? Reviewing the following app note: https://xyce.sandia.gov/downloads/_assets/documents/AppNote-HSPICE_Compat.pdf I wanted to confirm my distribution functions (e.g.
unif
,
agauss
, etc.) are acting as i expect when MC is off.
e
@Robert Rogers, that Hspice compatibility document, while very useful, is pretty out-of-date at this point. And, you raise a good point about documenting -hspice-ext. The main other place it has been documented is the XDM user guide, but that is slightly out of date at this point as well.
To your question about distribution functions, the default behavior of Xyce got changed for Xyce 7.3, which resulted in
-hspice-ext random
not being necessary anymore. Before, the default behavior was for these operators to always produce a random number, even if the code was not doing sampling. After 7.3, the default behavior got changed so that they return the mean, unless some type of UQ analysis is specified in the netlist.
The old behavior (where they were always random) was put in place before Xyce had any UQ analysis options. It was put that way so that users could call Xyce from a script and mimic Monte Carlo analysis that way. But that was intended as a interim solution until we could put UQ methods in place inside of Xyce.
Note, if someone wants to reproduce the old behavior, they still can. They can just add a
SAMPLING
command to the netlist, and then specify a single sample. But I’m expecting most people won’t need to do that.
Note, operators like AGAUSS are handled in the expression library, which can be found in Xyce/src/UtilityPKG/ExpressionSrc directory. But at this point you won’t find anything related to the
-hspice-ext random
command there. Xyce’s weird default behavior required extra logic, but now that is has been deprecated that code was removed and it is a bit cleaner.
One final comment. There has been one more change to
-hspice-ext
since the Xyce 7.3 release, and that is support for using a period “.” rather than a colon “:” as a subcircuit name delimeter. That feature is only on the Xyce development branch right now, but will be part of Xyce 7.4 later. So at this point, the 3 things that are toggled by
-hspice-ext all
are
units
,
math
, and
separator
.
units
modifies the meaning of the “a” suffix in expressions. In some codes it means amps and in other codes it means a 1.0e-18 multiplier.
math
toggles the meaning of a few arithmetic operators such as
log
. In some codes log means natural log and in others it means log10.
separator
toggles which character is used as the separator in sub circuit names. In most codes, a period is used as the separator. In Xyce, for historical reasons, we have used the colon. We will probably switch to using the period unconditionally in the future, but we aren’t ready yet.
For reference the XDM user guide (which is the only documentation of
-hspice-ext all
) is here: https://xyce.sandia.gov/downloads/_assets/documents/XDM_User_Guide.pdf. It is slightly out of date, as I mentioned above.
r
Noted! I'd done these sorts of translations (hspice to xyce) before by working through the app note, and was a bit wary when an old stand-by (the -hspice-ext random) no longer was recognized. The last time I tried XDM it was a bit bumpy, so I've taken to patching hspice code with scripts and the like. Is XDM still actively developed?
e
@Robert Rogers, yes, XDM is still actively developed. The intention of XDM was for it to eventually evolve into a replacement for Xyce’s old parser. The old Xyce parser has a lot of technical debt that we’d like to get rid of. But, replacing it completely is a big job, so we’re taking baby steps. For that reason, XDM is currently a stand-alone tool. Also, XDM is a much more recent tool than Xyce, so is probably a bit less mature. I think it is very solid these days for Hspice-to-Xyce and Pspice-to-Xyce netlist conversions. It also supports Spectre-to-Xyce, but this is a much newer feature, so it is probably a little less mature.
@Robert Rogers sorry to hear XDM was bumpy when you last tried it. Hopefully it is a bit better now. If you try it again, I’d be interested in getting feedback.
r
The first time I tried it, I was in a deadline and didn't have the time to fully understand its interface. I'll be happy to share any input I have once I actually have a chance to sit down with it.
👍 1