• 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. Cadence-Python Interface

Stats

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

Cadence-Python Interface

Curtisma
Curtisma over 5 years ago

Hello:

I would be interested in a Cadence-Python interface similar to the Cadence-MATLAB results interface.

Python has the same features available in MATLAB but is free and open-source.  It is also better for general computing and has a very diverse set of packages available.  In fact I am calling some python packages from within MATLAB and it would be better to have the option for a pure Python solution.

Should I submit a CCR through support?

Regards,

Curtis

  • Cancel
Parents
  • eperez
    eperez over 5 years ago

    Hello, I'm not familiar with this interface with Matlab but it is currently possible to write a simple communication layer between Cadence and Python using ipcSkillProcess.

    The idea is that, since both Python and SKILL allow dynamic evaluation of expressions, one can launch a Python process that sends SKILL commands that in turn produce Python code with data objects. It is not particularly efficient since everything is encoded as text and evaluated at execution time, but it is still fast enough to handle large simulation waveforms or explore schematic hierarchies. It is also possible to have access to the full Cadence API by importing its SKILL functions wrapping them as Python objects and calling them from there, allowing one to create custom Python classes on top as needed. Except for error handling, which can be tricky as you're dealing with two outputs from the two interpreters, putting everything together to support most SKILL data types isn't very time consuming.

    Personally I think having this kind of interface at low level, with binary wrappers for these imports rather than going through eval(), would be extremely simple to implement and powerful enough not to care that much about whether a high level Python interface is eventually offered or not (for example you can just run your plotting scripts after simulating without needing Python expressions to be integrated in your ADEXL panel)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • eperez
    eperez over 5 years ago

    Hello, I'm not familiar with this interface with Matlab but it is currently possible to write a simple communication layer between Cadence and Python using ipcSkillProcess.

    The idea is that, since both Python and SKILL allow dynamic evaluation of expressions, one can launch a Python process that sends SKILL commands that in turn produce Python code with data objects. It is not particularly efficient since everything is encoded as text and evaluated at execution time, but it is still fast enough to handle large simulation waveforms or explore schematic hierarchies. It is also possible to have access to the full Cadence API by importing its SKILL functions wrapping them as Python objects and calling them from there, allowing one to create custom Python classes on top as needed. Except for error handling, which can be tricky as you're dealing with two outputs from the two interpreters, putting everything together to support most SKILL data types isn't very time consuming.

    Personally I think having this kind of interface at low level, with binary wrappers for these imports rather than going through eval(), would be extremely simple to implement and powerful enough not to care that much about whether a high level Python interface is eventually offered or not (for example you can just run your plotting scripts after simulating without needing Python expressions to be integrated in your ADEXL panel)

    • 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