• 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. Cannot obtain the license for spectreRF when interfacing...

Stats

  • Replies 17
  • Subscribers 125
  • Views 848
  • Members are here 0

Cannot obtain the license for spectreRF when interfacing matlab with spectre

SW202509035411
SW202509035411 4 days ago

Dear all,

I am current trying to read spectre simulation results into MATLAB using the Spectre/RF MATLAB toolbox, but I got the error message when using cds_srr function in MATLAB:

Error: License for the SpectreRF option could not be obtained.

I refered to the procedure in SpectreRF Simulation Option Theory, and I also checked according to the posts:

https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/34820/not-able-to-interface-spectre-data-with-matlab 

https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/41322/cds_srr-doesn-t/1359466?focus=true

I checked the license (by echo $LM_LICENSE_FILE) and it is pointed to two license servers (The $CDS_LIC_FILE is undefined).

Also, before launching MATLAB (from the shell window of virtuoso), I set the dynamic library path by

setenv LD_LIBRARY_PATH `cds_root spectre`/tools/dfII:`cds_root spectre`/tools/lib:${LD_LIBRARY_PATH}

(In the manual, it should be setenv LD_LIBRARY_PATH `cds_root spectre`/tools/dfII/lib:`cds_root spectre`/tools/lib:${LD_LIBRARY_PATH}. However, I did not find the lib directory under dfII, so I changed the path to dfII.)

Besides, the MATLABPATH was also set to include the `cds_root spectre`/tools/spectre/matlab.

Versions:

MMSIM: MMSIM131_186

MATLAB: 2016a

Thanks a lot in advance!

Best Regards,

