• 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. A question about parameter in skill.

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 16287
  • 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

A question about parameter in skill.

layes
layes over 12 years ago
Hi Andrew,

I have a question about parameter in skill.

When I using Csh I can use $1 $2 as input parameter in script.
How can I pass it to skill,if I include some skill script in my Csh script?
thanks.  
  • Cancel
  • theopaone
    theopaone over 12 years ago

    You cannot directly evaluate a SKILL function in the shell. Put the SKILL function name and its call into a file you pass to Virtuoso. You have to start Virtuoso and use the -replay argument. The function should also execute exit() to close the Virtuoso session:

    echo "load( \"mySkillFunction.il\" ) mySkillFunction( $1 $2 ) exit()" > runMySkillFunc.il

    virtuoso -nograph -replay runMySkillFunc.il

    Ted

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • layes
    layes over 12 years ago

    let me explain my question in detail:

    I have a script "ab.csh"

    #!/bin/csh

    ls $1>celllist

    icfb -nograph -replay ab.il

     

    I have a skill script "ab.il"

    procedure(ab(lib1 lib2)

    ... ...

    )

    ab("$1" "$2")

    exit()

     

    I run in c_shell commands as below:

    ab.csh analib diglib

    It seems that this does not work,could you help me about this ,thanks. 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • theopaone
    theopaone over 12 years ago

     $1 and $2 do not have values inside icfb. You have to create a new SKILL function with the values from $1 and $2 in the function call. That is why I included the echo statement above, the $1 and $2 values are put into the function runMySkillFunc.il and when it is loaded the function is executed with the values.

    In addition, the replay file does not automatically load the file ab.il. That is why I had the load statement in my echo output above.

    For your problem you need to create a file, we will call it runab.il. It should contain the following statements which could all be on the same line:

    load("ab.il")
    ab( "analib" "diglib" )
    exit()

    ; Ted

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

    The other thing you could do is to set an environment variable containing the arguments inside your script:

    #!/bin/sh
    export ARGS="$0 $*"
    icfb -nograph -restore ab.il

    And then in the SKILL code (ab.il)

    args=listToVector(parseString(getShellEnvVar("ARGS")||""))
    printf("The script was called %s\n" args[0])
    printf("The arguments were '%s' and '%s'\n" args[1] args[2])
    exit()

    If I then do "runScript hello world" I get:

    The script was called runScript
    The arguments were 'hello' and 'world'

    Regards,

    Andrew.

    • 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