• 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. problem passing waveforms as function arguments

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 144
  • Views 13730
  • 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

problem passing waveforms as function arguments

Steve Mikes
Steve Mikes over 12 years ago

I'm trying to build a fuction that takes two waveform families as arguments. 

procedure( findBestIMDs(IMDfam PAEfam)

 //function

)

 

I load it in the CIW and try to use it:

 

load("./ocean/fam.ocn")
function findBestIMDs redefined
t
IMD
srrWave:0x2c3178d0
PAE
srrWave:0x2d0db3b0
findBestIMDs(IMD)
*Error* findBestIMDs: too few arguments (2 expected, 1 given) - (srrWave:0x2c3178d0)
findBestIMDs(IMD PAE)
*Error* findBestIMDs: too few arguments (2 expected, 1 given) - (srrWave:0x2d0db740)
findBestIMDs(IMD PAE PAE)
*Error* findBestIMDs: too many arguments (2 expected, 3 given) - (srrWave:0x2c3178d0 srrWave:0x2d0db3b0 srrWave:0x2d0db3b0)

 

Why, when I provide the two wave families as arguments, does the srrWave number change and it say there's only 1?

Thanks!

 

  • Cancel
  • berndfi
    berndfi over 12 years ago

     No one might be able to help you here since you did not provide your procedure content.

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

    There's nothing special about waveform or family objects. As far as SKILL is concerned these are just variables containing a special type of object - it wouldn't treat them any differently in terms of how they are passed to the function.

    My guess is that your code has a recursive call inside (maybe using famMap?) which is only passing a single argument to the function. The first and third examples are failing (correctly) because the wrong number of arguments were being passed, and the second is passing that hurdle, but failing when the same function is recursively called.

    Of course, this is a wild guess because (as Bernd said) you didn't show your code, so it's hard to be sure.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Steve Mikes
    Steve Mikes over 12 years ago

     Mr. Beckett, you are the Sherlock Holmes of SKILL code.

    • 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