• 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. Use SKILL Code as Parameter Value for Instances in a Sc...

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 145
  • Views 15130
  • 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

Use SKILL Code as Parameter Value for Instances in a Schematic

FormerMember
FormerMember over 5 years ago

Hello,

I have a several cells which contain a schematic view and an 'sp' view. The 'sp' view is an S-parameter text file, which is referenced by an 'nport' in the schematic via the 'file' parameter.

However, only the absolute path to the 'sp' view file is saved at the moment, which becomes invalid every time the cell is moved or copied. My question is, if it is possible to use a SKILL function, or similar, to point the nport always to the sp view of the schematic, it is placed in.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to FormerMember

    Attached is an example using ADE Explorer (I didn't know which ADE you were using), which stores the s-parameter files in text views, and then sweeps an integer variable "x" between 1 and 2 (it could be extended). Essentially I've defined the variables as follows:

    Variable Expression
    SPVIEW sprintf(nil "%L" case(round(VAR("x")) (1 "splc1") (2 "splc2")))
    SPCELL "myblock"
    SPLIB "mylib"
    SPFILE sprintf(nil "%L" ddGetObj(VAR("SPLIB") VAR("SPCELL") VAR("SPVIEW") "text.txt")~>readPath)
    x 1,2

    Personally I would have done this instead, as it makes it simpler (this is what I had originally):

    Variable Expression
    SPVIEW "splc1","splc2"
    SPCELL "myblock"
    SPLIB "mylib"
    SPFILE sprintf(nil "%L" ddGetObj(VAR("SPLIB") VAR("SPCELL") VAR("SPVIEW") "text.txt")~>readPath)

    In other words, just sweep the view string and not bother with the bit that sweeps an integer.

    The nport in the schematic is just a normal analogLib nport, with the filename set to be a variable, and SPFILE as the variable for the file to reference. As you can see, the SPFILE is a SKILL expression which references the source lib/cell/view and retrieves the file. The sprintf() stuff is to ensure there are quotes around the file name.

    Hope that helps?

    Andrew.

    https://community.cadence.com/cfs-file/__key/communityserver-discussions-components-files/48/sparamViewSweep.tgz

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FormerMember
    FormerMember over 4 years ago in reply to Andrew Beckett

    I am using the netlistProcedure approach for some time now with spectre and it works quite well. However, now I want to run some AMS simulations with the modified nport as well. I guess I also have to use an own netlistProcedure here, but I cant get it to work. The generated netlist does not contain any modified nport instance.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to FormerMember

    Hi Paul,

    It ought to work with the same netlist procedure for spectre (because the AMS UNL netlister uses the spectre netlister under the hood). Are you essentially using the netlist procedure above for spectre? If not, can you post it here?

    By the way, in IC6.1.8/ICADVM20.1 ISR16 (out later this month), the analogLib nport will have the ability to specify a lib/cell/view on the instance.

    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