Error with jre when loading corners tool

Discussion in 'Cadence' started by spectrallypure, Feb 3, 2009.

  1. Hi all! I have just installed a TSMC 0.18 design kit and everything
    seems to work well up to simple schematic simulations. However, when I
    try to load the corners tool (Tools->Corners... in ADE) to test the
    related models, I get the following error in the CIW:

    sevCornersTool('sevSession3)
    *Error* The jre process is not running; Unable to find the jre
    executable.

    The corner tool works fine however with other design kit (AMS 0.35).
    Searching in the forum I found something related to corner analysis
    and jre, and tried setting the following variable:

    envSetVal("asimenv" "loadCorners" 'boolean nil)

    But the problem persists and I get the same error message. Could
    anybody please tell me what's going wrong here?

    Thanks in advance for any help/ideas/etc.

    Regards,

    Jorge.
     
    spectrallypure, Feb 3, 2009
    #1
  2. spectrallypure wrote, on 02/03/09 18:55:
    What IC version are you running, and what OS are you running on? (including
    version)?

    What happens if you do this (don't start ADE):

    1. In CIW type:
    corCornersExport()
    2. In CIW type:
    sh("xterm &")
    3. In the resulting terminal, check that CDS_MPS_SESSION is set:
    env | grep CDS_MPS_SESSION
    4. In the terminal that popped up, type:
    cdsCorners showDialog blah

    Does it give any errors about jre? Or do you get a splash screen, and then the
    corners UI (if so, just exit it, because it won't work properly).

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 4, 2009
    #2
  3. Hi Andrew, thanks so much for your reply. The initial problem of the
    corners tool not loading seems to have disappeared; I believe I was
    (mistakenly) testing the design kit with an account that had the
    environment variables not properly defined. Today I tried again from a
    fresh session and the corners tool loaded fine. I also tried the
    commands you specified:
    The problem now is that I get a lot of errors when trying to run the
    corner simulation itself. This is what I am doing:

    1. I have a simple cell with only one nmos transistor, with supply and
    excitation included. The transistor used is "nmos2v" from the tsmc
    library "tsmc18rf" (according to this component's CDF, the associated
    model is "nch").

    2. I start ADE and do a simple transient simulation. In the model
    libraries setup I am just including the following file:
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/tsmc18rf//../models/
    spectre/rf018.scs", section "tt"
    Everything works fine and I get the expected waveform at the output.
    In the spectre output log I get no errors.

    3. From the same ADE window of Step #2 I start the corners tool UI. It
    starts without errors, and from it I load a PCF file with the
    following contents (I created it from a sample file I found in the
    design kit directories):

    corAddProcess( "TSMC18MSRF" "./models/spectre" "multipleModelLib" )
    corAddModelFileAndSectionChoices( "TSMC18MSRF" "rf018.scs" '("ff" "fs"
    "sf" "ss" "tt" ) )
    corAddCorner( "TSMC18MSRF" "typ" )
    corSetCornerGroupVariant( "TSMC18MSRF" "typ" "rf018.scs" "tt" )
    corSetCornerRunTempVal( "TSMC18MSRF" "typ" 25 )

    The corners tool seems to be loading this PCF correctly, as I get no
    errors in the procedure. A single corner column "typ" appears, with
    the variables "rf018.scs" and "temp" set to "tt" and "25",
    respectively. In the upper part of the UI, I read "Process:
    TSMC18MSRF" and "Base Directory: ./models/spectre" (please note that
    "./models" is a local link that points to the design kit's spice
    models directory, and the "rf018.scs" file can be successfully
    accessed under "./models/spectre/").

    4. I use the option Simulation->Run to run start the corner
    simulation. The errors I get change very slightly depending on the
    version of Spectre I use. With version 5.1.0 I get the following
    errors in the output log:

    *******[start of output log - Spectre 5.1.0]*******
    Command line: /usr/local/software/cadence/ic/tools.lnx86/spectre/bin/
    32bit/spectre \
    -env artist5.1.0 +escchars +log ../psf/spectre.out -format
    sst2 \
    -raw ../psf +lqtimeout 900 +param \
    /usr/local/software/ams/dk_3.70/ams_v3.70/spectre/
    ams_range.lmts \
    +inter=skill input.scs
    Loading /usr/local/software/cadence/ic/tools.lnx86/cmi/lib/4.0/
    libinfineon_sh.so
    Loading /usr/local/software/cadence/ic/tools.lnx86/cmi/lib/4.0/
    libnortel_sh.so
    Loading /usr/local/software/cadence/ic/tools.lnx86/cmi/lib/4.0/
    libphilips_sh.so
    Loading /usr/local/software/cadence/ic/tools.lnx86/cmi/lib/4.0/
    libsparam_sh.so
    Loading /usr/local/software/cadence/ic/tools.lnx86/cmi/lib/4.0/
    libstmodels_sh.so
    ...
    spectre (ver. 5.10.41.062906 -- 29 Jun 2006).
    Simulating `input.scs' on uemcsrv.polito.it at 3:56:28 PM, Wed Feb 4,
    2009.
    Error found by spectre in `typ', during circuit read-in.
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs"
    5087: Bad (or unacceptable) statement in the body of a alter.
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs"
    5088: Syntax error in specification of `mismatch'.
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs"
    5089: Bad (or unacceptable) statement in the body of a alter.
    (...)
    (...a lot more of these same errors...)
    (...)
    Error found by spectre during circuit read-in.
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs"
    5098: Syntax error. Statement ignored.
    "input.scs" 37: Syntax error. Statement ignored.
    spectre terminated prematurely due to fatal error.
    *******[end of output log - Spectre 5.1.0]*******


    On the other hand, with Spectre 6.0.2 I get the following output:


    *******[start of output log - Spectre 6.0.2]*******
    Command line: spectre -env artist5.1.0 +escchars +log ../psf/
    spectre.out -format \
    sst2 -raw ../psf +lqtimeout 900 -maxw 5 -maxn 5 +param \
    /usr/local/software/ams/dk_3.70/ams_v3.70/spectre/
    ams_range.lmts \
    +inter=skill input.scs
    Loading /home/lagos/cds/tests/MMSIM_6.0/tools.lnx86/cmi/lib/64bit/4.0/
    libinfineon_sh.so ...
    Loading /home/lagos/cds/tests/MMSIM_6.0/tools.lnx86/cmi/lib/64bit/4.0/
    libnortel_sh.so ...
    Loading /home/lagos/cds/tests/MMSIM_6.0/tools.lnx86/cmi/lib/64bit/4.0/
    libphilips_sh.so ...
    Loading /home/lagos/cds/tests/MMSIM_6.0/tools.lnx86/cmi/lib/64bit/4.0/
    libsparam_sh.so ...
    Loading /home/lagos/cds/tests/MMSIM_6.0/tools.lnx86/cmi/lib/64bit/4.0/
    libstmodels_sh.so ...
    spectre (ver. 6.0.2.290 -- 27 Jun 2006).

    Simulating `input.scs' on uemcsrv.polito.it at 4:12:35 PM, Wed Feb 4,
    2009.
    Using new Spectre Parser.
    Error found by spectre during circuit read-in.
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs" 5087: Unexpected keyword "statistics".
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs" 5089: No master specified for instance `vthnmis'.
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs" 5090: Unexpected keyword "vary".
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs" 5090: No master specified for instance `dlnmis'.
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs" 5091: Unexpected keyword "vary".
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs" 5091: No master specified for instance `dwnmis'.
    (...)
    (...more of these same errors...)
    (...)
    "/usr/local/software/tsmc/tsmc18rf_pdk_v13d/1P6M/models/spectre/
    rf018.scs" 5098: Unexpected end of block statement "}".
    spectre terminated prematurely due to fatal error.
    *******[end of output log - Spectre 6.0.2]*******


    For both cases, the associated content of the file "rf018.scs" is as
    follows (these lines belong to the section "tt"):

    [*******...line 5086...*******]
    statistics {
    mismatch {
    vary vthnmis dist=gauss std=1/1
    vary dlnmis dist=gauss std=1/1
    vary dwnmis dist=gauss std=1/1
    vary toxnmis dist=gauss std=1/1
    vary vthpmis dist=gauss std=1/1
    vary dlpmis dist=gauss std=1/1
    vary dwpmis dist=gauss std=1/1
    vary toxpmis dist=gauss std=1/1
    }
    }
    [*******...line 5099...*******]


    Of course, the fact that the corner simulations fail puzzles me since
    I am specifying the same model library and section that I used for the
    simple transient simulation of Step #2. What could be going wrong? BTW
    I am using icfb 5.1.0 on RHEL4.

    Thanks again for any further help!

    Regards,

    Jorge.

    P.S. I almos forgot. I have noticed that in the Spectre output logs
    (look at the first lines) there is a reference to a file that does not
    correspond to the TSMC design kit, but to AMS' design kit:

    +param /usr/local/software/ams/dk_3.70/ams_v3.70/spectre/
    ams_range.lmts

    I don't know where this comes from nor if it has something to do with
    the errors. It would be nice to know how could I correct my
    environment definitions in order to correct this erroneous reference,
    though!
     
    spectrallypure, Feb 4, 2009
    #3
  4. spectrallypure wrote, on 02/04/09 15:33:
    Hi Jorge,

    Using spectre from IC5141 is probably asking for trouble - particularly with
    model files that are expected to work with a newer version of spectre. Even
    6.0.2 is pretty old, so I'd suggest using something more recent (MMSIM70 or
    MMSIM71).

    The front-end (the netlist parser/elaborator) in spectre changed between IC5141
    and MMSIM60 (you could enable the new parser in IC5141, but by default it was
    off), and that would explain the changes in errors.

    With the TSMC model files, they have a statistics block in a model file section
    which is switched out using a spectre capability called "altergroup" - a way of
    altering a bunch of things at once. Currently switching statistics blocks via
    altergroups is not supported.

    The workaround is to set the following cdsenv setting:

    spectre.envOpts useAltergroup boolean nil

    or from your .cdsinit:

    envSetVal("spectre.envOpts" "useAltergroup" 'boolean nil)

    this effectively tells the corners tool to start a fresh simulation for each
    point in the sweep, rather than trying to do it via an altergroup. This may even
    fix it for the IC5141 case, but I'd probably stick to a newer MMSIM version if
    you can.

    As for the +param command line argument, you probably have:

    spectre.envOpts paramRangeCheckFile string
    "/usr/local/software/ams/dk_3.70/ams_v3.70/spectre/ams_range.lmts"

    in a .cdsenv file somewhere. This ends up in the UI under Setup->Environment in ADE.

    Hope that helps you hunt it down!

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 4, 2009
    #4
  5. Is saying THANKS SO MUCH ONCE AGAIN YOU MADE MY DAY enough?!!! :)
    Seriously, thanks for solving both problems!

    Regards,

    Jorge.
     
    spectrallypure, Feb 4, 2009
    #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.