• 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. SKILL compiler?

Stats

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

SKILL compiler?

ThePhoenix
ThePhoenix over 14 years ago

Hello, I'm looking for a good compiler (to compile the SKILL code before I enter it into Cadence) that enables Compiling and Running of
SKILL code. Anyone have any suggestions?

Thanks very much in advance.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago
    There is no need for a compiler (perhaps you can explain why you think you need one?).

    SKILL is byte-code compiled automatically; you can enter SKILL code directly without an explicit need to compile it.

    There is the ability to create a context file (which is an incremental snapshot of the state of the SKILL Virtual Machine) - there are SKILL functions for doing this. Perhaps this is what you mean?

    Please explain why you want a compiler or why you think you need one.

    Best Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ThePhoenix
    ThePhoenix over 14 years ago

     I should mention I am a beginner in using SKILL.  I thought a compiler (such as CodeBlocks for C/C++) would be helpful in putting together code in an organized, and extended fashion.  You do have the 'gedit' files, but maybe there is a compiler one can get?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago
    But you don't use a compiler to "organise" code in any language. You use it to compile source code into object code. Since that doesn't make sense with SKILL, as I've explained, a compiler would make no sense, and so of course, there is no compiler available.

    Perhaps by "compiler" you really mean "IDE" (ie a development environment)? In IC613 and later, there is the SKILL IDE (still in its infancy, but provides a lot of interactive debugging capabilities). In terms of editor support, there's a SKILL mode for nedit, and for emacs. Probably others too.

    If this is not what you mean, you'll have to explain again why you think you need a "compiler", because it doesn't make sense to me!

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ThePhoenix
    ThePhoenix over 14 years ago

     What I mean is there are these programs where you can just put in several lines of code in a certain language (C for example), and you can actually build and run your code, to see if it works properly.  If there are errors in the code, this program will let you know what they are.  An example of this type of program is "CodeBlocks", which is used for C and C++ languages. I guess maybe it is an IDE, because this site says it is - http://www.codeblocks.org/

     So if it is indeed an IDE, is there one like that for SKILL language programming?   Thanks.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 14 years ago

    Hi,

    I thought Andrew's response was fairly clear, but I will answer your last questions and reiterate what he said while adding to it.

    SKILL is an interpreted language, rather than compiled like C or C++, hence you do not compile it, you enter source code and run it. It is possible to interactively test SKILL code line by line, or you can load one or more files that define one or more functions and test several statements together in a flow.  If there is a syntax error during loading or entering then the SKILL interpreter flags these at that time.  However beyond syntax problems, often coding errors are not obvious until run-time, and then these can cause warnings or errors when they are encountered.  The SKILL IDE is the perfect tool for debugging such issues, especially those that might be hard to track down. Also there is a SKILL Lint checker which is a static SKILL analysis tool that can help you to avoid common coding pitfalls and it will flag up things like undeclared global variables, as well as give a total score - I think of this as a general "goodness" score (though it is possible to write bad code that gets a top score of 100!).

    In summary:

    SKILL is interpreted and not compiled (though it is byte-code compiled internally)
    Syntax errors are flagged during input (either in the CIW or during loading of a file)
    Other coding errors may not be apparent until run time
    There is an integrated debugging environment (IDE) for SKILL as part of the virtuoso executable

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • chanakaya
    chanakaya over 14 years ago
    Hello Phoenix, Not all languages need to be compiled. There are a certain class of languages that are interpreted. Look in http://en.wikipedia.org/wiki/Interpreted_language. These include ones like Perl, Python etc. There are many advantages to interpreted languages with the one traditional downside being execution speed. This has also been addressed in many interpreted languages and SKILL is no exception using methods like byte-compiling code and use of context files. As you spend more time with SKILL you will realize that the interpreted nature provides a much more dynamic and faster code development environment. Hope this helps. For more information refer to: http://en.wikipedia.org/wiki/REPL (it applies to SKILL as well. You can directly type in at the CIW)
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Adrian Nistor
    Adrian Nistor over 14 years ago

     I think that Phoenix was thinking to a syntax checker which could be integrated in his' editor in order to find out if the skill syntax is ok before load the file in Cadence enviornment; 

    But since you work in unix ... you can use CIWfor all you need;

    • 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