Request for Simple Skill Program?

Discussion in 'Cadence' started by Cliff Curry, Jan 12, 2004.

  1. Cliff Curry

    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
     
    Cliff Curry, Jan 12, 2004
    #1
  2. 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
     
    Andrew Beckett, Jan 13, 2004
    #2
  3. Cliff Curry

    John Gianni Guest

    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).
     
    John Gianni, Jan 15, 2004
    #3
  4. Cliff Curry

    John Gianni Guest

    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()
     
    John Gianni, Jan 15, 2004
    #4
  5. Cliff Curry

    John Gianni Guest

    I ran Andrew's code thru a quick 1-minute SKILL Survey
    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
     
    John Gianni, Jan 15, 2004
    #5
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.