• 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. What's the difference between add a device manually and...

Stats

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

What's the difference between add a device manually and dbCreateInst? It caused formInitProc failed ..

ArthurLinMTK
ArthurLinMTK over 10 years ago

Dear Andrew:

The most callback work well after I create the instance by dbCreateInst, but when I created the cell with formInitProc, it got the error message - Can't modify attributes of effective CDF parameters, then I can't trigger the callback normally.


I've tried call the function first,as PasCdfFormInit(cdfgData) , and I got the error message "Can't modify attributes of effective CDF parameters"


But if I create the instance manually, the formInitProc function could be run normally, so I think there are some functions be trigger when we add the instance and select to open a CDF form.

What should I do to (after dbCreateInst and before call formInitProc) to make the formInitProc run just like we add an instance and 'q' it manually?  Thanks a lot..

Best Regard,

Arthur

  • Cancel
  • ArthurLinMTK
    ArthurLinMTK over 10 years ago
    PS. can't trigger the callback normally means I got "*Error* PasCdfCommitValue:failed to find valid initialization data", thanks.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Arthur,

    Are you using abInvokeCdfCallbacks or CCSinvokeCdfCallbacks (two different versions of the same code of mine) to trigger the callbacks after creation with dbCreateInst? They have explicit options to help solve this problem, so I'm trying to understand where you're starting from.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ArthurLinMTK
    ArthurLinMTK over 10 years ago

    Dear Andrew:

    thanks for your rapidly reply, the code is as following:

    ginstId=dbCreateInst(desId srcId cell_name list(1 1) "R0" 1)

    cdfgData=cdfGetInstCDF(ginstId)

    cdfgForm=cdfgData

    ; I tried to run the FormInitProc , and get Can't modify attributes of effective CDF parameters here

    pasCdfFormInit(cdfgData) 

    paramId=cdfFindParamByName(cdfgData "w")

    paramId->value="10u"

    if(paramId->callback then

        evalstring(sprintf(nil "%s" paramId->callback))

    ; then I got *Error* PasCdfCommitValue:failed to find valid initialization data here

    )

    Thank you :)

    Arthur

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ArthurLinMTK
    ArthurLinMTK over 10 years ago

    Dear Andrew:

    I just tried "abInvokeCdfCallbacks" , and I got the same message,

    *Error* PasCdfCommitValue:failed to find valid initialization data

    and I also tried the debug mode, the callback function names are correct but just can not be trigger normally..

    Thanks :)

    Arthur

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

    Hi Arthur,


    I got held up replying to your previous reply. In my experiments, I saw the same problem - but the problem went away if I didn't set cdfgForm (or rather set it to nil). I think having it set to the instance CDF causes problems.

    In abInvokeCdfCallbacks then this wouldn't normally get set  - it usually sets it to nil, unless you pass ?setCdfgForm on abInvokeObjCdfCallbacks. In the version of the code I'm looking at, abInvokeInstCdfCallbacks explicitly sets ?setCdfgForm to nil if instance CDF is being used - so you would do:

    abInvokeInstCdfCallbacks(instId ?callInitProc t ?useInstCDF t)

    and that should work.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ArthurLinMTK
    ArthurLinMTK over 10 years ago

    Dear Andrew:

    It works well, thanks you~  You're really the best SKILL programer in the world!

    Thanks again and have a nice day :D

    Best Regards,

    Arthur

    • 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