• 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. Annotate symbol with design variables

Stats

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

Annotate symbol with design variables

ritterp
ritterp over 14 years ago

Hello,

I would like to add a label (by means of ILLabel guess) to the symbol whose value depends on global design variables. Let's imagine we had a symbol for a transmissionline segment consisting of a cap with value Par("C") and an inductor with value pPar("L"). When instantiating the cell we would set C=DESIGNVARIABLE_C and L=DESIGNVARIABLE_L. In the label I would like to see the result of ZW=sqrt(L/C), but values of the design variables (DESIGNVARIABLE_C and DESIGNVARIABLE_L) should be taken into accout. Is there any easy way to evaluate the expression sqrt(l/C) in SKILL? I have had a look at ael* functions to interpret expressions, but the parser seems to be unable to find out design variable values. I am using IC 5.1.41 with analog design environment for the global variables.

Thank you so much for your help,

 
Phil 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    Phil,

    If you make the labels with expressions cdsParam(1) cdsParam(2) etc, you can use the CDF (interpreteted labels section) or Edit Component Display in the schematic editor to do what you want. You'd do  Edit->Component Display, click on the instance, and select "Parameter" on the form. You should see a number of cyclic fields (one per cdsParam() on the master you've selected) and you can change this to C, L etc. If you set the evaluation from "literal" to "full", it will fully evaluate the expression and design variables etc, based on the lineage down to the instance (i.e. if you've pushed through the hierarchy, you'll see the specifi evaluation of that hierarchical path).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ritterp
    ritterp over 14 years ago

    Hello Andrew,

     

    thanks! I have considered cdsParam(..) too but could not find a way to call functions like sqrt(L/C) in the paramLabelSet entry within the "interpreted labels information" section. Could you please tell me how to do that?

     Regards,Phil
     

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

    Phil,

    Create another CDF parameter called, say, "myparam", with parseAsCEL set to yes, and parseAsNumber set to yes, and set the value in the CDF to:

    sqrt(iPar("L")/iPar("C"))

    You could set editable to nil, and even display to nil if you want (so it doesn't show up on the edit properties form). You can then use the Edit Component Display to show this additional calculated parameter in the way I described previously,or add "myparam" into the paramLabelSet.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ritterp
    ritterp over 14 years ago

    Thank you very much for your very enlightening answer, it has been very helpful to me - I should have asked you earlier, I have spent two days on that ;-)

    Regards,

     Phil

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ritterp
    ritterp over 14 years ago

    ... well one tiny problem remains. The method you proposed works well if the parameters of the cell are given directly (e.g. L=1pH,C=1fF) in the very same level in hierarchy- in this case iPar("L") returns the right value. In contrast, iPar("L") does not seem to be evaluated if L of the cell is defined as pPar("L")

    To sum up: this one works:

    bottom layer: L=1nH
                         C=1fF
                        ZW=sqrt(iPar("L")/iPar("C"))

    top layer: not applicable

    whereas this one does not: 

    bottom layer: L=pPar("L")
                          C=pPar("C")
                         ZW=sqrt(iPar("L")/iPar("C"))

    top layer: L=1pH
                     C=1fF

     

    Am I right if I assume that this is due to using the same identifier for the actual parameter and the name for the inherited one? Is there any solution to this (I would like to avoid to name them differently in each level of hierarchy a parameter is passed through)?

    Best regards,

    Philipp 

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

    Hi Philipp,

    That should work - it's perfectly OK to use the same parameter name at each level in the hierarchy. In fact I just tried it and it work (I was sure it would).

    My guess is that maybe you have not set parseAsCEL/parseAsNumber to yes in one of the parameters in either the bottom layer's CDF or the top layer's CDF (I didn't try guessing what you might have done wrong and trying that out).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ritterp
    ritterp over 14 years ago

    I think the problem was that there was by mistake a user cdf entry in that cell that overrode the base cdf in which I experimented with pPar() and iPar(), hence the error. Now it works as expected.Thank you for your help, 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