• 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 SKILL
  3. How to access the results dir of Explorer simulation/te...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 144
  • Views 2451
  • 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

How to access the results dir of Explorer simulation/test

marcelpreda
marcelpreda over 1 year ago

Hi *,

I'm executing a transient analysis with sweep on a design variable.

At the end of the simulation it created the next directories

:-)>ls /.../results/maestro/ExplorerRun.0/
1/ 10/ 11/ 12/ 13/ 14/ 15/ 16/ 17/ 18/ 19/ 2/ 20/ 21/ 22/ 23/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ psf/ sharedData/ wavedb/

I want to et from SKILL the root directory of the simulation results and to process with an external script all the spectre.out files.

Any idea how can I do that?

I've try the old ADE-L style

sessionId = asiGetCurrentSession()
asiGetResultsDir(sessionId)

but it returns not want I want. I get

/.../$libName/$cellNAme/$stateViewName/results/maestro/ExplorerRun.0/psf/$cellName
which is two levels below what I want.

I think that the respective information is available in some data structure, because when I do right-click on the History entry ExplorerRun.0 , like in the picture below, it opens a terminal exactly on the path that I'm interested of.

I did some trials with the axl*History and axl*Test functions, but no success.

Thank you,

Marcel

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 1 year ago

    Dear Marcel,

    marcelpreda said:

    I want to et from SKILL the root directory of the simulation results and to process with an external script all the spectre.out files.

    Any idea how can I do that?

    Did you try to use the axlGetResultsLocation() function described in the ADE Skill Reference Manual? This function provides the path to your simulation data. Its single argument is the handle to the database. The example provided in the reference manual follows:

    data_sdb = axlGetMainSetupDB(axlGetWindowSession())
    axlGetResultsLocation( data_sdb )
    "myLib/myCell/adexl/results/data"

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 1 year ago in reply to ShawnLogan

    Dear Marcel,

    Just to add to my suggestion and perhaps make it more relevant, if you know the specific database you are interested in retrieving the path to, for example, "Interactive.0", the following use of the command might be helpful:

    resultsLoc = (axlGetResultsLocation (axlGetHistoryEntry (axlGetMainSetupDB
    axlGetWindowSession() ) "Interactive.0" ) )
    "opamplib/ampTest/adexl/results/data"

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to ShawnLogan
    ShawnLogan said:
    Just to add to my suggestion and perhaps make it more relevant, if you know the specific database you are interested in retrieving the path to, for example, "Interactive.0", the following use of the command might be helpful:

    Although it doesn't really give you the path to the Interactive.0 history; it just tells you the root of the results directory when that history was performed, if saveDir wasn't set. Not enormously useful... (the documentation isn't great on this).

    Better still (if using Explorer and Assembler), you can use:

    rdb=maeReadResDB(?historyName "Interactive.18")
    foreach(test rdb->tests()
      printf("Point %d Corner %L Test %L resultsDir %L\n" test->pointID test->cornerName test->name test->resultsDir)
    )

    when then outputs something like this (by accessing other parts of the RDB you can find out parameters etc):

    Point 1 Corner "nominal" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/1/TRAN"
    Point 1 Corner "PVT_0" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/2/TRAN"
    Point 1 Corner "PVT_1" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/3/TRAN"
    Point 1 Corner "PVT_2" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/4/TRAN"
    Point 1 Corner "PVT_3" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/5/TRAN"
    Point 1 Corner "PVT_4" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/6/TRAN"
    Point 1 Corner "PVT_5" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/7/TRAN"
    Point 1 Corner "PVT_6" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/8/TRAN"
    Point 1 Corner "PVT_7" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/9/TRAN"
    Point 1 Corner "PVT_8" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/10/TRAN"
    Point 1 Corner "PVT_9" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/11/TRAN"
    Point 1 Corner "PVT_10" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/12/TRAN"
    Point 1 Corner "PVT_11" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/13/TRAN"
    Point 1 Corner "PVT_12" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/14/TRAN"
    Point 1 Corner "PVT_13" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/15/TRAN"
    Point 1 Corner "PVT_14" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/16/TRAN"
    Point 1 Corner "PVT_15" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/17/TRAN"

    You can also use axlReadHistoryResDB() if using ADE XL.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to ShawnLogan
    ShawnLogan said:
    Just to add to my suggestion and perhaps make it more relevant, if you know the specific database you are interested in retrieving the path to, for example, "Interactive.0", the following use of the command might be helpful:

    Although it doesn't really give you the path to the Interactive.0 history; it just tells you the root of the results directory when that history was performed, if saveDir wasn't set. Not enormously useful... (the documentation isn't great on this).

    Better still (if using Explorer and Assembler), you can use:

    rdb=maeReadResDB(?historyName "Interactive.18")
    foreach(test rdb->tests()
      printf("Point %d Corner %L Test %L resultsDir %L\n" test->pointID test->cornerName test->name test->resultsDir)
    )

    when then outputs something like this (by accessing other parts of the RDB you can find out parameters etc):

    Point 1 Corner "nominal" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/1/TRAN"
    Point 1 Corner "PVT_0" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/2/TRAN"
    Point 1 Corner "PVT_1" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/3/TRAN"
    Point 1 Corner "PVT_2" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/4/TRAN"
    Point 1 Corner "PVT_3" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/5/TRAN"
    Point 1 Corner "PVT_4" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/6/TRAN"
    Point 1 Corner "PVT_5" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/7/TRAN"
    Point 1 Corner "PVT_6" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/8/TRAN"
    Point 1 Corner "PVT_7" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/9/TRAN"
    Point 1 Corner "PVT_8" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/10/TRAN"
    Point 1 Corner "PVT_9" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/11/TRAN"
    Point 1 Corner "PVT_10" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/12/TRAN"
    Point 1 Corner "PVT_11" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/13/TRAN"
    Point 1 Corner "PVT_12" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/14/TRAN"
    Point 1 Corner "PVT_13" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/15/TRAN"
    Point 1 Corner "PVT_14" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/16/TRAN"
    Point 1 Corner "PVT_15" Test "TRAN" resultsDir "/export/home/andrewb/workshops/adexl_workshop/design/simulation/opamp090/full_diff_opamp/maestro/results/maestro/Interactive.18/17/TRAN"

    You can also use axlReadHistoryResDB() if using ADE XL.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • marcelpreda
    marcelpreda over 1 year ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks a lot. 
    Using your hint with rdb->tests() I was able to solve other issue that I was on the list: find the value of a design variable in case of each simulation/test.
    test->->corner()->params() is really handy.

    The code is targeting the Explorer.

    BR,
    Marcel

    • 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