• 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. How to pass parameters to sub-hierarchy cells with calc...

Stats

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

How to pass parameters to sub-hierarchy cells with calculation

weihai
weihai over 15 years ago
How to pass parameters to sub-hierarchy cells with calculation (e.g., Length = Length - 0.5 as below, which will flag as error)
The codes can't work when adding "Length = Length - 0.5" but work well if removing the calculation line. why?
Thanks a lot!
 
; Default Parameters
(
   (Length  string  "1.0")
)
 
......
 

;get parameter value from the user interface
    Length = evalstring(car(exists(prop pcParameters ((prop->name)=="Length")))->value)
 
;calculate new Length based on input
    Length = Length - 0.5
 
;Build parameter list for instantiation
 
   paramList = list(
 list("Length"  "string"  Length)
 )
 
    ;Open sublevel device/structure
    nfet_c_Inst = dbOpenCellView(pcLib "nfet_c" "layout")
 
    ;Place initial subInst
    nfet_c = dbCreateParamInst(pcCV nfet_c_Inst nil 0:0 "R0" 1 paramList)

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    Huh? This makes no sense at all. Probably not helped by the fact that you've given an incomplete example, so it's hard to follow what you're doing.

    I assume the "; Default Parameters" bit is the formal parameters of a pcDefinePCell call? If so, then within the body of the pcDefinePCell, you can reference the variable Length. There's no need to do that evalstring() line - that seems horribly complicated and unnecessary. Since you've defined the default as a string, you'd want to convert to a float - for example:

    Length=cdfParseFloatString(Length)

    then

    Length=Length=0.5

    and then if you want to create an instance of a sub-pcell then you'd do what you want. 

    You gave no indication of the error you got (so really hard to diagnose). Perhaps the value of Length is out of range? Who knows - I can't guess from no information, unfortunately.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • weihai
    weihai over 15 years ago

    We have found the problem with your help and fixed it with "sprintf".  We need convert the "Length" from float type to string type after the calculation. Thanks.

    • 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