• 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. Changing Default Path in Model Library Setup

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 4626
  • 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

Changing Default Path in Model Library Setup

sgcad
sgcad over 1 year ago

Hi

The PDK we're currently working with creates absolute paths in the model library setup. So the path to the simulation models looks like this:

/process/MyFab/MyTech_2024-05-12a/Models/Spectre/MySpectreModels.lib.scs

The problem with this is that if we switch to a newer PDK version, existing Spectre presets still point to the old PDK. This is tedious as the Spectre presets have to be manually updated, and it is risky if a preset is accidentally not updated and the models of the old PDK still used.

Instead, we would prefer paths in the model library setup as follows:

$MY_TECH/Models/Spectre/MySpectreModels.lib.scs

Where $MY_TECH is an environment variable that points to /process/MyFab/MyTech_2024-05-12a and can be easily updated. This environment variable is already used to define the technology library in the cds.lib file, but the model library setup still creates absolute paths.

How can this be changed? Currently we're still using Virtuoso IC6.1.8., but as we might switch to the most recent version in a couple of month, it would be good to have a solution that works in both versions.

Thanks very much for your help!

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    Well, changing it for existing views is easy enough to do interactively - you can use the Model Library setup on one test and there's a button on there to update other tests (in the same maestro view) - as shown here: How to update all model libraries of all Tests at one time in Assembler

    For new views, it's a matter of locating where the default is being set (probably with an envSetVal using modelFiles, or sometimes using asiEnvSetOptionVal for modelFiles too). Sometimes this is in the libInit.il of the technology library in the PDK, but it really depends on the PDK. Then you can change to using the env var (I agree, using the env var is much safer for PDK migration).

    This might help too: How to update models defined in a maestro view

    Andrew.

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

    Thanks very much for your response. I was able to locate the SKILL code that sets the path. libInit.il calls a separate function, which then uses asiEnvSetOptionVal as follows:

    scsModelList =
        list(
                        list(strcat(libPath "/../Models/Spectre/MySpectreModels.lib.scs") "tt")
                        list(strcat(libPath "/../Models/Spectre/MySpectreModelsRF.lib.scs") "tt")
        ); list

    asiSetEnvOptionVal(asiGetTool('spectre) "modelFiles"
                 scsModelList

    I'd prefer to not modify the PDK files, if possible. Can I just use asiSetEnvOptionVal in our .cdsinit to overwrite the path (after the technology library has been loaded and thus the libInit.il executed)?

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

    Yes, you can do it in the .cdsinit - if you use ddGetObj("theLibName") first it would force the loading of that library's libInit.il and then you can override the setting afterwards as you suggested.

    Andrew 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sgcad
    sgcad 11 months ago in reply to Andrew Beckett

    Thumbsup Thanks, seems to work fine.

    • 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