• 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. Function calls fail now

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 9403
  • 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

Function calls fail now

StephanWeber
StephanWeber over 3 years ago

Hi,

in 613 up to early 617, I used many self-defined functions like this:

procedure(sqr(x)
prog((y)
y = (x)**2
return(y)
)
)

However, in my new company this does not work anymore, i.e. calling sqr(2.0) gives an error on "function x".

Modifying the code to this works (in 617.500.15): 

procedure( sqr( x )
x**2
)

This workaround fits, but can anybody tell, why the original 1st definition does not work anymore?

Is there an cdsenv setting to let the old code run well again?

Best regards, Stephan  

  • Cancel
Parents
  • mbracht
    mbracht over 3 years ago

    Hi Stephan,

    I strongly doubt this ever worked - not even in very old virtuoso releases. Keep in mind that SKILL is a Lisp based language and in Lisp/SKILL a symbol between a pair of round brackets is considered to be a function call with the name of the function  being just that symbol. All remaining elements in the round brackets are the arguments being passed to that function. So (x) is actually the same as x(). Just out of curiosity - what would you expect the round brackets to do in the first place?

    Max

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to mbracht

    Stephan,

    Max is right - this has never worked (I did check in a 15 year old release just to be sure, but I know for a fact that it wouldn't have worked). All you need to do is remove the unnecessary brackets around the x:

    procedure(sqr(x)
      prog((y)
        y = x**2
        return(y)
      )
    )

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephanWeber
    StephanWeber over 3 years ago in reply to Andrew Beckett

    Thanks, Andrew. I managed to make my functions running fine.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • StephanWeber
    StephanWeber over 3 years ago in reply to Andrew Beckett

    Thanks, Andrew. I managed to make my functions running fine.

    • 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