• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Saving ADEXL Results automatically

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 125
  • Views 28448
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Saving ADEXL Results automatically

Michele Ancis
Michele Ancis over 10 years ago

Hi all,

I often use ADE XL sweeps and corners not only when verifying but also when exploring designs.

Also, very often, I capture the features of interest in single-point measures, instead of curves. Of course, I have quite a few of them per simulation point.

I find sometimes easier to then export the "table" generated in the results pane of ADEXL and then slice and dice the results using other tools.

The "save as csv" is a wonderful button :-)

I was thinking what would be the flow if I wanted to make this operation automatic, i.e. after having run the sweeps/corners, save the results to file directly.

To this extent, of course, I would not need to have them in the results pane as well.

Probably:

1. create my sweeps and corners in ADEXL

2. create the output expressions in ADEXL (or ocn output script)

3. save the "ocean script" tied to this setup

4. modify it with some command to output the data to a file

If this is correct, what shall I use in 4? Are there other methods?

Thanks,

Michele

  • Cancel
  • Michele Ancis
    Michele Ancis over 10 years ago

    ...I think I found a

    postExportResults()

    which should potentially do what I aim for.

    Any suggestions are anyhow very appreciated ;-)

    Thanks,

    Michele

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Hi Michele,

    I'm not sure the postExportResults signal in ADE XL is what you want (note it's a signal, not a function). The idea is that you can register a trigger function on this signal which gets called when you export results. So actually the trigger would get called when you export results - it will not cause export results to be called when simulations are complete.

    Probably what you want is one of the runFinished signals (might be runFinished, runFinishedConclusion, runFinishedPostPlot, runFinishedPrePlot). This could then trigger a call to axlExportOutputView() to export the results.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Michele Ancis
    Michele Ancis over 10 years ago

    Hi Andrew,

    thanks for your clarification. I am not sure under which "framework" I should be able to catch signals and react to them...I guess I'll need to read the manual ;-)

    On the layman side of things, however, I could probably use  axlExportOutputView() just after a simulation, basically adding this line to the run script generated by ADE XL automatically. Am I right?

    Also, I just posted about an issue I have at the moment, where I would like to recall results from the History but I cannot see them in the History pane as they were not saved with it. I could probably give this function a try, at least to save the different results to file and then access the csv data...

    Thanks!!

    Michele

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Hi Michele,

    I don't think this function will help you with the history recovery, but here's some code I just threw together to automatically save the results to a CSV file (in the documents folder in the ADE XL view) when simulations are complete.

    Regards,

    Andrew.

    /* abExportCSVafterSim.il
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date       Jun 10, 2015 
    Modified   
    By         
    
    Call abInitExportCSV() - this will automatically export 
    a CSV file to the documents directory after simulations are
    finished. 
    
    ***************************************************
    
    SCCS Info: @(#) abExportCSVafterSim.il 06/10/15.10:41:38 1.1
    
    */
    
    /***************************************************************
    *                                                              *
    *           abExportCSVrunFinished(sess _runId hist)           *
    *                                                              *
    *    The trigger that gets called on runFinished (actually     *
    *     chose runFinishedPrePlot, but it's not too critical)     *
    *                                                              *
    ***************************************************************/
    procedure(abExportCSVrunFinished(sess _runId hist)
        let((sdb documentsDir histName CSVfile)
            sdb=axlGetMainSetupDB(sess)
            documentsDir=strcat(axlGetSetupDBDir(sdb) "/documents")
            histName=axlGetHistoryName(hist)
            CSVfile=strcat(documentsDir "/" histName ".csv")
            axlExportOutputView(sess 
                strcat(documentsDir "/" histName ".csv") 
                "Detail-Transpose" 
                ?history histName
            )
            printf("INFO: Exported CSV file to %s\n" CSVfile)
        )
    )
    
    /***************************************************************
    *                                                              *
    *            abRegExportCSVrunFinishedTrigger(sess)            *
    *                                                              *
    *           Add the trigger into the current session           *
    *                                                              *
    ***************************************************************/
    procedure(abRegExportCSVrunFinishedTrigger(sess)
        axlSessionConnect(sess "runFinishedPrePlot" 'abExportCSVrunFinished)
    )
    
    /****************************************************************
    *                                                               *
    *                       abInitExportCSV()                       *
    *                                                               *
    * Ensure that the trigger gets added whenever ADE XL is opened. *
    *                                                               *
    ****************************************************************/
    procedure(abInitExportCSV()
        axlSessionRegisterCreationCallback('abRegExportCSVrunFinishedTrigger)
    )
    
    • Cancel
    • Vote Up +3 Vote Down
    • Cancel
  • Nicolas Callens
    Nicolas Callens over 7 years ago in reply to Andrew Beckett

    Hi Andrew, 

    I was looking into this topic to find a script of automating the export of the ADE XL results. I have loaded the function (from you) in the CIW and ran a simulation, but I do not see a CSV file in the specified directory. Probably I am doing something wrong (still in the beginning of the SKILL learning curve). Therefore, I have a question:

    Are the arguments of the procedure abExportCSVrunFinished getting filled in automatically when ADEXL gives a signal that the simulation is executed? If so, how is this done?

    Kind regards, 

    Nicolas

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Nicolas Callens

    Hi Nicolas,

    First of all, are you loading the code (e.g. in the .cdsinit) and calling abInitExportCSV() (ideally also in the .cdsinit) before starting ADE XL - calling the function in the CIW after starting ADE XL will not work.

    It works by registering a trigger upon ADE XL initialisation, which in turn registers a trigger when the simulation run is finished. The runFinishedPrePlot trigger defines what arguments the function abExportCSVrunFinished will receive - and it supplies them when called (so there's nothing you have to do).

    Are you seeing any message in the CIW at the end of the simulation indicating that the file was exported?

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Nicolas Callens
    Nicolas Callens over 7 years ago in reply to Andrew Beckett

    Thanks Andrew. It works now and can see the message in the CIW.

    However, is it actually possible to save plots with this scripts? I have tried to simulate and output only plots and the only thing that I am getting was black field in the CSV file (e.g. , , , ,).

    Kind regards,

    Nicolas

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Nicolas Callens
    Nicolas Callens said:
    However, is it actually possible to save plots with this scripts?

    Hi Nicolas,

    No, it's not. It's using the same capability to export CSV from the ADE XL UI - which just saves the scalar values. I'm not sure how you would expect to have waveform data in a row-based CSV file where each row is one output in the ADE XL output table.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Nicolas Callens
    Nicolas Callens over 7 years ago in reply to Andrew Beckett

    Indeed, you are right. In case of a row-based CSV it will be impossible.

    Though, I also would like to export for example my transient simulations to a csv file in an automated way, since I am postprocessing the waveforms in Matlab or Python.

    KR

    Nicolas

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Nicolas Callens

    Nicolas,

    FYI - if you're using Matlab, we now have (with ADE Explorer and Assembler) a direct interface to Matlab which can read not only the scalar results but also the waveform data for the entire results. See this video: Making the most of using MathWorks MATLAB and Virtuoso ADE Product Suite together (yes, it's me doing the talking).

    Even before that we have a low level interface that can directly read waveform data into Matlab using the "Spectre Toolbox" which is provided in the MMSIM/SPECTRE streams (search for Matlab in <MMSIMinstDir>/bin/cdnshelp ). No real need to go via a text intermediate format.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information