• 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. IPC Workflow Question

Stats

  • Replies 2
  • Subscribers 143
  • Views 1273
  • Members are here 0

IPC Workflow Question

TF202506034656
TF202506034656 3 months ago

Good evening,

I'm creating a workflow that follows this structure:


Various simulations -> IPC Process -> Run python post processing / metrics -> Transfer python output back to cadence.

I've got this working pretty steadily by creating a child process for the python script, and reading it back to the parent. But, I've hard to perform quite a few "hacky" solutions, such as creating/reading large CSV files both on the cadence side, as well as the python side, passing markers etc. I'm wondering if there's any sort of precedence for this. From what I've understood in the documentation, IPC processes come with a stdout buffer of 4096B. This was my initial idea, but most of my data is in the tens of thousands of lines, and transferring in packets through this buffer seems eerie. 

Is there a solid method for transferring large amounts of data between the parent and child processes, without relying on a variety of waveformToCSV and CSVtoWaveform helpers, as well as blocking thread use while pythons operating?

Thanks, 
Trevor Farias

  • Sign in to reply
  • Cancel
  • Andrew Beckett
    Andrew Beckett 3 months ago

    Trevor,

    In general, sending large amounts of data via the IPC mechanism is not recommended - it is really not designed with that in mind. Instead, it's better to store data to be transferred in files, and just send the messages across to reference those files.

    One thing that would help is to use the cdspythonsrr kit that is shipped in Virtuoso since IC23.1 ISR12 - see What’s New in Virtuoso IC23.1 ISR12. Previously we had a standalone kit that had to be requested specially, but now we ship a form of it with the software. This allows you to directly read simulation results from Spectre in Python, so that might cut out some of the file transfers you currently need?

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • TF202506034656
    TF202506034656 3 months ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you for the reply, that is kind of what I figured would be the case. I'll give cdpythonsrr kit a lookover.

    Thanks for the quick reply, your community forums contributions have been incredibly helpful. I think there's some comedic irony with people posting AI-generated content, as you're probably the material ChatGPT has learned SKILL from! 

    Thanks,

    Trevor

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • 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