• 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. ADEXL - How to get current test's name (or final PSF dir...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 2352
  • 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

ADEXL - How to get current test's name (or final PSF dir) at simulation (netlisting) time?

dontpanic
dontpanic over 10 years ago

Hello all! I seem unable to find a way of getting the name of the current test at simulation time. My final objective is to determine the *exact* PSF directory of every montecarlo point in a multi-test ADE-XL run, and I need this information during nestlisting time to tell a testbench module (written in verilog-a) where to write its output.

In ADE-L I can get away with "asiGetPsfDir(asiGetCurrentSession())", but in ADE-XL this doesn't work, as it returns not the final PSF directory of the current test/point being run, but some temporary directory like:

"[...]/[lib_name]/[cell_name]/adexl/results/data/.tmpADEDir_[username]/[test_name]/simulation/[cell_name]/spectre/schematic/psf"

while I can see the final PSF data is being written to a different location:

"[..]/[lib_name]/[cell_name]/adexl/results/data/Interactive.XXX/1/[test_name]/psf"

Thus, the output of my verilog-a module ends up being writen to the temp directory and gets overwritten and lost when I run several tests/points.
I've tried using "axlGetPointPsfDir()" as it seems to returns the right (final) PSF directory when I call it:

my_adexl_history_entry   = axlGetHistoryName(axlGetCurrentHistory(axlGetWindowSession()));
my_test_name             = "TT";
axlGetPointPsfDir(axlGetHistoryEntry(axlGetMainSetupDB(xlGetWindowSession()) my_adexl_history_entry) my_test_name)

The problem is that I cannot find a way of determining the test name during simulation time!!! How could I accomplish this?
 
...or is there maybe an easier way of obtaining the PSF directory of every montecarlo point at simulation time?

Thanks in advance for any help.

Cheers,

Jorge.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Hi Jorge,

    Why not get your VerilogA to write to "../psf/myoutput.txt" (or whatever)? The simulation is run from the "netlist" directory, so a relative path from there would put it into the psf directory.

    That seems a lot simpler...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dontpanic
    dontpanic over 10 years ago
    Hi Andrew, thanks for your prompt reply. I just tried the solution you suggested: it almost works like a breeze, but unfortunately it seems to break when running several statistical points. In particular, the module writes successfully to the desired directory only for the first "N" montecarlo points, where N=maximum # of jobs (set in the ADE-XL menu Options->Job Setup). For all the remaining points that are executed afterwards, the results are not there, but instead they seem to have been written (and overwritten) under a folder called "sharedData".

    For instance, if I run 20 montecarlo points for 2 tests "TTg_localMC" "SSg_localMC" and specify N=16 in my Job Setup, only the first 8 points of each test (i.e. the first 16 jobs) have their results appropriately saved, as can be seen from the following search of the output directory "myDumpedSimData" created by my verilog-a module:

    > pwd
    [...]/adexl/results/data/MonteCarlo.10

    > find . -name "myDumpedSimData"
    ./1/TTg_localMC/psf/myDumpedSimData
    ./1/SSg_localMC/psf/myDumpedSimData
    ./2/TTg_localMC/psf/myDumpedSimData
    ./2/SSg_localMC/psf/myDumpedSimData
    ./3/TTg_localMC/psf/myDumpedSimData
    ./3/SSg_localMC/psf/myDumpedSimData
    ./4/TTg_localMC/psf/myDumpedSimData
    ./4/SSg_localMC/psf/myDumpedSimData
    ./5/TTg_localMC/psf/myDumpedSimData
    ./5/SSg_localMC/psf/myDumpedSimData
    ./6/TTg_localMC/psf/myDumpedSimData
    ./6/SSg_localMC/psf/myDumpedSimData
    ./7/TTg_localMC/psf/myDumpedSimData
    ./7/SSg_localMC/psf/myDumpedSimData
    ./8/TTg_localMC/psf/myDumpedSimData
    ./8/SSg_localMC/psf/myDumpedSimData
    ./sharedData/Job38/ahdl/psf/myDumpedSimData
    ./sharedData/Job26/ahdl/psf/myDumpedSimData
    ./sharedData/Job35/ahdl/psf/myDumpedSimData
    ./sharedData/Job37/ahdl/psf/myDumpedSimData
    ./sharedData/Job33/ahdl/psf/myDumpedSimData
    ./sharedData/Job30/ahdl/psf/myDumpedSimData
    ./sharedData/Job23/ahdl/psf/myDumpedSimData
    ./sharedData/Job32/ahdl/psf/myDumpedSimData
    ./sharedData/Job34/ahdl/psf/myDumpedSimData
    ./sharedData/Job36/ahdl/psf/myDumpedSimData
    ./sharedData/Job29/ahdl/psf/myDumpedSimData

    Do you have any idea of where I could try to tweak my setup in order to overcome this problem?
    Thanks again for your help!

    Cheers,

    Jorge.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dontpanic
    dontpanic over 10 years ago
    UPDATE: after some researching I found a couple of threads about the use of the "enableOutdir" variable, so I tried setting it to nil:

    envSetVal("adexl.icrpStartup" "enableOutdir" 'boolean nil)

    ...and now everything seems to work fine! (i.e. the output of my verilog-a module seems to be saved correctly for all the montecarlo points; I just ran a few dozen points but I will run a longer batch overnight).

    Thank you Andrew for your help.

    Cheers,

    Jorge.

    P.S. Just for the sake of completeness, it would be great if you could you please comment on the feasibility of getting the name of the current test during a simulation... I find it hard to believe it's not possible!
    • 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