Request for Simple Skill Program?

C

Cliff Curry

Guest
I wonder if someone who has some skill experience could write a simple
routine that
would output the plotted variables of a transient simulation in an ASCII
file.
The idea here would that, normally one would use the GUI until all the
waveforms looked ok.
Then the waveforms could be exported for further analysis.
This routine would find out which variables were singled out for plotting in
the analog artist GUI, and then
print these variables (at full precision) to an ASCII file.

There have been several attempts to get this functionality reported in
this newsgroup, but they are quite
messy, and usually involve re-running a simulation and changing the output
format of the simulator. This is quite a
waste of time for data that is already available in the psfbin format.

Thanks for your time,

Cliff Curry
 
Hi Cliff,

I quickly knocked up the following today; hopefully this is roughly
what you were after?

You should just be able to use:

abWriteOutputsASCII("myoutput.file")

Regards,

Andrew.



/***************************************************************
* *
* (abWriteOutputsASCII fileName *
* [?numberNotation 'engineering] *
* [?precision 15] *
* [?width 20] *
* [?numSpaces 0] *
* ) *
* *
* Write the outputs in the current ADE window outputs section *
* into a file. The precision and number notation can *
* be controlled. *
* *
***************************************************************/

(procedure
(abWriteOutputsASCII fileName @key
(numberNotation 'engineering)
(precision 15)
(width 20)
(numSpaces 0)
)
(let (session waves)
(setq session (asiGetCurrentSession))
; Get the ADE outputs, and convert to a list of
; waveforms. I'm assuming that the current simulation
; results are already selected (i.e. either the run
; just completed, or Results->Select was used.
(setq waves
(foreach mapcar output (asiGetOutputList session)
(if (getq output signal)
; if it is a signal, return the VT of it.
(VT (getq output signal))
; otherwise it's an expression, so evaluate it
(eval (getq output expression))
)
))
; call ocnPrint to output the waveforms, having
; added on the arguments to control the formatting.
(apply 'ocnPrint
(append
(list ?output fileName ?numberNotation numberNotation
?precision precision ?width width ?numSpaces numSpaces)
waves
)) ; apply
) ; let
) ; procedure


On Mon, 12 Jan 2004 20:09:04 GMT, "Cliff Curry" <cliffcurry323@comcast.net>
wrote:

I wonder if someone who has some skill experience could write a simple
routine that
would output the plotted variables of a transient simulation in an ASCII
file.
The idea here would that, normally one would use the GUI until all the
waveforms looked ok.
Then the waveforms could be exported for further analysis.
This routine would find out which variables were singled out for plotting in
the analog artist GUI, and then
print these variables (at full precision) to an ASCII file.

There have been several attempts to get this functionality reported in
this newsgroup, but they are quite
messy, and usually involve re-running a simulation and changing the output
format of the simulator. This is quite a
waste of time for data that is already available in the psfbin format.

Thanks for your time,

Cliff Curry
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
"Cliff Curry" <cliffcurry323@comcast.net> wrote in message news:<z9DMb.33145$Rc4.125110@attbi_s54>...
I wonder if someone who has some skill experience could write a simple
routine that would output the plotted variables of a transient simulation
in an ASCII file.
Andrew Beckett posted (2004-01-13 10:09:25 PST) a potential SKILL solution
to this issue under the title:
Re: Request for Simple Skill Program? - abWriteOutputsASCII.il (0/1)

Please check out that solution & report back to the newsgroup.
In addition, I filed Product Change Request #682196 requesting this
functionality for you & others with the same need.

If any Customer wishes to be the Customer contact for that PCR, please
either post to this thread or just send me an email with your business
contact information so I can add that to the PCR. (Typically, lower
priority enhancement requests carry more weight when there is a Customer
who can be contacted for details, beta tests, opinions, etc. ... as R&D
is much more likely to implement what you need when there is a good
Customer contact listed in the PCR).

John
Do NOT send email to my spam-trap yahoo address (use my business login).
 
Andrew Beckett <andrewb@DELETETHISBITcadence.com> wrote in message news:<rbc800hgjn2ab3ich4hbqmjg77240lj324@4ax.com>...
You should just be able to use:
abWriteOutputsASCII("myoutput.file")
I ran Andrew's code thru a quick 1-minute SKILL Survey
(which is available to everyone on the latests IC releases
who has product #900 SKILL Development Environment licensed).

The SKILL Survey is a complement to SKILL Lint.

Basically Lint tells you, for a single piece of code, if the code will
work;
the Survey tells you (for potentially thousands of files) what release
each
stands a chance of working in (and what ones it won't); and the Survey
adds
a few other details (e.g., it finds all your typos, private functions,
etc.).

The Survey reported Andrew uses 15 public functions & one self-defined
functoin, he's mis-spelled none, there are no private functions, none
of
the 15 functions have been changed or deleted since DFII 445, in DFII
443
only one function was changed (however slight the change):
rel442(ocnPrint:mad:key:eek:utput:mad:rest:waves)
rel443(ocnPrint:mad:key:eek:utput:from:to:step:linLog:numberNotation:precision:width:numSpaces:mad:rest:waves)

In DFII 442, only one function didn't exist:
asiGetOutputList()

In DFII 441, only three functions were changed (however slight the
change):

rel434(eval:g_general:"g")
rel441(eval:g_general:mad:optional:e_envobj:"ge")

rel434(getq:g_general:s_symbol:"gs")
rel441(getq:g_general:S_stringSymbol:"gS")

rel434(apply:u_functionName:g_general:"ug")
rel441(apply:u_function:g_general:"ug")

In DFII 441, two of the public functions used didn't exist:
asiGetOutputList()
ocnPrint()

In DFII 434, three of the public functions used didn't exist:
asiGetOutputList()
asiGetCurrentSession()
ocnPrint()
 
I ran Andrew's code thru a quick 1-minute SKILL Survey
(which is available to everyone on the latests IC releases
who has product #900 SKILL Development Environment licensed).

The SKILL Survey is a complement to SKILL Lint.

Basically Lint tells you, for a single chunk of code, if the code will
work; while the Survey tells you (for potentially thousands of files)
what release each stands a chance of working in (and what ones it won't);
I should probably mention that the Survey currently goes up to ICOA5041
so the major releases in which there were no changes to the 15 functions
used in Andrew's code are ICOA5041, ICOA5033, IC5041, IC5033, IC50032,
IC500MSR3, IC500, IC446, IC445 and changes between the following releases
are as previously noted: IC443, IC442, IC441, IC440, & IC434.

That is, the code is compatible (functionwise) between IC442 & ICOA5041
which spans about six or seven years' worth of DFII releases (each of
which has up to 20,000 individual product improvements in them).

John
--
ALL my posts are PERSONAL OPINION; NONE are company statements!
 

Welcome to EDABoard.com

Sponsor

Back
Top