Sai

  • Sign in to reply
  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett 4 days ago

    Sai,

    Why are you trying to run a 12 year old version of Spectre? 

    It was changed many years ago to require just a Spectre license (or a single MMSIM token) - I have no means of (easily) running anything quite that old, I'm afraid. You also haven't needed to set LD_LIBRARY_PATH for a long time - I only do this nowadays:

    setenv MATLABPATH `cds_root spectre`/tools/spectre/matlab/64bit

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you so much for your quick and kind reply!

    I am also confused about this old version of mmsim, but this is the only mmsim version I could found (by typing module av in the terminal). I also found that the latest spectre version provided by our university is "cadence/spectre/241_344", it is much newer I guess. So I used this spectre to simulate the netlist file:

    module load cadence/spectre/241_344

    /NAS/cad/cadence/SPECTRE241_344/tools.lnx86/bin/spectre techsweep.scs +log techsweep.out

    However, I got the error message:

    WARNING (/NAS/cad/cadence/SPECTRE241_344/tools.lnx86/bin/cdnsEnvCheck): This OS does not appear to be a Cadence supported Linux configuration (set environment variable CDS_SKIP_OS_CHECK_ON_STARTUP=1 to suppress). For more info, please run <cdsroot>/bin/checkSysConf <productId>
    /NAS/cad/cadence/SPECTRE241_344/tools.lnx86/spectre/bin/64bit/spectre: error while loading shared libraries: libmvec.so.1: cannot open shared object file: No such file or directory

    I typed setenv CDS_SKIP_OS_CHECK_ON_STARTUP 1, and run the spectre command again, it still gave me an error:

    /NAS/cad/cadence/SPECTRE241_344/tools.lnx86/spectre/bin/64bit/spectre: error while loading shared libraries: libmvec.so.1: cannot open shared object file: No such file or directory

    I found that in cadence/SPECTRE171_627/tools/spectre/bin/64bit, there is a spectre file. However, for SPECTRE241_344, it is absent. Is there any difference between these two versions? How could I interface between this spectre and MATALB? If I understand correctly, I should be able to use the toolbox directly (w/o setting any environment variable except for MATLABPATH) after I run the netlist (I guess).

    Thanks again for your kind help!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to SW202509035411

    BTW, my os is CentOS Linux release 7.9.2009 (Core).

    Thanks!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 3 days ago in reply to SW202509035411

    The stream name changed from MMSIM to SPECTRE in 2016 for SPECTRE 16.1 (the previous release was MMSIM 15.1). So that changed a long time ago.

    SPECTRE 24.1 requires a minimum of RHEL 8 - so CentOS 7 is too old. I don't understand what you mean about the 241_344 version not having a "spectre file". Clearly it's there, because the error message is reporting it as not being able to run because of the missing shared library (which is one of the consequences of the outdated OS version).

    SPECTRE 17.1 is from 2017, so that's 8 years old. I'd advise you to get something more recent - maybe SPECTRE 23.1 if you are stuck on CentOS 7 for now. This is still available on our downloads site.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Thank you so much, Andrew! I understand now! I tried to use SPECTRE 23.1, and the license issue has been fixed. However, I still got an error message as below:

    Invalid MEX-file '/NAS/cad/cadence/SPECTRE231_802/tools/spectre/matlab/64bit/cds_innersrr.mexa64':
    /NAS/cad/MATLAB/R2016a_CentOS6/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by
    /NAS/cad/cadence/SPECTRE231_802/tools/spectre/matlab/64bit/cds_innersrr.mexa64)

    Error in cds_srr (line 20)
      sig = cds_innersrr(dirname, dataset, signame, verbose);

    Error in techsweep_run (line 58)
                struct_n = cds_srr(c.outfile, c.sweep, params_n{1});

    I guess it is still a problem related to version. But I have no idea how to fix it... Maybe I should change the MATLAB version? The latest version I have is 2016a.

    Thanks again!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Thank you so much, Andrew! I understand now! I tried to use SPECTRE 23.1, and the license issue has been fixed. However, I still got an error message as below:

    Invalid MEX-file '/NAS/cad/cadence/SPECTRE231_802/tools/spectre/matlab/64bit/cds_innersrr.mexa64':
    /NAS/cad/MATLAB/R2016a_CentOS6/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by
    /NAS/cad/cadence/SPECTRE231_802/tools/spectre/matlab/64bit/cds_innersrr.mexa64)

    Error in cds_srr (line 20)
      sig = cds_innersrr(dirname, dataset, signame, verbose);

    Error in techsweep_run (line 58)
                struct_n = cds_srr(c.outfile, c.sweep, params_n{1});

    I guess it is still a problem related to version. But I have no idea how to fix it... Maybe I should change the MATLAB version? The latest version I have is 2016a.

    Thanks again!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett 3 days ago in reply to SW202509035411

    Sai,

    Yes, I think R2016a is too old. I certainly had been able to run Matlab R2022b on RHEL7 (I think if you go too much newer, they drop support for RHEL7/CentOS 7).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Hi Andrew,

    I see... But the latest MATLAB I can access is 2016a, and I am not able to use a newer version on my PC (due to the policy of our lab...). So is there a comprise under this case? 

    Thanks!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 3 days ago in reply to SW202509035411

    Sai,

    I can't test this, but perhaps try:

    setenv LD_PRELOAD /export/releases/SPECTRE231_isr/tools.lnx86/lib/64bit/libstdc++.so.6

    (note the path to your SPECTRE231 installation will be yours; this is csh syntax, and if using bash you'd need to use export LD_PRELOAD=... instead).

    Then run Matlab after doing this. This would cause the libstdc++.so.6 to use the version from Spectre instead, and so that means that (hopefully) the Spectre toolbox would work.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you for your suggestions! I tried it, but I got the license error like before:

    Error: License for the SpectreRF option could not be obtained.

    I do not ensure that whether I understand correctly, and here is what I did:

    module load cadence/spectre/231_802

    module load matlab/R2016a/R2016a_CentOS6

    setenv LD_PRELOAD /NAS/cad/cadence/SPECTRE231_802/tools.lnx86/lib/64bit/libstdc++.so.6

    matlab &

    Then I ran the toolbox from matlab and got the error as above. I also tried to change the sequence of loading and setenv .. but I got the same error message.

    Thanks again for your help!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 3 days ago in reply to SW202509035411

    The error message is actually wrong - it's not been updated since the license change happened. Using Spectre 23.1 with Matlab R2022b and playing with my available licenses, I see that it is checking (in order):

    1. Virtuoso_Spectre
    2. Virtuoso_Acceler_Parallel_sc
    3. Virtuoso_Multi_mode_Simulation

    If none of these three are available, you will get the message you are seeing. I suggest you try running:

    perf_test -f Virtuoso_Spectre -test_cp -lc 1

    and then try this for each of the three licenses above. This will check whether it can checkout the license or not in your environment. 

    Note that perf_test is in <SPECTREinstDir>/bin - so you could give the full path to it.

    The other thing to check is whether $CDS_LIC_ONLY is set - if so, you should set $CDS_LIC_FILE (in fact you might want to just set that anyway). Maybe either the LM_LICENSE_FILE checking has been turned off by $CDS_LIC_ONLY or maybe you are running Matlab via a wrapper script which sets LM_LICENSE_FILE and loses the Cadence licenses in the process?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thank your for your suggestions! I checked the three licenses but none of them are available. I also checked $CDS_LIC_ONLY, it is undefined. However, the LM_LICENSE_FILE is set properly. What confused me is that, although the three licenses are not available, there is not "License for the spectreRF option could not be obtained" message as long as I do not set the LD_PRELOAD. If I set the LD_PRELOAD, the license cannot be obtained.. (I wrote a reply containing the detailed error messages, but I was informed that the reply is determined to be SPAM... Maybe the reply is too long. Sorry for that.)

    Or, is there any possibility to use an older version of spectre, e.g., spectre 17.1, so that to fit the Matlab 2016? I tried this, but the problem is the same -- it cannot obtain the license.

    Thanks again for your patient help!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 3 days ago in reply to SW202509035411

    Sai,

    SW202509035411 said:
    Thank your for your suggestions! I checked the three licenses but none of them are available

    If none of the licenses are available via the perf_test, it's never going to work (with this or the older version of Spectre).

    SW202509035411 said:
    What confused me is that, although the three licenses are not available, there is not "License for the spectreRF option could not be obtained" message as long as I do not set the LD_PRELOAD.

    That's not surprising. If you are getting the issue with the Invalid MEX-file message then the MEX file won't be loaded, and since it's not loaded it can't try to do the license checkout and then fail. In other words, the code that is doing the license check is never called. Using the LD_PRELOAD allows a compatible version of the libstdc++.so.6 to be loaded both by Matlab and by the MEX file for the Spectre toolbox, and hence it gets to doing the license check.

    SW202509035411 said:
    (I wrote a reply containing the detailed error messages, but I was informed that the reply is determined to be SPAM... Maybe the reply is too long. Sorry for that.)

    I found that post awaiting appeal and approved it, so I can now see the detail. It went into moderation because of the repeated text, most likely.

    SW202509035411 said:
    Or, is there any possibility to use an older version of spectre, e.g., spectre 17.1, so that to fit the Matlab 2016? I tried this, but the problem is the same -- it cannot obtain the license.

    Unsurprising, because the problem is licensing, not the version you're using.

    Please set CDS_LIC_ONLY (the perf_test seems to require that env var to be set - it doesn't use LM_LICENSE_FILE), and repeat the perf_test. I'm not sure I understand the reluctance to set that specific env var (we generally recommend setting the Cadence-specific env variable rather than the generic LM_LICENSE_FILE, as particularly with CDS_LIC_ONLY, this leads to better license performance as you don't end up checking irrelevant license servers).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you so much for your reply! I have learned quite a lot from your instructions! I set the CDS_LIC_ONLY and CDS_LIC_FILE as follows:

    module load cadence/spectre/231_802

    setenv CDS_LIC_FILE 5280@licsrv02

    setenv CFS_LIC_ONLY 1

    And I repeat the perf_test, it gave me a very long message containing Test A, Test B, Test C and Test D. The error message are the same:

    ERROR (LMF-03010): License call failed for feature Virtuoso_Spectre, version 1.000 and quantity 1. The license server search path is defined as 5280@licsrv02. The FLEXnet error message is as follows,
        FLEXnet ERROR(-10, 0, 0): Feature has expired.

    Run 'lic_error LMF-03010' for more information.

    So I ran lic_error LMF-03010, and got

    ERROR (LMF-02010): Feature has expired.

    The feature has expired. Today's date is after the expiration date in the
    license file.

    Contact Cadence support at support@cadence.com for further assistance.

    I also read your post in https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/21033/cadence-ic-6-14-license-issue, so I tried lmstat -a -c 5280@licsrv02, it returns a large amount of information containing the location of the license file, the feature usage info, etc., so I guess there is nothing wrong for the communication with the license server.

    Thanks again for your patience!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • SW202509035411
    SW202509035411 3 days ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you for your reply! Could you please approve the post? It was blocked again.. I tried to set the CDS_LIC_ONLY and CDS_LIC_FILE, and repeat perf_test. It returned an error message (LMF-03010, I am afraid this reply can be blocked again if I post the entire message, sorry for that..). I also ran lmstat -a -c 5280@licserverhostname according to your post in https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/21033/cadence-ic-6-14-license-issue, and I thought the communication with the license server works well.

    Thanks!

    Best Regards,

    Sai

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 3 days ago in reply to SW202509035411
    SW202509035411 said:
    Could you please approve the post? It was blocked again

    If a post gets blocked, please appeal it rather than keep posting again and again (I don't generally go and check posts awaiting appeal because then I have to wade through all the real spam posts).

    Anyway, I found it (at least one of them) and approved. 

    The error message is clear:

    SW202509035411 said:
    ERROR (LMF-03010): License call failed for feature Virtuoso_Spectre, version 1.000 and quantity 1. The license server search path is defined as 5280@licsrv02. The FLEXnet error message is as follows,
        FLEXnet ERROR(-10, 0, 0): Feature has expired.

    it's telling you that you are past the expiration date in the license file (for this feature, at least). The lmstat will still list expired licenses (I think), so you should look at the license file itself.

    If you're getting the expired feature error for all the three licenses, that's your problem...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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