• 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. Changing instance properties though SKILL

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 145
  • Views 32041
  • 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 instance properties though SKILL

soathana
soathana over 13 years ago

Hi everyone I am using SKILL to generate a schematic.

So I am using schReplaceProperty function, but i have some problems. How can I get the names used for the instance parameters? The way i do it is call:

inst=dbCreateInst(...)

inst=list(inst)

schReplaceProperty(inst "name" "value") 

So for  width appearing (in Property editor and edit object properties) "Total Width" this is not the case. Apparently When I insert for name  "Total Width" i get a user property named Total, apparently it does not like space :) 

ideas? 

thanks,

Sotiris 

  • Cancel
Parents
  • dmay
    dmay over 13 years ago

    The "Total Width" is the prompt defined in the CDF, so what you want to find are the names of the properties.

    In your CIW, you can type this to see the names and values:
    inst~>prop~>name
    inst~>prop~>value

    I have a little convenience command I have defined to a bindkey in the CIW (one of the function keys). First I select an instance in the schematic (or layout) and press this bindkey. It will store the car(selectedSet()) in a global variable 'X' and the cdf in a variable 'CDF' so I can easily reference them in the CIW while debugging. It also prints out all the properties, their prompts, their types and their values in an easy to read table:

    procedure(mysel()
      let((promptTable)
        X=car(geGetSelectedSet())
        promptTable = makeTable("cdfPrompts" nil)
        when(X~>objType=="inst"
            CDF = cdfGetInstCDF(X)
            foreach(p CDF~>parameters
                promptTable[p~>name] = p~>prompt
            )
        )
        printf("X  = %L   (%L)\n" X X~>objType)
        if(X~>prop then
            printf(" \nProperties on selected object:\n")
            printf("CDF Prompt                  Property Name (type)       Value\n")
            printf("============================================================\n")
            foreach(prop X~>prop
                printf("%-25s = %-25s: %L\n" promptTable[prop~>name]||"no cdf"  sprintf(nil "%s (%s)" prop~>name prop~>valueType) prop~>value)
            )
        else
            printf("No properties on selected object\n")
        )
        t
      )
    )

    Also, as a shortcut, you can set properties like this:

    inst~>name = "myname"

    You can define "name" during dbCreateInst as well.

    I hope this helps.

    Derek

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • dmay
    dmay over 13 years ago

    The "Total Width" is the prompt defined in the CDF, so what you want to find are the names of the properties.

    In your CIW, you can type this to see the names and values:
    inst~>prop~>name
    inst~>prop~>value

    I have a little convenience command I have defined to a bindkey in the CIW (one of the function keys). First I select an instance in the schematic (or layout) and press this bindkey. It will store the car(selectedSet()) in a global variable 'X' and the cdf in a variable 'CDF' so I can easily reference them in the CIW while debugging. It also prints out all the properties, their prompts, their types and their values in an easy to read table:

    procedure(mysel()
      let((promptTable)
        X=car(geGetSelectedSet())
        promptTable = makeTable("cdfPrompts" nil)
        when(X~>objType=="inst"
            CDF = cdfGetInstCDF(X)
            foreach(p CDF~>parameters
                promptTable[p~>name] = p~>prompt
            )
        )
        printf("X  = %L   (%L)\n" X X~>objType)
        if(X~>prop then
            printf(" \nProperties on selected object:\n")
            printf("CDF Prompt                  Property Name (type)       Value\n")
            printf("============================================================\n")
            foreach(prop X~>prop
                printf("%-25s = %-25s: %L\n" promptTable[prop~>name]||"no cdf"  sprintf(nil "%s (%s)" prop~>name prop~>valueType) prop~>value)
            )
        else
            printf("No properties on selected object\n")
        )
        t
      )
    )

    Also, as a shortcut, you can set properties like this:

    inst~>name = "myname"

    You can define "name" during dbCreateInst as well.

    I hope this helps.

    Derek

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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