• 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. Cadence IC5.1.41 libInit.il

Stats

  • Locked Locked
  • Replies 19
  • Subscribers 144
  • Views 22861
  • 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

Cadence IC5.1.41 libInit.il

ag2888
ag2888 over 11 years ago
Hi,

I wanted to know is it possible to overwrite the libInit.il file, which is specified in the project area by a local version of the same??
I am actually trying to load a user defined set of "modelPath"s for the analog design environment. So i have another skill script in my local area to do that (this is loaded using .cdsinit). But the libInit.il file in the project area, that is sourced whenever i open the library manager, overwrites the "modelPath"s by loading a script in the project area.

Any suggestions how this can be done?

Any other suggestions on how to add some default set of "modelPath"s for the ADE?

Thanks
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Probably. I'd have to suck it and see, just as you can do. This API is obsolete so I've not really used it for a few years (the whole corners mechanism changed in IC61).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ag2888
    ag2888 over 11 years ago
    Hi Andrew,
     
    Thanks a lot for the help.
    I checked on this and using the following in PCF works:
     
    Using either 
    corAddGroupAndVariantChoices( "proc1" "combined.scs" '("ttt" "fft" "sst" "fst" "sft") ) [I used this in my PCF originally]
     OR
    corAddModelFileAndSectionChoices( "proc1" "combined.scs" '("ttt" "fft" "sst" "fst" "sft") ) [When i save the setup through the corners tool directly, this is saved in the file instead of corAddGroupVariantChoices]
     
    And then adding the corner as below- 
    corAddCorner( "proc1" "typ" )
    corSetCornerGroupVariant( "proc1" "typ" "combined.scs" "ttt" )
    corSetCornerRunTempVal( "proc1" "typ" 27 ) 
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ag2888
    ag2888 over 11 years ago

    Hi Andrew,

     I have another query wrt the probing currents in cadence.

    To probe the current i click on the pin (device or Instance symbol) , which shows a circle around it. The problem that i am facing is that this works perfectly when my simulator is Spectre.

    But when my simulator is hspice probing a device pin gives a warning :

     Element xpm1 in print, plot, probe or measure statements is invalid. Output is ignored.

    And the currents are not plotted.

    I am trying to probe the drain currents of PMOS in a simple current mirror circuit.

    When i check the netlist created for hspice, there exists a definition for xpm1 and the probe statement for it is I1(xpm1). For the same simulation i am able to plot the transient node voltages as well current at the plus terminal of an ideal current source or a instance symbol pin.

     

    Another difference that i noticed between the two input files (.scs and .ckt) is that:

    In input.ckt (hspice) : the devices are defined as XPM or XNM instead of MPM or MNM

    In input.scs (spectre) : the devices are defined as PM or NM.

    The model files for both spectre and hspice contain the definition of mosfets as subckt.. 

     

    Could you please suggest what could be the reason for this? 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    I was going to split this off as a separate topic, because it's wandering all over the place... anyway, I see that you have created a new thread (so I won't answer this one).

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 6 years ago

    Hi,

    I am facing the exact same problem currently, and did not yet find an answer - too bad that Andrew did not answer this question, it would have been very helpful.

    Is there a way that I can keep my customized path to the modelfiles ?

    One workaround I found is, to load first the "libInit.il" in .cdsinit BEFORE setting my custom path. By that the Virtuoso environment does not reload the "libInit.il" when a library is accessed the first time via schematic/layout/ADE.

    But this workaround creates some warnings when loading "libInit.il" via .cdsinit, and I am not sure why and if it is okay to call it during .cdsinit.

    Any better way to do it ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 6 years ago in reply to HoWei

    If you allow the libInit.il to load by "accessing" the library it would be much cleaner, for example: ddGetObj("library_name") in your .cdsinit before your own code for setting the model paths. I have employed this dummy access for this exact reason - I can't control the foundry code but I can force their code to load before my own settings.  A bit of a kludge but it works and does not require changes from the foundry to accommodate my requirements.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to HoWei

    You can't disable the loading of a libInit.il. There are two approaches that could be used - one is to just use:

    ddGetObj("theLibName")

    in the .cdsinit - that will force the libInit.il to be loaded in the standard fashion because it's loaded from the firstAccessLib trigger of the l library.

    The second (a bit more complicated) is to define your own firstAccessLib ddTrigger (using ddRegTrigger) to do something after each library is first accessed - it could then augment or set the model files. However, this is a bit more complicated. I'd probably just use the ddGetObj approach.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 6 years ago in reply to Andrew Beckett

    Hi guys,

    thanks for kick'in in so quick !

    My apologies - I first did not see the complete thread for some reason, just the last comment from Andrew, now I see the quite lengthy discussion.

    I actually do typically use ddGetObj(), but somehow in the last PDK install it did not work. I have to debug again, and see what the problem is.

    But now I know the reason why I used ddGetObj() always !

    Thnx!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to HoWei

    I didn't notice the full thread either! This is an annoying feature that it collapses the threads sometimes so it didn't look as if there was any history. At least I appear to be consistent in my responses!

    Andrew.

    • 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