• 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. Boolean CDF Parameter: using "FALSE" works for edit property...

Stats

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

Boolean CDF Parameter: using "FALSE" works for edit property of an instance, but not for edit parameter

Stutzmeister
Stutzmeister over 6 years ago

1) In our PDK, we have Pcell's with corresponding CDF's, and many of the CDF parameters are type Boolean.  We instantiate instances, and everything works fine using simplistic properties editor screen, etc,

2) I want to use Skill code to set a given Boolean CDF parameter on a given instance, and I find I can do that by editing parameter of the CDF instance, or by editing property of the instance, see code below

3) If I edit property of the instance, I find that I can set the property to "TRUE" or to t (to turn it "on") or to "FALSE" or nil (to turn it off), and it "registers", meaning when I look at properties window for the instance, the check box is what I think it should be, and Pcell layout changes correspondingly

4) If I edit CDF parameter of the instance, I find that I can set the parameter of the instance to "TRUE" or to t (to turn it "on") or to nil (to turn it off), and it "registers", meaning when I look at properties window for the instance, the check box is what I think it should be, and Pcell layout changes correspondingly.  BUT, if I set the parameter of the instance to "FALSE", it "doesn't take": the flag is still on (displays as t, checkbox enabled)

I tried it on multiple different parameters (different names) and on different instances, and "FALSE" never works for "turning off" the Boolean.  My question: is that expected behavior?   And if not, what would you suggest I look at?  Thanks!

FYI, I am aware of post below, which is related topic, but I don't think it answers the question I'm asking now

https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/25194/skill-to-modify-layout-parameter

(by editing property of instance)

X2=car(setof(X1 CV1~>instances X1~>name == "ABC_01"))
  foreach(prop X2~>prop
  if(prop~>name == "DEF" then 
    prop~>value = "TRUE" ; t also works
    prop~>value = "FALSE" ; nil also works
    printf("%s %L \n" sprintf(nil "%s (%s)" prop~>name prop~>valueType) prop~>value)
  );if
);foreach

(by editing CDF parameter of instance)

X2=car(setof(X1 CV1~>instances X1~>name == "ABC_02"))
cdf=cdfGetInstCDF(X2)
foreach( param cdf->parameters
  if( param~>name == "DEF" then
    param~>value = t ; "TRUE" also works
    param~>value = nil ; "FALSE" does NOT work
    printf("Value of %s: %L\n" param~>name param~>value)
  );if
) ;foreach

CDF code dump for an example test paramater

cdfCreateParam( cdfId
?name "drawGateMetal"
?prompt "Draw Gate Metal"
?defValue t
?type "boolean"
?display "or(cdfgForm->cellViewId when(isCallable('geGetEditCellView) geGetEditCellView()))->cellViewType == \"maskLayout\""
?callback "p90_generic_callback('drawGateMetal)"
?storeDefault "yes"
)

  • 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