• 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 28468
  • 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
Parents
  • 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
  • Nicolas Callens
    Nicolas Callens over 7 years ago in reply to Andrew Beckett

    Superb! Thanks for the information. 

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

    I watched the video, but I cannot add separate Matlab expressions nor can I find the Matlab toolbar button. I am using Virtuoso version 6.1.7.

    Kind regards, 

    Nicolas

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

    I watched the video, but I cannot add separate Matlab expressions nor can I find the Matlab toolbar button. I am using Virtuoso version 6.1.7.

    Kind regards, 

    Nicolas

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

    Nicolas,

    Are you using ADE Explorer or Assembler, or ADE XL? This is only in ADE Explorer/Assembler (not XL) and requires you to be using IC6.1.7 ISR10 or later. It will also need a specific license - so you may need to speak to your account team for this.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 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